Subject: Built motion from commit ff88c200.|2.6.11
From: support <[email-masked]>
Date: Mon, 20 Jun 2022 13:51:57 +0000 (+0000)

Built motion from commit ff88c200.|2.6.11
---

diff --git a/apidoc/api_project.js b/apidoc/api_project.js
index d6272ea..4e6d995 100644
--- a/apidoc/api_project.js
+++ b/apidoc/api_project.js
@@ -17,7 +17,7 @@ define({
   "apidoc": "0.3.0",
   "generator": {
     "name": "apidoc",
-    "time": "2022-06-20T13:13:00.453Z",
+    "time": "2022-06-20T13:43:47.197Z",
     "url": "http://apidocjs.com",
     "version": "0.24.0"
   }
diff --git a/apidoc/api_project.json b/apidoc/api_project.json
index db30eb2..8d13af2 100644
--- a/apidoc/api_project.json
+++ b/apidoc/api_project.json
@@ -17,7 +17,7 @@
   "apidoc": "0.3.0",
   "generator": {
     "name": "apidoc",
-    "time": "2022-06-20T13:13:00.453Z",
+    "time": "2022-06-20T13:43:47.197Z",
     "url": "http://apidocjs.com",
     "version": "0.24.0"
   }
diff --git a/server/api/action/action.attributes.js b/server/api/action/action.attributes.js
new file mode 100644
index 0000000..23677a6
--- /dev/null
+++ b/server/api/action/action.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/action/action.controller.js b/server/api/action/action.controller.js
new file mode 100644
index 0000000..f7e122a
--- /dev/null
+++ b/server/api/action/action.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/action/action.model.js b/server/api/action/action.model.js
new file mode 100644
index 0000000..ed47394
--- /dev/null
+++ b/server/api/action/action.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/action/action.rpc.js b/server/api/action/action.rpc.js
new file mode 100644
index 0000000..58ad728
--- /dev/null
+++ b/server/api/action/action.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/action/index.js b/server/api/action/index.js
new file mode 100644
index 0000000..e73def9
--- /dev/null
+++ b/server/api/action/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.attributes.js b/server/api/analyticCustomReport/analyticCustomReport.attributes.js
new file mode 100644
index 0000000..73d3693
--- /dev/null
+++ b/server/api/analyticCustomReport/analyticCustomReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.controller.js b/server/api/analyticCustomReport/analyticCustomReport.controller.js
new file mode 100644
index 0000000..88a54b3
--- /dev/null
+++ b/server/api/analyticCustomReport/analyticCustomReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.model.js b/server/api/analyticCustomReport/analyticCustomReport.model.js
new file mode 100644
index 0000000..69b69cb
--- /dev/null
+++ b/server/api/analyticCustomReport/analyticCustomReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.rpc.js b/server/api/analyticCustomReport/analyticCustomReport.rpc.js
new file mode 100644
index 0000000..e7ce7b9
--- /dev/null
+++ b/server/api/analyticCustomReport/analyticCustomReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/index.js b/server/api/analyticCustomReport/index.js
new file mode 100644
index 0000000..48f21d9
--- /dev/null
+++ b/server/api/analyticCustomReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.attributes.js b/server/api/analyticDefaultReport/analyticDefaultReport.attributes.js
new file mode 100644
index 0000000..6ed90f5
--- /dev/null
+++ b/server/api/analyticDefaultReport/analyticDefaultReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.controller.js b/server/api/analyticDefaultReport/analyticDefaultReport.controller.js
new file mode 100644
index 0000000..81b164f
--- /dev/null
+++ b/server/api/analyticDefaultReport/analyticDefaultReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.model.js b/server/api/analyticDefaultReport/analyticDefaultReport.model.js
new file mode 100644
index 0000000..083f60e
--- /dev/null
+++ b/server/api/analyticDefaultReport/analyticDefaultReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.rpc.js b/server/api/analyticDefaultReport/analyticDefaultReport.rpc.js
new file mode 100644
index 0000000..495a15c
--- /dev/null
+++ b/server/api/analyticDefaultReport/analyticDefaultReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/index.js b/server/api/analyticDefaultReport/index.js
new file mode 100644
index 0000000..9a05819
--- /dev/null
+++ b/server/api/analyticDefaultReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.attributes.js b/server/api/analyticExtractedReport/analyticExtractedReport.attributes.js
new file mode 100644
index 0000000..082435c
--- /dev/null
+++ b/server/api/analyticExtractedReport/analyticExtractedReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.controller.js b/server/api/analyticExtractedReport/analyticExtractedReport.controller.js
new file mode 100644
index 0000000..1f9d6f8
--- /dev/null
+++ b/server/api/analyticExtractedReport/analyticExtractedReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.model.js b/server/api/analyticExtractedReport/analyticExtractedReport.model.js
new file mode 100644
index 0000000..f3d535c
--- /dev/null
+++ b/server/api/analyticExtractedReport/analyticExtractedReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.rpc.js b/server/api/analyticExtractedReport/analyticExtractedReport.rpc.js
new file mode 100644
index 0000000..c7253d6
--- /dev/null
+++ b/server/api/analyticExtractedReport/analyticExtractedReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/index.js b/server/api/analyticExtractedReport/index.js
new file mode 100644
index 0000000..6b7c8f2
--- /dev/null
+++ b/server/api/analyticExtractedReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.attributes.js b/server/api/analyticFieldReport/analyticFieldReport.attributes.js
new file mode 100644
index 0000000..c40dd9f
--- /dev/null
+++ b/server/api/analyticFieldReport/analyticFieldReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.controller.js b/server/api/analyticFieldReport/analyticFieldReport.controller.js
new file mode 100644
index 0000000..2935e87
--- /dev/null
+++ b/server/api/analyticFieldReport/analyticFieldReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.model.js b/server/api/analyticFieldReport/analyticFieldReport.model.js
new file mode 100644
index 0000000..b24730a
--- /dev/null
+++ b/server/api/analyticFieldReport/analyticFieldReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.rpc.js b/server/api/analyticFieldReport/analyticFieldReport.rpc.js
new file mode 100644
index 0000000..57d9ce9
--- /dev/null
+++ b/server/api/analyticFieldReport/analyticFieldReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/index.js b/server/api/analyticFieldReport/index.js
new file mode 100644
index 0000000..66a7bf6
--- /dev/null
+++ b/server/api/analyticFieldReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.attributes.js b/server/api/analyticMetric/analyticMetric.attributes.js
new file mode 100644
index 0000000..044939c
--- /dev/null
+++ b/server/api/analyticMetric/analyticMetric.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.controller.js b/server/api/analyticMetric/analyticMetric.controller.js
new file mode 100644
index 0000000..56eff14
--- /dev/null
+++ b/server/api/analyticMetric/analyticMetric.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.model.js b/server/api/analyticMetric/analyticMetric.model.js
new file mode 100644
index 0000000..fc16128
--- /dev/null
+++ b/server/api/analyticMetric/analyticMetric.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.rpc.js b/server/api/analyticMetric/analyticMetric.rpc.js
new file mode 100644
index 0000000..4ccdb24
--- /dev/null
+++ b/server/api/analyticMetric/analyticMetric.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticMetric/index.js b/server/api/analyticMetric/index.js
new file mode 100644
index 0000000..b9d316f
--- /dev/null
+++ b/server/api/analyticMetric/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.attributes.js b/server/api/analyticTreeReport/analyticTreeReport.attributes.js
new file mode 100644
index 0000000..2dc3b35
--- /dev/null
+++ b/server/api/analyticTreeReport/analyticTreeReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xf69c=['TEXT','exports'];(function(_0x13ee16,_0x9b0374){var _0x48a844=function(_0x10bc0e){while(--_0x10bc0e){_0x13ee16['push'](_0x13ee16['shift']());}};_0x48a844(++_0x9b0374);}(_0xf69c,0xaf));var _0xcf69=function(_0x5b13c3,_0x378e0a){_0x5b13c3=_0x5b13c3-0x0;var _0x3d6780=_0xf69c[_0x5b13c3];return _0x3d6780;};'use strict';var Sequelize=require('sequelize');module[_0xcf69('0x0')]={'tree':{'type':Sequelize[_0xcf69('0x1')],'allowNull':![]}};
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.controller.js b/server/api/analyticTreeReport/analyticTreeReport.controller.js
new file mode 100644
index 0000000..eb9ea27
--- /dev/null
+++ b/server/api/analyticTreeReport/analyticTreeReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.model.js b/server/api/analyticTreeReport/analyticTreeReport.model.js
new file mode 100644
index 0000000..b9fa528
--- /dev/null
+++ b/server/api/analyticTreeReport/analyticTreeReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.rpc.js b/server/api/analyticTreeReport/analyticTreeReport.rpc.js
new file mode 100644
index 0000000..721b99e
--- /dev/null
+++ b/server/api/analyticTreeReport/analyticTreeReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/index.js b/server/api/analyticTreeReport/index.js
new file mode 100644
index 0000000..49fa467
--- /dev/null
+++ b/server/api/analyticTreeReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/attachment/attachment.attributes.js b/server/api/attachment/attachment.attributes.js
new file mode 100644
index 0000000..761fdc9
--- /dev/null
+++ b/server/api/attachment/attachment.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/attachment/attachment.controller.js b/server/api/attachment/attachment.controller.js
new file mode 100644
index 0000000..3d4abbf
--- /dev/null
+++ b/server/api/attachment/attachment.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/attachment/attachment.model.js b/server/api/attachment/attachment.model.js
new file mode 100644
index 0000000..4a494fb
--- /dev/null
+++ b/server/api/attachment/attachment.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/attachment/attachment.rpc.js b/server/api/attachment/attachment.rpc.js
new file mode 100644
index 0000000..2ecb570
--- /dev/null
+++ b/server/api/attachment/attachment.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/attachment/index.js b/server/api/attachment/index.js
new file mode 100644
index 0000000..6472294
--- /dev/null
+++ b/server/api/attachment/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/authActiveDirectory/authActiveDirectory.controller.js b/server/api/authActiveDirectory/authActiveDirectory.controller.js
new file mode 100644
index 0000000..d8a62c8
--- /dev/null
+++ b/server/api/authActiveDirectory/authActiveDirectory.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/authActiveDirectory/index.js b/server/api/authActiveDirectory/index.js
new file mode 100644
index 0000000..73910dc
--- /dev/null
+++ b/server/api/authActiveDirectory/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/authGoogle/authGoogle.controller.js b/server/api/authGoogle/authGoogle.controller.js
new file mode 100644
index 0000000..d80f377
--- /dev/null
+++ b/server/api/authGoogle/authGoogle.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/authGoogle/index.js b/server/api/authGoogle/index.js
new file mode 100644
index 0000000..bc527c3
--- /dev/null
+++ b/server/api/authGoogle/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/authLocal/authLocal.controller.js b/server/api/authLocal/authLocal.controller.js
new file mode 100644
index 0000000..1455a12
--- /dev/null
+++ b/server/api/authLocal/authLocal.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/authLocal/index.js b/server/api/authLocal/index.js
new file mode 100644
index 0000000..5381d83
--- /dev/null
+++ b/server/api/authLocal/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/automation/automation.attributes.js b/server/api/automation/automation.attributes.js
new file mode 100644
index 0000000..48d4756
--- /dev/null
+++ b/server/api/automation/automation.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/automation/automation.controller.js b/server/api/automation/automation.controller.js
new file mode 100644
index 0000000..b0d06c8
--- /dev/null
+++ b/server/api/automation/automation.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/automation/automation.model.js b/server/api/automation/automation.model.js
new file mode 100644
index 0000000..9834720
--- /dev/null
+++ b/server/api/automation/automation.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/automation/automation.rpc.js b/server/api/automation/automation.rpc.js
new file mode 100644
index 0000000..5e85bc6
--- /dev/null
+++ b/server/api/automation/automation.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/automation/index.js b/server/api/automation/index.js
new file mode 100644
index 0000000..22e71dd
--- /dev/null
+++ b/server/api/automation/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/campaign/campaign.attributes.js b/server/api/campaign/campaign.attributes.js
new file mode 100644
index 0000000..bd8a04e
--- /dev/null
+++ b/server/api/campaign/campaign.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/campaign/campaign.controller.js b/server/api/campaign/campaign.controller.js
new file mode 100644
index 0000000..aa08646
--- /dev/null
+++ b/server/api/campaign/campaign.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/campaign/campaign.model.js b/server/api/campaign/campaign.model.js
new file mode 100644
index 0000000..3481f7c
--- /dev/null
+++ b/server/api/campaign/campaign.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/campaign/campaign.rpc.js b/server/api/campaign/campaign.rpc.js
new file mode 100644
index 0000000..cdcb6d5
--- /dev/null
+++ b/server/api/campaign/campaign.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/campaign/index.js b/server/api/campaign/index.js
new file mode 100644
index 0000000..5651fc4
--- /dev/null
+++ b/server/api/campaign/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.attributes.js b/server/api/cannedAnswer/cannedAnswer.attributes.js
new file mode 100644
index 0000000..cf3133b
--- /dev/null
+++ b/server/api/cannedAnswer/cannedAnswer.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.controller.js b/server/api/cannedAnswer/cannedAnswer.controller.js
new file mode 100644
index 0000000..e194e78
--- /dev/null
+++ b/server/api/cannedAnswer/cannedAnswer.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.model.js b/server/api/cannedAnswer/cannedAnswer.model.js
new file mode 100644
index 0000000..6d81504
--- /dev/null
+++ b/server/api/cannedAnswer/cannedAnswer.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.rpc.js b/server/api/cannedAnswer/cannedAnswer.rpc.js
new file mode 100644
index 0000000..9f635cc
--- /dev/null
+++ b/server/api/cannedAnswer/cannedAnswer.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cannedAnswer/index.js b/server/api/cannedAnswer/index.js
new file mode 100644
index 0000000..4d8f7a0
--- /dev/null
+++ b/server/api/cannedAnswer/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cdr/cdr.attributes.js b/server/api/cdr/cdr.attributes.js
new file mode 100644
index 0000000..364fa06
--- /dev/null
+++ b/server/api/cdr/cdr.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cdr/cdr.controller.js b/server/api/cdr/cdr.controller.js
new file mode 100644
index 0000000..ae6a043
--- /dev/null
+++ b/server/api/cdr/cdr.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cdr/cdr.model.js b/server/api/cdr/cdr.model.js
new file mode 100644
index 0000000..edcc51a
--- /dev/null
+++ b/server/api/cdr/cdr.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cdr/cdr.rpc.js b/server/api/cdr/cdr.rpc.js
new file mode 100644
index 0000000..cde9b26
--- /dev/null
+++ b/server/api/cdr/cdr.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cdr/index.js b/server/api/cdr/index.js
new file mode 100644
index 0000000..3b94a34
--- /dev/null
+++ b/server/api/cdr/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.attributes.js b/server/api/chatApplication/chatApplication.attributes.js
new file mode 100644
index 0000000..da6699e
--- /dev/null
+++ b/server/api/chatApplication/chatApplication.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.controller.js b/server/api/chatApplication/chatApplication.controller.js
new file mode 100644
index 0000000..1725fc0
--- /dev/null
+++ b/server/api/chatApplication/chatApplication.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.model.js b/server/api/chatApplication/chatApplication.model.js
new file mode 100644
index 0000000..ed9d6a3
--- /dev/null
+++ b/server/api/chatApplication/chatApplication.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.rpc.js b/server/api/chatApplication/chatApplication.rpc.js
new file mode 100644
index 0000000..3758daa
--- /dev/null
+++ b/server/api/chatApplication/chatApplication.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatApplication/index.js b/server/api/chatApplication/index.js
new file mode 100644
index 0000000..79225dc
--- /dev/null
+++ b/server/api/chatApplication/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/chatGroup.attributes.js b/server/api/chatGroup/chatGroup.attributes.js
new file mode 100644
index 0000000..48fb9f9
--- /dev/null
+++ b/server/api/chatGroup/chatGroup.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/chatGroup.controller.js b/server/api/chatGroup/chatGroup.controller.js
new file mode 100644
index 0000000..7690bd2
--- /dev/null
+++ b/server/api/chatGroup/chatGroup.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/chatGroup.events.js b/server/api/chatGroup/chatGroup.events.js
new file mode 100644
index 0000000..a5581c0
--- /dev/null
+++ b/server/api/chatGroup/chatGroup.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/chatGroup.model.js b/server/api/chatGroup/chatGroup.model.js
new file mode 100644
index 0000000..bd5160a
--- /dev/null
+++ b/server/api/chatGroup/chatGroup.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/chatGroup.rpc.js b/server/api/chatGroup/chatGroup.rpc.js
new file mode 100644
index 0000000..6f064e5
--- /dev/null
+++ b/server/api/chatGroup/chatGroup.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/chatGroup.socket.js b/server/api/chatGroup/chatGroup.socket.js
new file mode 100644
index 0000000..ff71da0
--- /dev/null
+++ b/server/api/chatGroup/chatGroup.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatGroup/index.js b/server/api/chatGroup/index.js
new file mode 100644
index 0000000..31fbc56
--- /dev/null
+++ b/server/api/chatGroup/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.attributes.js b/server/api/chatInteraction/chatInteraction.attributes.js
new file mode 100644
index 0000000..3f6518f
--- /dev/null
+++ b/server/api/chatInteraction/chatInteraction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.controller.js b/server/api/chatInteraction/chatInteraction.controller.js
new file mode 100644
index 0000000..703bde6
--- /dev/null
+++ b/server/api/chatInteraction/chatInteraction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.events.js b/server/api/chatInteraction/chatInteraction.events.js
new file mode 100644
index 0000000..f5a2005
--- /dev/null
+++ b/server/api/chatInteraction/chatInteraction.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.model.js b/server/api/chatInteraction/chatInteraction.model.js
new file mode 100644
index 0000000..a176e82
--- /dev/null
+++ b/server/api/chatInteraction/chatInteraction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.rpc.js b/server/api/chatInteraction/chatInteraction.rpc.js
new file mode 100644
index 0000000..2a26cf2
--- /dev/null
+++ b/server/api/chatInteraction/chatInteraction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.socket.js b/server/api/chatInteraction/chatInteraction.socket.js
new file mode 100644
index 0000000..3f86a10
--- /dev/null
+++ b/server/api/chatInteraction/chatInteraction.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInteraction/index.js b/server/api/chatInteraction/index.js
new file mode 100644
index 0000000..d6dec71
--- /dev/null
+++ b/server/api/chatInteraction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/chatInternalMessage.attributes.js b/server/api/chatInternalMessage/chatInternalMessage.attributes.js
new file mode 100644
index 0000000..8290766
--- /dev/null
+++ b/server/api/chatInternalMessage/chatInternalMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/chatInternalMessage.controller.js b/server/api/chatInternalMessage/chatInternalMessage.controller.js
new file mode 100644
index 0000000..a7b225c
--- /dev/null
+++ b/server/api/chatInternalMessage/chatInternalMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/chatInternalMessage.events.js b/server/api/chatInternalMessage/chatInternalMessage.events.js
new file mode 100644
index 0000000..7d40d2a
--- /dev/null
+++ b/server/api/chatInternalMessage/chatInternalMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/chatInternalMessage.model.js b/server/api/chatInternalMessage/chatInternalMessage.model.js
new file mode 100644
index 0000000..fbfe065
--- /dev/null
+++ b/server/api/chatInternalMessage/chatInternalMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/chatInternalMessage.rpc.js b/server/api/chatInternalMessage/chatInternalMessage.rpc.js
new file mode 100644
index 0000000..824f41e
--- /dev/null
+++ b/server/api/chatInternalMessage/chatInternalMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/chatInternalMessage.socket.js b/server/api/chatInternalMessage/chatInternalMessage.socket.js
new file mode 100644
index 0000000..cf1424c
--- /dev/null
+++ b/server/api/chatInternalMessage/chatInternalMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatInternalMessage/index.js b/server/api/chatInternalMessage/index.js
new file mode 100644
index 0000000..d7cd44c
--- /dev/null
+++ b/server/api/chatInternalMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.attributes.js b/server/api/chatMessage/chatMessage.attributes.js
new file mode 100644
index 0000000..b22d15c
--- /dev/null
+++ b/server/api/chatMessage/chatMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.controller.js b/server/api/chatMessage/chatMessage.controller.js
new file mode 100644
index 0000000..300deb1
--- /dev/null
+++ b/server/api/chatMessage/chatMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.events.js b/server/api/chatMessage/chatMessage.events.js
new file mode 100644
index 0000000..47e6103
--- /dev/null
+++ b/server/api/chatMessage/chatMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.model.js b/server/api/chatMessage/chatMessage.model.js
new file mode 100644
index 0000000..4e4049b
--- /dev/null
+++ b/server/api/chatMessage/chatMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.rpc.js b/server/api/chatMessage/chatMessage.rpc.js
new file mode 100644
index 0000000..cab0e26
--- /dev/null
+++ b/server/api/chatMessage/chatMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.socket.js b/server/api/chatMessage/chatMessage.socket.js
new file mode 100644
index 0000000..b8c1b7a
--- /dev/null
+++ b/server/api/chatMessage/chatMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatMessage/index.js b/server/api/chatMessage/index.js
new file mode 100644
index 0000000..980d782
--- /dev/null
+++ b/server/api/chatMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatOfflineMessage/chatOfflineMessage.attributes.js b/server/api/chatOfflineMessage/chatOfflineMessage.attributes.js
new file mode 100644
index 0000000..367beb9
--- /dev/null
+++ b/server/api/chatOfflineMessage/chatOfflineMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatOfflineMessage/chatOfflineMessage.controller.js b/server/api/chatOfflineMessage/chatOfflineMessage.controller.js
new file mode 100644
index 0000000..c0130c6
--- /dev/null
+++ b/server/api/chatOfflineMessage/chatOfflineMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatOfflineMessage/chatOfflineMessage.events.js b/server/api/chatOfflineMessage/chatOfflineMessage.events.js
new file mode 100644
index 0000000..6e5823d
--- /dev/null
+++ b/server/api/chatOfflineMessage/chatOfflineMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatOfflineMessage/chatOfflineMessage.model.js b/server/api/chatOfflineMessage/chatOfflineMessage.model.js
new file mode 100644
index 0000000..d18a650
--- /dev/null
+++ b/server/api/chatOfflineMessage/chatOfflineMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatOfflineMessage/chatOfflineMessage.rpc.js b/server/api/chatOfflineMessage/chatOfflineMessage.rpc.js
new file mode 100644
index 0000000..4dfb84c
--- /dev/null
+++ b/server/api/chatOfflineMessage/chatOfflineMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatOfflineMessage/index.js b/server/api/chatOfflineMessage/index.js
new file mode 100644
index 0000000..d022918
--- /dev/null
+++ b/server/api/chatOfflineMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.attributes.js b/server/api/chatProactiveAction/chatProactiveAction.attributes.js
new file mode 100644
index 0000000..0a3129d
--- /dev/null
+++ b/server/api/chatProactiveAction/chatProactiveAction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.controller.js b/server/api/chatProactiveAction/chatProactiveAction.controller.js
new file mode 100644
index 0000000..4bbc081
--- /dev/null
+++ b/server/api/chatProactiveAction/chatProactiveAction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.model.js b/server/api/chatProactiveAction/chatProactiveAction.model.js
new file mode 100644
index 0000000..7e6c7eb
--- /dev/null
+++ b/server/api/chatProactiveAction/chatProactiveAction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.rpc.js b/server/api/chatProactiveAction/chatProactiveAction.rpc.js
new file mode 100644
index 0000000..50372e5
--- /dev/null
+++ b/server/api/chatProactiveAction/chatProactiveAction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/index.js b/server/api/chatProactiveAction/index.js
new file mode 100644
index 0000000..2e8b7e7
--- /dev/null
+++ b/server/api/chatProactiveAction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.attributes.js b/server/api/chatQueue/chatQueue.attributes.js
new file mode 100644
index 0000000..ae1aa96
--- /dev/null
+++ b/server/api/chatQueue/chatQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.controller.js b/server/api/chatQueue/chatQueue.controller.js
new file mode 100644
index 0000000..8a061a1
--- /dev/null
+++ b/server/api/chatQueue/chatQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.events.js b/server/api/chatQueue/chatQueue.events.js
new file mode 100644
index 0000000..8da1c02
--- /dev/null
+++ b/server/api/chatQueue/chatQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.model.js b/server/api/chatQueue/chatQueue.model.js
new file mode 100644
index 0000000..ff12ece
--- /dev/null
+++ b/server/api/chatQueue/chatQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.rpc.js b/server/api/chatQueue/chatQueue.rpc.js
new file mode 100644
index 0000000..cc8d4e3
--- /dev/null
+++ b/server/api/chatQueue/chatQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.socket.js b/server/api/chatQueue/chatQueue.socket.js
new file mode 100644
index 0000000..4baf5a9
--- /dev/null
+++ b/server/api/chatQueue/chatQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueue/index.js b/server/api/chatQueue/index.js
new file mode 100644
index 0000000..d05dbd4
--- /dev/null
+++ b/server/api/chatQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueueReport/chatQueueReport.attributes.js b/server/api/chatQueueReport/chatQueueReport.attributes.js
new file mode 100644
index 0000000..6fe7d32
--- /dev/null
+++ b/server/api/chatQueueReport/chatQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueueReport/chatQueueReport.controller.js b/server/api/chatQueueReport/chatQueueReport.controller.js
new file mode 100644
index 0000000..7f2b35e
--- /dev/null
+++ b/server/api/chatQueueReport/chatQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueueReport/chatQueueReport.model.js b/server/api/chatQueueReport/chatQueueReport.model.js
new file mode 100644
index 0000000..7f62fe5
--- /dev/null
+++ b/server/api/chatQueueReport/chatQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueueReport/chatQueueReport.rpc.js b/server/api/chatQueueReport/chatQueueReport.rpc.js
new file mode 100644
index 0000000..130d022
--- /dev/null
+++ b/server/api/chatQueueReport/chatQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatQueueReport/index.js b/server/api/chatQueueReport/index.js
new file mode 100644
index 0000000..9509012
--- /dev/null
+++ b/server/api/chatQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatTransferReport/chatTransferReport.attributes.js b/server/api/chatTransferReport/chatTransferReport.attributes.js
new file mode 100644
index 0000000..f78d618
--- /dev/null
+++ b/server/api/chatTransferReport/chatTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatTransferReport/chatTransferReport.controller.js b/server/api/chatTransferReport/chatTransferReport.controller.js
new file mode 100644
index 0000000..e6be113
--- /dev/null
+++ b/server/api/chatTransferReport/chatTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatTransferReport/chatTransferReport.model.js b/server/api/chatTransferReport/chatTransferReport.model.js
new file mode 100644
index 0000000..f479f27
--- /dev/null
+++ b/server/api/chatTransferReport/chatTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatTransferReport/chatTransferReport.rpc.js b/server/api/chatTransferReport/chatTransferReport.rpc.js
new file mode 100644
index 0000000..2175a9d
--- /dev/null
+++ b/server/api/chatTransferReport/chatTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatTransferReport/index.js b/server/api/chatTransferReport/index.js
new file mode 100644
index 0000000..437c505
--- /dev/null
+++ b/server/api/chatTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.attributes.js b/server/api/chatWebsite/chatWebsite.attributes.js
new file mode 100644
index 0000000..22245bf
--- /dev/null
+++ b/server/api/chatWebsite/chatWebsite.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.controller.js b/server/api/chatWebsite/chatWebsite.controller.js
new file mode 100644
index 0000000..dfcd795
--- /dev/null
+++ b/server/api/chatWebsite/chatWebsite.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.events.js b/server/api/chatWebsite/chatWebsite.events.js
new file mode 100644
index 0000000..84917af
--- /dev/null
+++ b/server/api/chatWebsite/chatWebsite.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.model.js b/server/api/chatWebsite/chatWebsite.model.js
new file mode 100644
index 0000000..ca1dfc4
--- /dev/null
+++ b/server/api/chatWebsite/chatWebsite.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.rpc.js b/server/api/chatWebsite/chatWebsite.rpc.js
new file mode 100644
index 0000000..b85924f
--- /dev/null
+++ b/server/api/chatWebsite/chatWebsite.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.socket.js b/server/api/chatWebsite/chatWebsite.socket.js
new file mode 100644
index 0000000..8ee5792
--- /dev/null
+++ b/server/api/chatWebsite/chatWebsite.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/chatWebsite/index.js b/server/api/chatWebsite/index.js
new file mode 100644
index 0000000..cbe0c14
--- /dev/null
+++ b/server/api/chatWebsite/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/client-side-logs.js b/server/api/client-side-logs.js
new file mode 100644
index 0000000..626a56e
--- /dev/null
+++ b/server/api/client-side-logs.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cloudProvider/cloudProvider.attributes.js b/server/api/cloudProvider/cloudProvider.attributes.js
new file mode 100644
index 0000000..c067442
--- /dev/null
+++ b/server/api/cloudProvider/cloudProvider.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cloudProvider/cloudProvider.controller.js b/server/api/cloudProvider/cloudProvider.controller.js
new file mode 100644
index 0000000..05971cf
--- /dev/null
+++ b/server/api/cloudProvider/cloudProvider.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cloudProvider/cloudProvider.model.js b/server/api/cloudProvider/cloudProvider.model.js
new file mode 100644
index 0000000..90398a2
--- /dev/null
+++ b/server/api/cloudProvider/cloudProvider.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cloudProvider/cloudProvider.oauth.js b/server/api/cloudProvider/cloudProvider.oauth.js
new file mode 100644
index 0000000..022518e
--- /dev/null
+++ b/server/api/cloudProvider/cloudProvider.oauth.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cloudProvider/cloudProvider.rpc.js b/server/api/cloudProvider/cloudProvider.rpc.js
new file mode 100644
index 0000000..c57d284
--- /dev/null
+++ b/server/api/cloudProvider/cloudProvider.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cloudProvider/index.js b/server/api/cloudProvider/index.js
new file mode 100644
index 0000000..366ba9b
--- /dev/null
+++ b/server/api/cloudProvider/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.attributes.js b/server/api/cmCompany/cmCompany.attributes.js
new file mode 100644
index 0000000..5fdde79
--- /dev/null
+++ b/server/api/cmCompany/cmCompany.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.controller.js b/server/api/cmCompany/cmCompany.controller.js
new file mode 100644
index 0000000..02c282a
--- /dev/null
+++ b/server/api/cmCompany/cmCompany.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.model.js b/server/api/cmCompany/cmCompany.model.js
new file mode 100644
index 0000000..8557cb9
--- /dev/null
+++ b/server/api/cmCompany/cmCompany.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.rpc.js b/server/api/cmCompany/cmCompany.rpc.js
new file mode 100644
index 0000000..938d63b
--- /dev/null
+++ b/server/api/cmCompany/cmCompany.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCompany/index.js b/server/api/cmCompany/index.js
new file mode 100644
index 0000000..a2ff3b8
--- /dev/null
+++ b/server/api/cmCompany/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.attributes.js b/server/api/cmContact/cmContact.attributes.js
new file mode 100644
index 0000000..a5718a7
--- /dev/null
+++ b/server/api/cmContact/cmContact.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.controller.js b/server/api/cmContact/cmContact.controller.js
new file mode 100644
index 0000000..5ea9c83
--- /dev/null
+++ b/server/api/cmContact/cmContact.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.events.js b/server/api/cmContact/cmContact.events.js
new file mode 100644
index 0000000..91899e0
--- /dev/null
+++ b/server/api/cmContact/cmContact.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.model.js b/server/api/cmContact/cmContact.model.js
new file mode 100644
index 0000000..a9b2267
--- /dev/null
+++ b/server/api/cmContact/cmContact.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.rpc.js b/server/api/cmContact/cmContact.rpc.js
new file mode 100644
index 0000000..e05c1f6
--- /dev/null
+++ b/server/api/cmContact/cmContact.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.socket.js b/server/api/cmContact/cmContact.socket.js
new file mode 100644
index 0000000..0b0c4c1
--- /dev/null
+++ b/server/api/cmContact/cmContact.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContact/index.js b/server/api/cmContact/index.js
new file mode 100644
index 0000000..f10525a
--- /dev/null
+++ b/server/api/cmContact/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContactHasItem/cmContactHasItem.attributes.js b/server/api/cmContactHasItem/cmContactHasItem.attributes.js
new file mode 100644
index 0000000..e9d34d5
--- /dev/null
+++ b/server/api/cmContactHasItem/cmContactHasItem.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContactHasItem/cmContactHasItem.controller.js b/server/api/cmContactHasItem/cmContactHasItem.controller.js
new file mode 100644
index 0000000..cd6de2f
--- /dev/null
+++ b/server/api/cmContactHasItem/cmContactHasItem.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContactHasItem/cmContactHasItem.model.js b/server/api/cmContactHasItem/cmContactHasItem.model.js
new file mode 100644
index 0000000..8b0c7e8
--- /dev/null
+++ b/server/api/cmContactHasItem/cmContactHasItem.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContactHasItem/cmContactHasItem.rpc.js b/server/api/cmContactHasItem/cmContactHasItem.rpc.js
new file mode 100644
index 0000000..4e50a41
--- /dev/null
+++ b/server/api/cmContactHasItem/cmContactHasItem.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmContactHasItem/index.js b/server/api/cmContactHasItem/index.js
new file mode 100644
index 0000000..b0de380
--- /dev/null
+++ b/server/api/cmContactHasItem/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.attributes.js b/server/api/cmCustomField/cmCustomField.attributes.js
new file mode 100644
index 0000000..d52aff4
--- /dev/null
+++ b/server/api/cmCustomField/cmCustomField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.controller.js b/server/api/cmCustomField/cmCustomField.controller.js
new file mode 100644
index 0000000..e27d406
--- /dev/null
+++ b/server/api/cmCustomField/cmCustomField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.model.js b/server/api/cmCustomField/cmCustomField.model.js
new file mode 100644
index 0000000..c7e5670
--- /dev/null
+++ b/server/api/cmCustomField/cmCustomField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.rpc.js b/server/api/cmCustomField/cmCustomField.rpc.js
new file mode 100644
index 0000000..29e5ee3
--- /dev/null
+++ b/server/api/cmCustomField/cmCustomField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmCustomField/index.js b/server/api/cmCustomField/index.js
new file mode 100644
index 0000000..5715d4e
--- /dev/null
+++ b/server/api/cmCustomField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.attributes.js b/server/api/cmHopper/cmHopper.attributes.js
new file mode 100644
index 0000000..86ff9df
--- /dev/null
+++ b/server/api/cmHopper/cmHopper.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.controller.js b/server/api/cmHopper/cmHopper.controller.js
new file mode 100644
index 0000000..cfdcccc
--- /dev/null
+++ b/server/api/cmHopper/cmHopper.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.model.js b/server/api/cmHopper/cmHopper.model.js
new file mode 100644
index 0000000..64e387d
--- /dev/null
+++ b/server/api/cmHopper/cmHopper.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.rpc.js b/server/api/cmHopper/cmHopper.rpc.js
new file mode 100644
index 0000000..6e9f95b
--- /dev/null
+++ b/server/api/cmHopper/cmHopper.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopper/index.js b/server/api/cmHopper/index.js
new file mode 100644
index 0000000..66b8b92
--- /dev/null
+++ b/server/api/cmHopper/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.attributes.js b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.attributes.js
new file mode 100644
index 0000000..4d11a03
--- /dev/null
+++ b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.controller.js b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.controller.js
new file mode 100644
index 0000000..e640d62
--- /dev/null
+++ b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.model.js b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.model.js
new file mode 100644
index 0000000..0c02572
--- /dev/null
+++ b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.rpc.js b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.rpc.js
new file mode 100644
index 0000000..f44ae75
--- /dev/null
+++ b/server/api/cmHopperAdditionalPhone/cmHopperAdditionalPhone.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperAdditionalPhone/index.js b/server/api/cmHopperAdditionalPhone/index.js
new file mode 100644
index 0000000..d13629a
--- /dev/null
+++ b/server/api/cmHopperAdditionalPhone/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.attributes.js b/server/api/cmHopperBlack/cmHopperBlack.attributes.js
new file mode 100644
index 0000000..07e0e61
--- /dev/null
+++ b/server/api/cmHopperBlack/cmHopperBlack.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.controller.js b/server/api/cmHopperBlack/cmHopperBlack.controller.js
new file mode 100644
index 0000000..e145807
--- /dev/null
+++ b/server/api/cmHopperBlack/cmHopperBlack.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.model.js b/server/api/cmHopperBlack/cmHopperBlack.model.js
new file mode 100644
index 0000000..ca31190
--- /dev/null
+++ b/server/api/cmHopperBlack/cmHopperBlack.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.rpc.js b/server/api/cmHopperBlack/cmHopperBlack.rpc.js
new file mode 100644
index 0000000..cd2642a
--- /dev/null
+++ b/server/api/cmHopperBlack/cmHopperBlack.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/index.js b/server/api/cmHopperBlack/index.js
new file mode 100644
index 0000000..b3a4e24
--- /dev/null
+++ b/server/api/cmHopperBlack/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.attributes.js b/server/api/cmHopperFinal/cmHopperFinal.attributes.js
new file mode 100644
index 0000000..b302647
--- /dev/null
+++ b/server/api/cmHopperFinal/cmHopperFinal.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.controller.js b/server/api/cmHopperFinal/cmHopperFinal.controller.js
new file mode 100644
index 0000000..76de23c
--- /dev/null
+++ b/server/api/cmHopperFinal/cmHopperFinal.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.model.js b/server/api/cmHopperFinal/cmHopperFinal.model.js
new file mode 100644
index 0000000..90abb51
--- /dev/null
+++ b/server/api/cmHopperFinal/cmHopperFinal.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.rpc.js b/server/api/cmHopperFinal/cmHopperFinal.rpc.js
new file mode 100644
index 0000000..0c091f8
--- /dev/null
+++ b/server/api/cmHopperFinal/cmHopperFinal.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/index.js b/server/api/cmHopperFinal/index.js
new file mode 100644
index 0000000..693a38c
--- /dev/null
+++ b/server/api/cmHopperFinal/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.attributes.js b/server/api/cmHopperHistory/cmHopperHistory.attributes.js
new file mode 100644
index 0000000..5986eda
--- /dev/null
+++ b/server/api/cmHopperHistory/cmHopperHistory.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.controller.js b/server/api/cmHopperHistory/cmHopperHistory.controller.js
new file mode 100644
index 0000000..f326df5
--- /dev/null
+++ b/server/api/cmHopperHistory/cmHopperHistory.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.model.js b/server/api/cmHopperHistory/cmHopperHistory.model.js
new file mode 100644
index 0000000..8238a06
--- /dev/null
+++ b/server/api/cmHopperHistory/cmHopperHistory.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.rpc.js b/server/api/cmHopperHistory/cmHopperHistory.rpc.js
new file mode 100644
index 0000000..2a39380
--- /dev/null
+++ b/server/api/cmHopperHistory/cmHopperHistory.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/index.js b/server/api/cmHopperHistory/index.js
new file mode 100644
index 0000000..d681ef6
--- /dev/null
+++ b/server/api/cmHopperHistory/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/cmList.attributes.js b/server/api/cmList/cmList.attributes.js
new file mode 100644
index 0000000..b0b89e7
--- /dev/null
+++ b/server/api/cmList/cmList.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/cmList.controller.js b/server/api/cmList/cmList.controller.js
new file mode 100644
index 0000000..63d603b
--- /dev/null
+++ b/server/api/cmList/cmList.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/cmList.events.js b/server/api/cmList/cmList.events.js
new file mode 100644
index 0000000..1c6c2b5
--- /dev/null
+++ b/server/api/cmList/cmList.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/cmList.model.js b/server/api/cmList/cmList.model.js
new file mode 100644
index 0000000..ad2d43d
--- /dev/null
+++ b/server/api/cmList/cmList.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/cmList.rpc.js b/server/api/cmList/cmList.rpc.js
new file mode 100644
index 0000000..a0ddec1
--- /dev/null
+++ b/server/api/cmList/cmList.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/cmList.socket.js b/server/api/cmList/cmList.socket.js
new file mode 100644
index 0000000..4bf364e
--- /dev/null
+++ b/server/api/cmList/cmList.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/cmList/index.js b/server/api/cmList/index.js
new file mode 100644
index 0000000..da16ac2
--- /dev/null
+++ b/server/api/cmList/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/condition/condition.attributes.js b/server/api/condition/condition.attributes.js
new file mode 100644
index 0000000..efb9516
--- /dev/null
+++ b/server/api/condition/condition.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/condition/condition.controller.js b/server/api/condition/condition.controller.js
new file mode 100644
index 0000000..d51f65a
--- /dev/null
+++ b/server/api/condition/condition.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/condition/condition.model.js b/server/api/condition/condition.model.js
new file mode 100644
index 0000000..76d2802
--- /dev/null
+++ b/server/api/condition/condition.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/condition/condition.rpc.js b/server/api/condition/condition.rpc.js
new file mode 100644
index 0000000..04c004e
--- /dev/null
+++ b/server/api/condition/condition.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/condition/index.js b/server/api/condition/index.js
new file mode 100644
index 0000000..a1c130b
--- /dev/null
+++ b/server/api/condition/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/contactItemType/contactItemType.attributes.js b/server/api/contactItemType/contactItemType.attributes.js
new file mode 100644
index 0000000..5a4659d
--- /dev/null
+++ b/server/api/contactItemType/contactItemType.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/contactItemType/contactItemType.controller.js b/server/api/contactItemType/contactItemType.controller.js
new file mode 100644
index 0000000..0be3596
--- /dev/null
+++ b/server/api/contactItemType/contactItemType.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/contactItemType/contactItemType.model.js b/server/api/contactItemType/contactItemType.model.js
new file mode 100644
index 0000000..eeb9356
--- /dev/null
+++ b/server/api/contactItemType/contactItemType.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/contactItemType/contactItemType.rpc.js b/server/api/contactItemType/contactItemType.rpc.js
new file mode 100644
index 0000000..fbc1e88
--- /dev/null
+++ b/server/api/contactItemType/contactItemType.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/contactItemType/index.js b/server/api/contactItemType/index.js
new file mode 100644
index 0000000..b0505dd
--- /dev/null
+++ b/server/api/contactItemType/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.attributes.js b/server/api/dashboard/dashboard.attributes.js
new file mode 100644
index 0000000..9f014fb
--- /dev/null
+++ b/server/api/dashboard/dashboard.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.controller.js b/server/api/dashboard/dashboard.controller.js
new file mode 100644
index 0000000..6060402
--- /dev/null
+++ b/server/api/dashboard/dashboard.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.events.js b/server/api/dashboard/dashboard.events.js
new file mode 100644
index 0000000..f7da2e6
--- /dev/null
+++ b/server/api/dashboard/dashboard.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.model.js b/server/api/dashboard/dashboard.model.js
new file mode 100644
index 0000000..4001c80
--- /dev/null
+++ b/server/api/dashboard/dashboard.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.rpc.js b/server/api/dashboard/dashboard.rpc.js
new file mode 100644
index 0000000..313ce12
--- /dev/null
+++ b/server/api/dashboard/dashboard.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.socket.js b/server/api/dashboard/dashboard.socket.js
new file mode 100644
index 0000000..6228f2e
--- /dev/null
+++ b/server/api/dashboard/dashboard.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboard/index.js b/server/api/dashboard/index.js
new file mode 100644
index 0000000..61a44fb
--- /dev/null
+++ b/server/api/dashboard/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.attributes.js b/server/api/dashboardItem/dashboardItem.attributes.js
new file mode 100644
index 0000000..fff6074
--- /dev/null
+++ b/server/api/dashboardItem/dashboardItem.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.controller.js b/server/api/dashboardItem/dashboardItem.controller.js
new file mode 100644
index 0000000..f72f95c
--- /dev/null
+++ b/server/api/dashboardItem/dashboardItem.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.events.js b/server/api/dashboardItem/dashboardItem.events.js
new file mode 100644
index 0000000..0ac87e6
--- /dev/null
+++ b/server/api/dashboardItem/dashboardItem.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.model.js b/server/api/dashboardItem/dashboardItem.model.js
new file mode 100644
index 0000000..8c97227
--- /dev/null
+++ b/server/api/dashboardItem/dashboardItem.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.rpc.js b/server/api/dashboardItem/dashboardItem.rpc.js
new file mode 100644
index 0000000..adb2698
--- /dev/null
+++ b/server/api/dashboardItem/dashboardItem.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.socket.js b/server/api/dashboardItem/dashboardItem.socket.js
new file mode 100644
index 0000000..a47cdcb
--- /dev/null
+++ b/server/api/dashboardItem/dashboardItem.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/dashboardItem/index.js b/server/api/dashboardItem/index.js
new file mode 100644
index 0000000..a2ab5f8
--- /dev/null
+++ b/server/api/dashboardItem/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/disposition/disposition.attributes.js b/server/api/disposition/disposition.attributes.js
new file mode 100644
index 0000000..e5662fd
--- /dev/null
+++ b/server/api/disposition/disposition.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/disposition/disposition.controller.js b/server/api/disposition/disposition.controller.js
new file mode 100644
index 0000000..b6c691c
--- /dev/null
+++ b/server/api/disposition/disposition.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/disposition/disposition.model.js b/server/api/disposition/disposition.model.js
new file mode 100644
index 0000000..4a7f02f
--- /dev/null
+++ b/server/api/disposition/disposition.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/disposition/disposition.rpc.js b/server/api/disposition/disposition.rpc.js
new file mode 100644
index 0000000..2e6ada1
--- /dev/null
+++ b/server/api/disposition/disposition.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/disposition/index.js b/server/api/disposition/index.js
new file mode 100644
index 0000000..cf76f1a
--- /dev/null
+++ b/server/api/disposition/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.attributes.js b/server/api/faxAccount/faxAccount.attributes.js
new file mode 100644
index 0000000..a1863a0
--- /dev/null
+++ b/server/api/faxAccount/faxAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.controller.js b/server/api/faxAccount/faxAccount.controller.js
new file mode 100644
index 0000000..36cde27
--- /dev/null
+++ b/server/api/faxAccount/faxAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.events.js b/server/api/faxAccount/faxAccount.events.js
new file mode 100644
index 0000000..dc00a52
--- /dev/null
+++ b/server/api/faxAccount/faxAccount.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.model.js b/server/api/faxAccount/faxAccount.model.js
new file mode 100644
index 0000000..727b5d7
--- /dev/null
+++ b/server/api/faxAccount/faxAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.rpc.js b/server/api/faxAccount/faxAccount.rpc.js
new file mode 100644
index 0000000..24dd92d
--- /dev/null
+++ b/server/api/faxAccount/faxAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.socket.js b/server/api/faxAccount/faxAccount.socket.js
new file mode 100644
index 0000000..4b3e1b4
--- /dev/null
+++ b/server/api/faxAccount/faxAccount.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxAccount/index.js b/server/api/faxAccount/index.js
new file mode 100644
index 0000000..072641e
--- /dev/null
+++ b/server/api/faxAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.attributes.js b/server/api/faxApplication/faxApplication.attributes.js
new file mode 100644
index 0000000..c945150
--- /dev/null
+++ b/server/api/faxApplication/faxApplication.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.controller.js b/server/api/faxApplication/faxApplication.controller.js
new file mode 100644
index 0000000..87de51b
--- /dev/null
+++ b/server/api/faxApplication/faxApplication.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.model.js b/server/api/faxApplication/faxApplication.model.js
new file mode 100644
index 0000000..a2260a2
--- /dev/null
+++ b/server/api/faxApplication/faxApplication.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.rpc.js b/server/api/faxApplication/faxApplication.rpc.js
new file mode 100644
index 0000000..2e6cecb
--- /dev/null
+++ b/server/api/faxApplication/faxApplication.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxApplication/index.js b/server/api/faxApplication/index.js
new file mode 100644
index 0000000..4ea6ccd
--- /dev/null
+++ b/server/api/faxApplication/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.attributes.js b/server/api/faxInteraction/faxInteraction.attributes.js
new file mode 100644
index 0000000..d17ab5a
--- /dev/null
+++ b/server/api/faxInteraction/faxInteraction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.controller.js b/server/api/faxInteraction/faxInteraction.controller.js
new file mode 100644
index 0000000..f3adb6b
--- /dev/null
+++ b/server/api/faxInteraction/faxInteraction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.events.js b/server/api/faxInteraction/faxInteraction.events.js
new file mode 100644
index 0000000..e8abea7
--- /dev/null
+++ b/server/api/faxInteraction/faxInteraction.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.model.js b/server/api/faxInteraction/faxInteraction.model.js
new file mode 100644
index 0000000..43b9157
--- /dev/null
+++ b/server/api/faxInteraction/faxInteraction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.rpc.js b/server/api/faxInteraction/faxInteraction.rpc.js
new file mode 100644
index 0000000..75a39c3
--- /dev/null
+++ b/server/api/faxInteraction/faxInteraction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.socket.js b/server/api/faxInteraction/faxInteraction.socket.js
new file mode 100644
index 0000000..0e5781a
--- /dev/null
+++ b/server/api/faxInteraction/faxInteraction.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxInteraction/index.js b/server/api/faxInteraction/index.js
new file mode 100644
index 0000000..7b80499
--- /dev/null
+++ b/server/api/faxInteraction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.attributes.js b/server/api/faxMessage/faxMessage.attributes.js
new file mode 100644
index 0000000..ecd1c9d
--- /dev/null
+++ b/server/api/faxMessage/faxMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.controller.js b/server/api/faxMessage/faxMessage.controller.js
new file mode 100644
index 0000000..f80c2a3
--- /dev/null
+++ b/server/api/faxMessage/faxMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.events.js b/server/api/faxMessage/faxMessage.events.js
new file mode 100644
index 0000000..e7ce966
--- /dev/null
+++ b/server/api/faxMessage/faxMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.model.js b/server/api/faxMessage/faxMessage.model.js
new file mode 100644
index 0000000..ded601c
--- /dev/null
+++ b/server/api/faxMessage/faxMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.rpc.js b/server/api/faxMessage/faxMessage.rpc.js
new file mode 100644
index 0000000..c75b382
--- /dev/null
+++ b/server/api/faxMessage/faxMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.socket.js b/server/api/faxMessage/faxMessage.socket.js
new file mode 100644
index 0000000..1f4bc7f
--- /dev/null
+++ b/server/api/faxMessage/faxMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxMessage/index.js b/server/api/faxMessage/index.js
new file mode 100644
index 0000000..1e1d402
--- /dev/null
+++ b/server/api/faxMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.attributes.js b/server/api/faxQueue/faxQueue.attributes.js
new file mode 100644
index 0000000..743cce8
--- /dev/null
+++ b/server/api/faxQueue/faxQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.controller.js b/server/api/faxQueue/faxQueue.controller.js
new file mode 100644
index 0000000..025ba12
--- /dev/null
+++ b/server/api/faxQueue/faxQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.events.js b/server/api/faxQueue/faxQueue.events.js
new file mode 100644
index 0000000..c6cb750
--- /dev/null
+++ b/server/api/faxQueue/faxQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.model.js b/server/api/faxQueue/faxQueue.model.js
new file mode 100644
index 0000000..1ebe0bf
--- /dev/null
+++ b/server/api/faxQueue/faxQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.rpc.js b/server/api/faxQueue/faxQueue.rpc.js
new file mode 100644
index 0000000..593a62f
--- /dev/null
+++ b/server/api/faxQueue/faxQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.socket.js b/server/api/faxQueue/faxQueue.socket.js
new file mode 100644
index 0000000..1a55f05
--- /dev/null
+++ b/server/api/faxQueue/faxQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueue/index.js b/server/api/faxQueue/index.js
new file mode 100644
index 0000000..0670114
--- /dev/null
+++ b/server/api/faxQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueueReport/faxQueueReport.attributes.js b/server/api/faxQueueReport/faxQueueReport.attributes.js
new file mode 100644
index 0000000..13595a8
--- /dev/null
+++ b/server/api/faxQueueReport/faxQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueueReport/faxQueueReport.controller.js b/server/api/faxQueueReport/faxQueueReport.controller.js
new file mode 100644
index 0000000..1293623
--- /dev/null
+++ b/server/api/faxQueueReport/faxQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueueReport/faxQueueReport.model.js b/server/api/faxQueueReport/faxQueueReport.model.js
new file mode 100644
index 0000000..e67a132
--- /dev/null
+++ b/server/api/faxQueueReport/faxQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueueReport/faxQueueReport.rpc.js b/server/api/faxQueueReport/faxQueueReport.rpc.js
new file mode 100644
index 0000000..f48ab9e
--- /dev/null
+++ b/server/api/faxQueueReport/faxQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxQueueReport/index.js b/server/api/faxQueueReport/index.js
new file mode 100644
index 0000000..e1a8f5d
--- /dev/null
+++ b/server/api/faxQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxTransferReport/faxTransferReport.attributes.js b/server/api/faxTransferReport/faxTransferReport.attributes.js
new file mode 100644
index 0000000..c149cec
--- /dev/null
+++ b/server/api/faxTransferReport/faxTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxTransferReport/faxTransferReport.controller.js b/server/api/faxTransferReport/faxTransferReport.controller.js
new file mode 100644
index 0000000..2ad7c24
--- /dev/null
+++ b/server/api/faxTransferReport/faxTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxTransferReport/faxTransferReport.model.js b/server/api/faxTransferReport/faxTransferReport.model.js
new file mode 100644
index 0000000..0a5923a
--- /dev/null
+++ b/server/api/faxTransferReport/faxTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxTransferReport/faxTransferReport.rpc.js b/server/api/faxTransferReport/faxTransferReport.rpc.js
new file mode 100644
index 0000000..324f1c6
--- /dev/null
+++ b/server/api/faxTransferReport/faxTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/faxTransferReport/index.js b/server/api/faxTransferReport/index.js
new file mode 100644
index 0000000..4ba5d02
--- /dev/null
+++ b/server/api/faxTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskAccount/index.js b/server/api/intDeskAccount/index.js
new file mode 100644
index 0000000..f2a6523
--- /dev/null
+++ b/server/api/intDeskAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskAccount/intDeskAccount.attributes.js b/server/api/intDeskAccount/intDeskAccount.attributes.js
new file mode 100644
index 0000000..25e6bc1
--- /dev/null
+++ b/server/api/intDeskAccount/intDeskAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskAccount/intDeskAccount.controller.js b/server/api/intDeskAccount/intDeskAccount.controller.js
new file mode 100644
index 0000000..c0d1d5b
--- /dev/null
+++ b/server/api/intDeskAccount/intDeskAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskAccount/intDeskAccount.model.js b/server/api/intDeskAccount/intDeskAccount.model.js
new file mode 100644
index 0000000..0f9ba27
--- /dev/null
+++ b/server/api/intDeskAccount/intDeskAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskAccount/intDeskAccount.rpc.js b/server/api/intDeskAccount/intDeskAccount.rpc.js
new file mode 100644
index 0000000..4a0af1b
--- /dev/null
+++ b/server/api/intDeskAccount/intDeskAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskConfiguration/index.js b/server/api/intDeskConfiguration/index.js
new file mode 100644
index 0000000..415296f
--- /dev/null
+++ b/server/api/intDeskConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskConfiguration/intDeskConfiguration.attributes.js b/server/api/intDeskConfiguration/intDeskConfiguration.attributes.js
new file mode 100644
index 0000000..9c796e3
--- /dev/null
+++ b/server/api/intDeskConfiguration/intDeskConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x71f9=['STRING','sequelize'];(function(_0x56d0d0,_0x36961a){var _0x20b608=function(_0x1657c4){while(--_0x1657c4){_0x56d0d0['push'](_0x56d0d0['shift']());}};_0x20b608(++_0x36961a);}(_0x71f9,0xff));var _0x971f=function(_0xed1ba6,_0x23f317){_0xed1ba6=_0xed1ba6-0x0;var _0xd9036b=_0x71f9[_0xed1ba6];return _0xd9036b;};'use strict';var Sequelize=require(_0x971f('0x0'));module['exports']={'name':{'type':Sequelize[_0x971f('0x1')]},'description':{'type':Sequelize[_0x971f('0x1')]}};
\ No newline at end of file
diff --git a/server/api/intDeskConfiguration/intDeskConfiguration.controller.js b/server/api/intDeskConfiguration/intDeskConfiguration.controller.js
new file mode 100644
index 0000000..2d214d4
--- /dev/null
+++ b/server/api/intDeskConfiguration/intDeskConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskConfiguration/intDeskConfiguration.model.js b/server/api/intDeskConfiguration/intDeskConfiguration.model.js
new file mode 100644
index 0000000..7831b23
--- /dev/null
+++ b/server/api/intDeskConfiguration/intDeskConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskConfiguration/intDeskConfiguration.rpc.js b/server/api/intDeskConfiguration/intDeskConfiguration.rpc.js
new file mode 100644
index 0000000..4a6081b
--- /dev/null
+++ b/server/api/intDeskConfiguration/intDeskConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskField/index.js b/server/api/intDeskField/index.js
new file mode 100644
index 0000000..b61485b
--- /dev/null
+++ b/server/api/intDeskField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskField/intDeskField.attributes.js b/server/api/intDeskField/intDeskField.attributes.js
new file mode 100644
index 0000000..a8c236e
--- /dev/null
+++ b/server/api/intDeskField/intDeskField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskField/intDeskField.controller.js b/server/api/intDeskField/intDeskField.controller.js
new file mode 100644
index 0000000..3b798b4
--- /dev/null
+++ b/server/api/intDeskField/intDeskField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskField/intDeskField.model.js b/server/api/intDeskField/intDeskField.model.js
new file mode 100644
index 0000000..820e505
--- /dev/null
+++ b/server/api/intDeskField/intDeskField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDeskField/intDeskField.rpc.js b/server/api/intDeskField/intDeskField.rpc.js
new file mode 100644
index 0000000..6928765
--- /dev/null
+++ b/server/api/intDeskField/intDeskField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Account/index.js b/server/api/intDynamics365Account/index.js
new file mode 100644
index 0000000..7139770
--- /dev/null
+++ b/server/api/intDynamics365Account/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Account/intDynamics365Account.attributes.js b/server/api/intDynamics365Account/intDynamics365Account.attributes.js
new file mode 100644
index 0000000..2720e4c
--- /dev/null
+++ b/server/api/intDynamics365Account/intDynamics365Account.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Account/intDynamics365Account.controller.js b/server/api/intDynamics365Account/intDynamics365Account.controller.js
new file mode 100644
index 0000000..80033a8
--- /dev/null
+++ b/server/api/intDynamics365Account/intDynamics365Account.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Account/intDynamics365Account.model.js b/server/api/intDynamics365Account/intDynamics365Account.model.js
new file mode 100644
index 0000000..06c207c
--- /dev/null
+++ b/server/api/intDynamics365Account/intDynamics365Account.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Account/intDynamics365Account.rpc.js b/server/api/intDynamics365Account/intDynamics365Account.rpc.js
new file mode 100644
index 0000000..306bc0b
--- /dev/null
+++ b/server/api/intDynamics365Account/intDynamics365Account.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Configuration/index.js b/server/api/intDynamics365Configuration/index.js
new file mode 100644
index 0000000..0ab02ce
--- /dev/null
+++ b/server/api/intDynamics365Configuration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Configuration/intDynamics365Configuration.attributes.js b/server/api/intDynamics365Configuration/intDynamics365Configuration.attributes.js
new file mode 100644
index 0000000..6eb320e
--- /dev/null
+++ b/server/api/intDynamics365Configuration/intDynamics365Configuration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Configuration/intDynamics365Configuration.controller.js b/server/api/intDynamics365Configuration/intDynamics365Configuration.controller.js
new file mode 100644
index 0000000..029d878
--- /dev/null
+++ b/server/api/intDynamics365Configuration/intDynamics365Configuration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Configuration/intDynamics365Configuration.model.js b/server/api/intDynamics365Configuration/intDynamics365Configuration.model.js
new file mode 100644
index 0000000..af52194
--- /dev/null
+++ b/server/api/intDynamics365Configuration/intDynamics365Configuration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Configuration/intDynamics365Configuration.rpc.js b/server/api/intDynamics365Configuration/intDynamics365Configuration.rpc.js
new file mode 100644
index 0000000..a71fb74
--- /dev/null
+++ b/server/api/intDynamics365Configuration/intDynamics365Configuration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Field/index.js b/server/api/intDynamics365Field/index.js
new file mode 100644
index 0000000..7c7780b
--- /dev/null
+++ b/server/api/intDynamics365Field/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Field/intDynamics365Field.attributes.js b/server/api/intDynamics365Field/intDynamics365Field.attributes.js
new file mode 100644
index 0000000..3b12112
--- /dev/null
+++ b/server/api/intDynamics365Field/intDynamics365Field.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Field/intDynamics365Field.controller.js b/server/api/intDynamics365Field/intDynamics365Field.controller.js
new file mode 100644
index 0000000..8ae47a0
--- /dev/null
+++ b/server/api/intDynamics365Field/intDynamics365Field.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Field/intDynamics365Field.model.js b/server/api/intDynamics365Field/intDynamics365Field.model.js
new file mode 100644
index 0000000..299d8b2
--- /dev/null
+++ b/server/api/intDynamics365Field/intDynamics365Field.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intDynamics365Field/intDynamics365Field.rpc.js b/server/api/intDynamics365Field/intDynamics365Field.rpc.js
new file mode 100644
index 0000000..9393278
--- /dev/null
+++ b/server/api/intDynamics365Field/intDynamics365Field.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/index.js b/server/api/intFreshdeskAccount/index.js
new file mode 100644
index 0000000..820681e
--- /dev/null
+++ b/server/api/intFreshdeskAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js
new file mode 100644
index 0000000..28b1651
--- /dev/null
+++ b/server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js
new file mode 100644
index 0000000..113ee27
--- /dev/null
+++ b/server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.model.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.model.js
new file mode 100644
index 0000000..fc70dea
--- /dev/null
+++ b/server/api/intFreshdeskAccount/intFreshdeskAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js
new file mode 100644
index 0000000..3565a35
--- /dev/null
+++ b/server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/index.js b/server/api/intFreshdeskConfiguration/index.js
new file mode 100644
index 0000000..0ececfd
--- /dev/null
+++ b/server/api/intFreshdeskConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js
new file mode 100644
index 0000000..6f6db7a
--- /dev/null
+++ b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xb61a=['exports','STRING'];(function(_0x412c8f,_0x11ec94){var _0x27c005=function(_0x127059){while(--_0x127059){_0x412c8f['push'](_0x412c8f['shift']());}};_0x27c005(++_0x11ec94);}(_0xb61a,0xfa));var _0xab61=function(_0x335b86,_0x848570){_0x335b86=_0x335b86-0x0;var _0x47f662=_0xb61a[_0x335b86];return _0x47f662;};'use strict';var Sequelize=require('sequelize');module[_0xab61('0x0')]={'name':{'type':Sequelize[_0xab61('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js
new file mode 100644
index 0000000..e29e0fb
--- /dev/null
+++ b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js
new file mode 100644
index 0000000..9755b24
--- /dev/null
+++ b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js
new file mode 100644
index 0000000..2a11f4d
--- /dev/null
+++ b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/index.js b/server/api/intFreshdeskField/index.js
new file mode 100644
index 0000000..3ddfbe1
--- /dev/null
+++ b/server/api/intFreshdeskField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.attributes.js b/server/api/intFreshdeskField/intFreshdeskField.attributes.js
new file mode 100644
index 0000000..bfab2ab
--- /dev/null
+++ b/server/api/intFreshdeskField/intFreshdeskField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.controller.js b/server/api/intFreshdeskField/intFreshdeskField.controller.js
new file mode 100644
index 0000000..c3d412e
--- /dev/null
+++ b/server/api/intFreshdeskField/intFreshdeskField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.model.js b/server/api/intFreshdeskField/intFreshdeskField.model.js
new file mode 100644
index 0000000..fb7323a
--- /dev/null
+++ b/server/api/intFreshdeskField/intFreshdeskField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.rpc.js b/server/api/intFreshdeskField/intFreshdeskField.rpc.js
new file mode 100644
index 0000000..6e96a0c
--- /dev/null
+++ b/server/api/intFreshdeskField/intFreshdeskField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesAccount/index.js b/server/api/intFreshsalesAccount/index.js
new file mode 100644
index 0000000..be79d4f
--- /dev/null
+++ b/server/api/intFreshsalesAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesAccount/intFreshsalesAccount.attributes.js b/server/api/intFreshsalesAccount/intFreshsalesAccount.attributes.js
new file mode 100644
index 0000000..b9b89d9
--- /dev/null
+++ b/server/api/intFreshsalesAccount/intFreshsalesAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesAccount/intFreshsalesAccount.controller.js b/server/api/intFreshsalesAccount/intFreshsalesAccount.controller.js
new file mode 100644
index 0000000..f7c38be
--- /dev/null
+++ b/server/api/intFreshsalesAccount/intFreshsalesAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesAccount/intFreshsalesAccount.model.js b/server/api/intFreshsalesAccount/intFreshsalesAccount.model.js
new file mode 100644
index 0000000..57e8e8e
--- /dev/null
+++ b/server/api/intFreshsalesAccount/intFreshsalesAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesAccount/intFreshsalesAccount.rpc.js b/server/api/intFreshsalesAccount/intFreshsalesAccount.rpc.js
new file mode 100644
index 0000000..a266ebd
--- /dev/null
+++ b/server/api/intFreshsalesAccount/intFreshsalesAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesConfiguration/index.js b/server/api/intFreshsalesConfiguration/index.js
new file mode 100644
index 0000000..8f7511e
--- /dev/null
+++ b/server/api/intFreshsalesConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.attributes.js b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.attributes.js
new file mode 100644
index 0000000..612b6e6
--- /dev/null
+++ b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xe775=['sequelize','exports','STRING'];(function(_0x1ee119,_0x51fd98){var _0x4c8234=function(_0x20355c){while(--_0x20355c){_0x1ee119['push'](_0x1ee119['shift']());}};_0x4c8234(++_0x51fd98);}(_0xe775,0x17a));var _0x5e77=function(_0x1b1a3b,_0x52a88a){_0x1b1a3b=_0x1b1a3b-0x0;var _0x385347=_0xe775[_0x1b1a3b];return _0x385347;};'use strict';var Sequelize=require(_0x5e77('0x0'));module[_0x5e77('0x1')]={'name':{'type':Sequelize[_0x5e77('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
diff --git a/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.controller.js b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.controller.js
new file mode 100644
index 0000000..17de4be
--- /dev/null
+++ b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.model.js b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.model.js
new file mode 100644
index 0000000..96bcfc3
--- /dev/null
+++ b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.rpc.js b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.rpc.js
new file mode 100644
index 0000000..a5cddd7
--- /dev/null
+++ b/server/api/intFreshsalesConfiguration/intFreshsalesConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesField/index.js b/server/api/intFreshsalesField/index.js
new file mode 100644
index 0000000..1ad4d01
--- /dev/null
+++ b/server/api/intFreshsalesField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesField/intFreshsalesField.attributes.js b/server/api/intFreshsalesField/intFreshsalesField.attributes.js
new file mode 100644
index 0000000..f67dddc
--- /dev/null
+++ b/server/api/intFreshsalesField/intFreshsalesField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesField/intFreshsalesField.controller.js b/server/api/intFreshsalesField/intFreshsalesField.controller.js
new file mode 100644
index 0000000..78cea83
--- /dev/null
+++ b/server/api/intFreshsalesField/intFreshsalesField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesField/intFreshsalesField.model.js b/server/api/intFreshsalesField/intFreshsalesField.model.js
new file mode 100644
index 0000000..2356d5a
--- /dev/null
+++ b/server/api/intFreshsalesField/intFreshsalesField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intFreshsalesField/intFreshsalesField.rpc.js b/server/api/intFreshsalesField/intFreshsalesField.rpc.js
new file mode 100644
index 0000000..d9b81c9
--- /dev/null
+++ b/server/api/intFreshsalesField/intFreshsalesField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/index.js b/server/api/intSalesforceAccount/index.js
new file mode 100644
index 0000000..391b568
--- /dev/null
+++ b/server/api/intSalesforceAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.attributes.js b/server/api/intSalesforceAccount/intSalesforceAccount.attributes.js
new file mode 100644
index 0000000..d023b65
--- /dev/null
+++ b/server/api/intSalesforceAccount/intSalesforceAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.controller.js b/server/api/intSalesforceAccount/intSalesforceAccount.controller.js
new file mode 100644
index 0000000..44c39df
--- /dev/null
+++ b/server/api/intSalesforceAccount/intSalesforceAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.model.js b/server/api/intSalesforceAccount/intSalesforceAccount.model.js
new file mode 100644
index 0000000..1e7b079
--- /dev/null
+++ b/server/api/intSalesforceAccount/intSalesforceAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.rpc.js b/server/api/intSalesforceAccount/intSalesforceAccount.rpc.js
new file mode 100644
index 0000000..0fd0137
--- /dev/null
+++ b/server/api/intSalesforceAccount/intSalesforceAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/index.js b/server/api/intSalesforceConfiguration/index.js
new file mode 100644
index 0000000..663b937
--- /dev/null
+++ b/server/api/intSalesforceConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js
new file mode 100644
index 0000000..6c4d7d2
--- /dev/null
+++ b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js
new file mode 100644
index 0000000..438a239
--- /dev/null
+++ b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js
new file mode 100644
index 0000000..9b4dee9
--- /dev/null
+++ b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js
new file mode 100644
index 0000000..896f0ed
--- /dev/null
+++ b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceField/index.js b/server/api/intSalesforceField/index.js
new file mode 100644
index 0000000..74a88f2
--- /dev/null
+++ b/server/api/intSalesforceField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.attributes.js b/server/api/intSalesforceField/intSalesforceField.attributes.js
new file mode 100644
index 0000000..9741938
--- /dev/null
+++ b/server/api/intSalesforceField/intSalesforceField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.controller.js b/server/api/intSalesforceField/intSalesforceField.controller.js
new file mode 100644
index 0000000..7b99dcc
--- /dev/null
+++ b/server/api/intSalesforceField/intSalesforceField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.model.js b/server/api/intSalesforceField/intSalesforceField.model.js
new file mode 100644
index 0000000..2f9aff7
--- /dev/null
+++ b/server/api/intSalesforceField/intSalesforceField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.rpc.js b/server/api/intSalesforceField/intSalesforceField.rpc.js
new file mode 100644
index 0000000..0804109
--- /dev/null
+++ b/server/api/intSalesforceField/intSalesforceField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowAccount/index.js b/server/api/intServicenowAccount/index.js
new file mode 100644
index 0000000..9a09bfa
--- /dev/null
+++ b/server/api/intServicenowAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowAccount/intServicenowAccount.attributes.js b/server/api/intServicenowAccount/intServicenowAccount.attributes.js
new file mode 100644
index 0000000..f43ac13
--- /dev/null
+++ b/server/api/intServicenowAccount/intServicenowAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowAccount/intServicenowAccount.controller.js b/server/api/intServicenowAccount/intServicenowAccount.controller.js
new file mode 100644
index 0000000..e55b793
--- /dev/null
+++ b/server/api/intServicenowAccount/intServicenowAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowAccount/intServicenowAccount.model.js b/server/api/intServicenowAccount/intServicenowAccount.model.js
new file mode 100644
index 0000000..37c7d6f
--- /dev/null
+++ b/server/api/intServicenowAccount/intServicenowAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowAccount/intServicenowAccount.rpc.js b/server/api/intServicenowAccount/intServicenowAccount.rpc.js
new file mode 100644
index 0000000..4f6d82c
--- /dev/null
+++ b/server/api/intServicenowAccount/intServicenowAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowConfiguration/index.js b/server/api/intServicenowConfiguration/index.js
new file mode 100644
index 0000000..459f2c3
--- /dev/null
+++ b/server/api/intServicenowConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowConfiguration/intServicenowConfiguration.attributes.js b/server/api/intServicenowConfiguration/intServicenowConfiguration.attributes.js
new file mode 100644
index 0000000..3c069c9
--- /dev/null
+++ b/server/api/intServicenowConfiguration/intServicenowConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xfcb1=['sequelize','exports','STRING'];(function(_0xcb1763,_0x1b9378){var _0x3dab56=function(_0x4ed540){while(--_0x4ed540){_0xcb1763['push'](_0xcb1763['shift']());}};_0x3dab56(++_0x1b9378);}(_0xfcb1,0x1d1));var _0x1fcb=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xfcb1[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x1fcb('0x0'));module[_0x1fcb('0x1')]={'name':{'type':Sequelize[_0x1fcb('0x2')]},'description':{'type':Sequelize[_0x1fcb('0x2')]}};
\ No newline at end of file
diff --git a/server/api/intServicenowConfiguration/intServicenowConfiguration.controller.js b/server/api/intServicenowConfiguration/intServicenowConfiguration.controller.js
new file mode 100644
index 0000000..d3237a3
--- /dev/null
+++ b/server/api/intServicenowConfiguration/intServicenowConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowConfiguration/intServicenowConfiguration.model.js b/server/api/intServicenowConfiguration/intServicenowConfiguration.model.js
new file mode 100644
index 0000000..a0794f0
--- /dev/null
+++ b/server/api/intServicenowConfiguration/intServicenowConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowConfiguration/intServicenowConfiguration.rpc.js b/server/api/intServicenowConfiguration/intServicenowConfiguration.rpc.js
new file mode 100644
index 0000000..39c1ec1
--- /dev/null
+++ b/server/api/intServicenowConfiguration/intServicenowConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowField/index.js b/server/api/intServicenowField/index.js
new file mode 100644
index 0000000..a33292b
--- /dev/null
+++ b/server/api/intServicenowField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowField/intServicenowField.attributes.js b/server/api/intServicenowField/intServicenowField.attributes.js
new file mode 100644
index 0000000..dcac4de
--- /dev/null
+++ b/server/api/intServicenowField/intServicenowField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowField/intServicenowField.controller.js b/server/api/intServicenowField/intServicenowField.controller.js
new file mode 100644
index 0000000..402c323
--- /dev/null
+++ b/server/api/intServicenowField/intServicenowField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowField/intServicenowField.model.js b/server/api/intServicenowField/intServicenowField.model.js
new file mode 100644
index 0000000..4df4318
--- /dev/null
+++ b/server/api/intServicenowField/intServicenowField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intServicenowField/intServicenowField.rpc.js b/server/api/intServicenowField/intServicenowField.rpc.js
new file mode 100644
index 0000000..9d62fc1
--- /dev/null
+++ b/server/api/intServicenowField/intServicenowField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/index.js b/server/api/intSugarcrmAccount/index.js
new file mode 100644
index 0000000..f74beab
--- /dev/null
+++ b/server/api/intSugarcrmAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js
new file mode 100644
index 0000000..e6c258e
--- /dev/null
+++ b/server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js
new file mode 100644
index 0000000..749aa1b
--- /dev/null
+++ b/server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.model.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.model.js
new file mode 100644
index 0000000..a687815
--- /dev/null
+++ b/server/api/intSugarcrmAccount/intSugarcrmAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js
new file mode 100644
index 0000000..8bee446
--- /dev/null
+++ b/server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/index.js b/server/api/intSugarcrmConfiguration/index.js
new file mode 100644
index 0000000..383e2ef
--- /dev/null
+++ b/server/api/intSugarcrmConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js
new file mode 100644
index 0000000..ed4443c
--- /dev/null
+++ b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xc1c9=['exports','STRING'];(function(_0x1482b0,_0x312f02){var _0x4ad15f=function(_0x2621f9){while(--_0x2621f9){_0x1482b0['push'](_0x1482b0['shift']());}};_0x4ad15f(++_0x312f02);}(_0xc1c9,0x66));var _0x9c1c=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0xc1c9[_0x39096d];return _0x13da4f;};'use strict';var Sequelize=require('sequelize');module[_0x9c1c('0x0')]={'name':{'type':Sequelize[_0x9c1c('0x1')]},'description':{'type':Sequelize[_0x9c1c('0x1')]}};
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js
new file mode 100644
index 0000000..afb4cb8
--- /dev/null
+++ b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js
new file mode 100644
index 0000000..29ab779
--- /dev/null
+++ b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js
new file mode 100644
index 0000000..0ba72cf
--- /dev/null
+++ b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/index.js b/server/api/intSugarcrmField/index.js
new file mode 100644
index 0000000..64ba657
--- /dev/null
+++ b/server/api/intSugarcrmField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.attributes.js b/server/api/intSugarcrmField/intSugarcrmField.attributes.js
new file mode 100644
index 0000000..b202c49
--- /dev/null
+++ b/server/api/intSugarcrmField/intSugarcrmField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.controller.js b/server/api/intSugarcrmField/intSugarcrmField.controller.js
new file mode 100644
index 0000000..104a52c
--- /dev/null
+++ b/server/api/intSugarcrmField/intSugarcrmField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.model.js b/server/api/intSugarcrmField/intSugarcrmField.model.js
new file mode 100644
index 0000000..649233a
--- /dev/null
+++ b/server/api/intSugarcrmField/intSugarcrmField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.rpc.js b/server/api/intSugarcrmField/intSugarcrmField.rpc.js
new file mode 100644
index 0000000..31cb671
--- /dev/null
+++ b/server/api/intSugarcrmField/intSugarcrmField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerAccount/index.js b/server/api/intVtigerAccount/index.js
new file mode 100644
index 0000000..9fff009
--- /dev/null
+++ b/server/api/intVtigerAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerAccount/intVtigerAccount.attributes.js b/server/api/intVtigerAccount/intVtigerAccount.attributes.js
new file mode 100644
index 0000000..565daf8
--- /dev/null
+++ b/server/api/intVtigerAccount/intVtigerAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerAccount/intVtigerAccount.controller.js b/server/api/intVtigerAccount/intVtigerAccount.controller.js
new file mode 100644
index 0000000..2779ea3
--- /dev/null
+++ b/server/api/intVtigerAccount/intVtigerAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerAccount/intVtigerAccount.model.js b/server/api/intVtigerAccount/intVtigerAccount.model.js
new file mode 100644
index 0000000..e7ddd6a
--- /dev/null
+++ b/server/api/intVtigerAccount/intVtigerAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerAccount/intVtigerAccount.rpc.js b/server/api/intVtigerAccount/intVtigerAccount.rpc.js
new file mode 100644
index 0000000..4ed4177
--- /dev/null
+++ b/server/api/intVtigerAccount/intVtigerAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerConfiguration/index.js b/server/api/intVtigerConfiguration/index.js
new file mode 100644
index 0000000..a58ad6f
--- /dev/null
+++ b/server/api/intVtigerConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerConfiguration/intVtigerConfiguration.attributes.js b/server/api/intVtigerConfiguration/intVtigerConfiguration.attributes.js
new file mode 100644
index 0000000..6052673
--- /dev/null
+++ b/server/api/intVtigerConfiguration/intVtigerConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xd341=['STRING','sequelize','exports'];(function(_0x51fb42,_0x3020d5){var _0x5d767a=function(_0x5a7e20){while(--_0x5a7e20){_0x51fb42['push'](_0x51fb42['shift']());}};_0x5d767a(++_0x3020d5);}(_0xd341,0xbe));var _0x1d34=function(_0x46f2ca,_0xe2161b){_0x46f2ca=_0x46f2ca-0x0;var _0x508fd6=_0xd341[_0x46f2ca];return _0x508fd6;};'use strict';var Sequelize=require(_0x1d34('0x0'));module[_0x1d34('0x1')]={'name':{'type':Sequelize[_0x1d34('0x2')]},'description':{'type':Sequelize[_0x1d34('0x2')]}};
\ No newline at end of file
diff --git a/server/api/intVtigerConfiguration/intVtigerConfiguration.controller.js b/server/api/intVtigerConfiguration/intVtigerConfiguration.controller.js
new file mode 100644
index 0000000..bbb76d2
--- /dev/null
+++ b/server/api/intVtigerConfiguration/intVtigerConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerConfiguration/intVtigerConfiguration.model.js b/server/api/intVtigerConfiguration/intVtigerConfiguration.model.js
new file mode 100644
index 0000000..aa103dd
--- /dev/null
+++ b/server/api/intVtigerConfiguration/intVtigerConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerConfiguration/intVtigerConfiguration.rpc.js b/server/api/intVtigerConfiguration/intVtigerConfiguration.rpc.js
new file mode 100644
index 0000000..e5f4a8b
--- /dev/null
+++ b/server/api/intVtigerConfiguration/intVtigerConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerField/index.js b/server/api/intVtigerField/index.js
new file mode 100644
index 0000000..ef4ed9c
--- /dev/null
+++ b/server/api/intVtigerField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerField/intVtigerField.attributes.js b/server/api/intVtigerField/intVtigerField.attributes.js
new file mode 100644
index 0000000..ab82fd0
--- /dev/null
+++ b/server/api/intVtigerField/intVtigerField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerField/intVtigerField.controller.js b/server/api/intVtigerField/intVtigerField.controller.js
new file mode 100644
index 0000000..1302f38
--- /dev/null
+++ b/server/api/intVtigerField/intVtigerField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerField/intVtigerField.model.js b/server/api/intVtigerField/intVtigerField.model.js
new file mode 100644
index 0000000..757e260
--- /dev/null
+++ b/server/api/intVtigerField/intVtigerField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intVtigerField/intVtigerField.rpc.js b/server/api/intVtigerField/intVtigerField.rpc.js
new file mode 100644
index 0000000..fc19aaa
--- /dev/null
+++ b/server/api/intVtigerField/intVtigerField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/index.js b/server/api/intZendeskAccount/index.js
new file mode 100644
index 0000000..342dc3f
--- /dev/null
+++ b/server/api/intZendeskAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.attributes.js b/server/api/intZendeskAccount/intZendeskAccount.attributes.js
new file mode 100644
index 0000000..f31fcd3
--- /dev/null
+++ b/server/api/intZendeskAccount/intZendeskAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.controller.js b/server/api/intZendeskAccount/intZendeskAccount.controller.js
new file mode 100644
index 0000000..990f1a9
--- /dev/null
+++ b/server/api/intZendeskAccount/intZendeskAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.model.js b/server/api/intZendeskAccount/intZendeskAccount.model.js
new file mode 100644
index 0000000..68af3a4
--- /dev/null
+++ b/server/api/intZendeskAccount/intZendeskAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.rpc.js b/server/api/intZendeskAccount/intZendeskAccount.rpc.js
new file mode 100644
index 0000000..ac2041c
--- /dev/null
+++ b/server/api/intZendeskAccount/intZendeskAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/index.js b/server/api/intZendeskConfiguration/index.js
new file mode 100644
index 0000000..3f0c0a8
--- /dev/null
+++ b/server/api/intZendeskConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js
new file mode 100644
index 0000000..9fc0fb0
--- /dev/null
+++ b/server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x4e37=['exports','STRING','sequelize'];(function(_0x379809,_0x2a8f32){var _0xb64de7=function(_0x7fd2fe){while(--_0x7fd2fe){_0x379809['push'](_0x379809['shift']());}};_0xb64de7(++_0x2a8f32);}(_0x4e37,0x15e));var _0x74e3=function(_0x4b4844,_0x2f0dfb){_0x4b4844=_0x4b4844-0x0;var _0x575192=_0x4e37[_0x4b4844];return _0x575192;};'use strict';var Sequelize=require(_0x74e3('0x0'));module[_0x74e3('0x1')]={'name':{'type':Sequelize[_0x74e3('0x2')]},'description':{'type':Sequelize[_0x74e3('0x2')]}};
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js
new file mode 100644
index 0000000..ab076c9
--- /dev/null
+++ b/server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.model.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.model.js
new file mode 100644
index 0000000..c17fad3
--- /dev/null
+++ b/server/api/intZendeskConfiguration/intZendeskConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js
new file mode 100644
index 0000000..0fc94c6
--- /dev/null
+++ b/server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskField/index.js b/server/api/intZendeskField/index.js
new file mode 100644
index 0000000..2d000ee
--- /dev/null
+++ b/server/api/intZendeskField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.attributes.js b/server/api/intZendeskField/intZendeskField.attributes.js
new file mode 100644
index 0000000..6893520
--- /dev/null
+++ b/server/api/intZendeskField/intZendeskField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.controller.js b/server/api/intZendeskField/intZendeskField.controller.js
new file mode 100644
index 0000000..9b5f748
--- /dev/null
+++ b/server/api/intZendeskField/intZendeskField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.model.js b/server/api/intZendeskField/intZendeskField.model.js
new file mode 100644
index 0000000..123bcb0
--- /dev/null
+++ b/server/api/intZendeskField/intZendeskField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.rpc.js b/server/api/intZendeskField/intZendeskField.rpc.js
new file mode 100644
index 0000000..220f813
--- /dev/null
+++ b/server/api/intZendeskField/intZendeskField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoAccount/index.js b/server/api/intZohoAccount/index.js
new file mode 100644
index 0000000..6de76f2
--- /dev/null
+++ b/server/api/intZohoAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoAccount/intZohoAccount.attributes.js b/server/api/intZohoAccount/intZohoAccount.attributes.js
new file mode 100644
index 0000000..d9b3b5e
--- /dev/null
+++ b/server/api/intZohoAccount/intZohoAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoAccount/intZohoAccount.controller.js b/server/api/intZohoAccount/intZohoAccount.controller.js
new file mode 100644
index 0000000..68d0c93
--- /dev/null
+++ b/server/api/intZohoAccount/intZohoAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoAccount/intZohoAccount.model.js b/server/api/intZohoAccount/intZohoAccount.model.js
new file mode 100644
index 0000000..6959f98
--- /dev/null
+++ b/server/api/intZohoAccount/intZohoAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoAccount/intZohoAccount.rpc.js b/server/api/intZohoAccount/intZohoAccount.rpc.js
new file mode 100644
index 0000000..5cfcdbe
--- /dev/null
+++ b/server/api/intZohoAccount/intZohoAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoConfiguration/index.js b/server/api/intZohoConfiguration/index.js
new file mode 100644
index 0000000..88b8323
--- /dev/null
+++ b/server/api/intZohoConfiguration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoConfiguration/intZohoConfiguration.attributes.js b/server/api/intZohoConfiguration/intZohoConfiguration.attributes.js
new file mode 100644
index 0000000..07def24
--- /dev/null
+++ b/server/api/intZohoConfiguration/intZohoConfiguration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoConfiguration/intZohoConfiguration.controller.js b/server/api/intZohoConfiguration/intZohoConfiguration.controller.js
new file mode 100644
index 0000000..547e95c
--- /dev/null
+++ b/server/api/intZohoConfiguration/intZohoConfiguration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoConfiguration/intZohoConfiguration.model.js b/server/api/intZohoConfiguration/intZohoConfiguration.model.js
new file mode 100644
index 0000000..6d7bc46
--- /dev/null
+++ b/server/api/intZohoConfiguration/intZohoConfiguration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoConfiguration/intZohoConfiguration.rpc.js b/server/api/intZohoConfiguration/intZohoConfiguration.rpc.js
new file mode 100644
index 0000000..56bb626
--- /dev/null
+++ b/server/api/intZohoConfiguration/intZohoConfiguration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoField/index.js b/server/api/intZohoField/index.js
new file mode 100644
index 0000000..0d5b91e
--- /dev/null
+++ b/server/api/intZohoField/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoField/intZohoField.attributes.js b/server/api/intZohoField/intZohoField.attributes.js
new file mode 100644
index 0000000..4b86905
--- /dev/null
+++ b/server/api/intZohoField/intZohoField.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoField/intZohoField.controller.js b/server/api/intZohoField/intZohoField.controller.js
new file mode 100644
index 0000000..f6b22ab
--- /dev/null
+++ b/server/api/intZohoField/intZohoField.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoField/intZohoField.model.js b/server/api/intZohoField/intZohoField.model.js
new file mode 100644
index 0000000..442bbad
--- /dev/null
+++ b/server/api/intZohoField/intZohoField.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/intZohoField/intZohoField.rpc.js b/server/api/intZohoField/intZohoField.rpc.js
new file mode 100644
index 0000000..2fd3d05
--- /dev/null
+++ b/server/api/intZohoField/intZohoField.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integration/index.js b/server/api/integration/index.js
new file mode 100644
index 0000000..dabec33
--- /dev/null
+++ b/server/api/integration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integration/integration.attributes.js b/server/api/integration/integration.attributes.js
new file mode 100644
index 0000000..8895713
--- /dev/null
+++ b/server/api/integration/integration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integration/integration.controller.js b/server/api/integration/integration.controller.js
new file mode 100644
index 0000000..0562e87
--- /dev/null
+++ b/server/api/integration/integration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integration/integration.model.js b/server/api/integration/integration.model.js
new file mode 100644
index 0000000..67a0a15
--- /dev/null
+++ b/server/api/integration/integration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integration/integration.rpc.js b/server/api/integration/integration.rpc.js
new file mode 100644
index 0000000..786bef5
--- /dev/null
+++ b/server/api/integration/integration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integrationReport/index.js b/server/api/integrationReport/index.js
new file mode 100644
index 0000000..28c8ebf
--- /dev/null
+++ b/server/api/integrationReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.attributes.js b/server/api/integrationReport/integrationReport.attributes.js
new file mode 100644
index 0000000..a097220
--- /dev/null
+++ b/server/api/integrationReport/integrationReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.controller.js b/server/api/integrationReport/integrationReport.controller.js
new file mode 100644
index 0000000..1081ae7
--- /dev/null
+++ b/server/api/integrationReport/integrationReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.model.js b/server/api/integrationReport/integrationReport.model.js
new file mode 100644
index 0000000..11a38da
--- /dev/null
+++ b/server/api/integrationReport/integrationReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.rpc.js b/server/api/integrationReport/integrationReport.rpc.js
new file mode 100644
index 0000000..ccfe95d
--- /dev/null
+++ b/server/api/integrationReport/integrationReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/interval/index.js b/server/api/interval/index.js
new file mode 100644
index 0000000..a389fdc
--- /dev/null
+++ b/server/api/interval/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/interval/interval.attributes.js b/server/api/interval/interval.attributes.js
new file mode 100644
index 0000000..9968a79
--- /dev/null
+++ b/server/api/interval/interval.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/interval/interval.controller.js b/server/api/interval/interval.controller.js
new file mode 100644
index 0000000..f4e878d
--- /dev/null
+++ b/server/api/interval/interval.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/interval/interval.model.js b/server/api/interval/interval.model.js
new file mode 100644
index 0000000..6a1831d
--- /dev/null
+++ b/server/api/interval/interval.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/interval/interval.rpc.js b/server/api/interval/interval.rpc.js
new file mode 100644
index 0000000..6f93bc2
--- /dev/null
+++ b/server/api/interval/interval.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jira/index.js b/server/api/jira/index.js
new file mode 100644
index 0000000..79a600d
--- /dev/null
+++ b/server/api/jira/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jira/jira.controller.js b/server/api/jira/jira.controller.js
new file mode 100644
index 0000000..0829613
--- /dev/null
+++ b/server/api/jira/jira.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/index.js b/server/api/jscriptyAnswerReport/index.js
new file mode 100644
index 0000000..12d69cc
--- /dev/null
+++ b/server/api/jscriptyAnswerReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.attributes.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.attributes.js
new file mode 100644
index 0000000..aec2717
--- /dev/null
+++ b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.controller.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.controller.js
new file mode 100644
index 0000000..1f6a0fe
--- /dev/null
+++ b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.model.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.model.js
new file mode 100644
index 0000000..246a742
--- /dev/null
+++ b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.rpc.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.rpc.js
new file mode 100644
index 0000000..b085d56
--- /dev/null
+++ b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyProject/index.js b/server/api/jscriptyProject/index.js
new file mode 100644
index 0000000..24bd237
--- /dev/null
+++ b/server/api/jscriptyProject/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.attributes.js b/server/api/jscriptyProject/jscriptyProject.attributes.js
new file mode 100644
index 0000000..cf00d79
--- /dev/null
+++ b/server/api/jscriptyProject/jscriptyProject.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.controller.js b/server/api/jscriptyProject/jscriptyProject.controller.js
new file mode 100644
index 0000000..4352d48
--- /dev/null
+++ b/server/api/jscriptyProject/jscriptyProject.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.model.js b/server/api/jscriptyProject/jscriptyProject.model.js
new file mode 100644
index 0000000..2ff744b
--- /dev/null
+++ b/server/api/jscriptyProject/jscriptyProject.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.rpc.js b/server/api/jscriptyProject/jscriptyProject.rpc.js
new file mode 100644
index 0000000..badf828
--- /dev/null
+++ b/server/api/jscriptyProject/jscriptyProject.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/index.js b/server/api/jscriptyQuestionReport/index.js
new file mode 100644
index 0000000..cebf513
--- /dev/null
+++ b/server/api/jscriptyQuestionReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js
new file mode 100644
index 0000000..ec1e575
--- /dev/null
+++ b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js
new file mode 100644
index 0000000..68cc1b2
--- /dev/null
+++ b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js
new file mode 100644
index 0000000..5fdb9bc
--- /dev/null
+++ b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js
new file mode 100644
index 0000000..3418887
--- /dev/null
+++ b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/index.js b/server/api/jscriptySessionReport/index.js
new file mode 100644
index 0000000..c9351e6
--- /dev/null
+++ b/server/api/jscriptySessionReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.attributes.js b/server/api/jscriptySessionReport/jscriptySessionReport.attributes.js
new file mode 100644
index 0000000..38427e3
--- /dev/null
+++ b/server/api/jscriptySessionReport/jscriptySessionReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.controller.js b/server/api/jscriptySessionReport/jscriptySessionReport.controller.js
new file mode 100644
index 0000000..06622bd
--- /dev/null
+++ b/server/api/jscriptySessionReport/jscriptySessionReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.model.js b/server/api/jscriptySessionReport/jscriptySessionReport.model.js
new file mode 100644
index 0000000..02333cf
--- /dev/null
+++ b/server/api/jscriptySessionReport/jscriptySessionReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.rpc.js b/server/api/jscriptySessionReport/jscriptySessionReport.rpc.js
new file mode 100644
index 0000000..1a87dc8
--- /dev/null
+++ b/server/api/jscriptySessionReport/jscriptySessionReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/license/index.js b/server/api/license/index.js
new file mode 100644
index 0000000..f8f3a33
--- /dev/null
+++ b/server/api/license/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/license/license.attributes.js b/server/api/license/license.attributes.js
new file mode 100644
index 0000000..b1ca3ae
--- /dev/null
+++ b/server/api/license/license.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/license/license.controller.js b/server/api/license/license.controller.js
new file mode 100644
index 0000000..c6c3074
--- /dev/null
+++ b/server/api/license/license.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/license/license.model.js b/server/api/license/license.model.js
new file mode 100644
index 0000000..61c1180
--- /dev/null
+++ b/server/api/license/license.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/license/license.rpc.js b/server/api/license/license.rpc.js
new file mode 100644
index 0000000..c0da594
--- /dev/null
+++ b/server/api/license/license.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/index.js b/server/api/mailAccount/index.js
new file mode 100644
index 0000000..cf6d926
--- /dev/null
+++ b/server/api/mailAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.attributes.js b/server/api/mailAccount/mailAccount.attributes.js
new file mode 100644
index 0000000..7f147c0
--- /dev/null
+++ b/server/api/mailAccount/mailAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.controller.js b/server/api/mailAccount/mailAccount.controller.js
new file mode 100644
index 0000000..e2e6315
--- /dev/null
+++ b/server/api/mailAccount/mailAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.events.js b/server/api/mailAccount/mailAccount.events.js
new file mode 100644
index 0000000..6d35f95
--- /dev/null
+++ b/server/api/mailAccount/mailAccount.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.model.js b/server/api/mailAccount/mailAccount.model.js
new file mode 100644
index 0000000..e1c6fe7
--- /dev/null
+++ b/server/api/mailAccount/mailAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.rpc.js b/server/api/mailAccount/mailAccount.rpc.js
new file mode 100644
index 0000000..a61ea1d
--- /dev/null
+++ b/server/api/mailAccount/mailAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.socket.js b/server/api/mailAccount/mailAccount.socket.js
new file mode 100644
index 0000000..394bc1e
--- /dev/null
+++ b/server/api/mailAccount/mailAccount.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailApplication/index.js b/server/api/mailApplication/index.js
new file mode 100644
index 0000000..97512b9
--- /dev/null
+++ b/server/api/mailApplication/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.attributes.js b/server/api/mailApplication/mailApplication.attributes.js
new file mode 100644
index 0000000..3270f08
--- /dev/null
+++ b/server/api/mailApplication/mailApplication.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.controller.js b/server/api/mailApplication/mailApplication.controller.js
new file mode 100644
index 0000000..a66fb0b
--- /dev/null
+++ b/server/api/mailApplication/mailApplication.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.model.js b/server/api/mailApplication/mailApplication.model.js
new file mode 100644
index 0000000..2c607cc
--- /dev/null
+++ b/server/api/mailApplication/mailApplication.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.rpc.js b/server/api/mailApplication/mailApplication.rpc.js
new file mode 100644
index 0000000..d48e3a6
--- /dev/null
+++ b/server/api/mailApplication/mailApplication.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/index.js b/server/api/mailInteraction/index.js
new file mode 100644
index 0000000..fc5b4d4
--- /dev/null
+++ b/server/api/mailInteraction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.attributes.js b/server/api/mailInteraction/mailInteraction.attributes.js
new file mode 100644
index 0000000..152f199
--- /dev/null
+++ b/server/api/mailInteraction/mailInteraction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.controller.js b/server/api/mailInteraction/mailInteraction.controller.js
new file mode 100644
index 0000000..8aa2882
--- /dev/null
+++ b/server/api/mailInteraction/mailInteraction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.events.js b/server/api/mailInteraction/mailInteraction.events.js
new file mode 100644
index 0000000..62ea5de
--- /dev/null
+++ b/server/api/mailInteraction/mailInteraction.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.model.js b/server/api/mailInteraction/mailInteraction.model.js
new file mode 100644
index 0000000..ae5ff55
--- /dev/null
+++ b/server/api/mailInteraction/mailInteraction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.rpc.js b/server/api/mailInteraction/mailInteraction.rpc.js
new file mode 100644
index 0000000..af938dc
--- /dev/null
+++ b/server/api/mailInteraction/mailInteraction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.socket.js b/server/api/mailInteraction/mailInteraction.socket.js
new file mode 100644
index 0000000..5c4fbe5
--- /dev/null
+++ b/server/api/mailInteraction/mailInteraction.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/index.js b/server/api/mailMessage/index.js
new file mode 100644
index 0000000..b3c2750
--- /dev/null
+++ b/server/api/mailMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.attributes.js b/server/api/mailMessage/mailMessage.attributes.js
new file mode 100644
index 0000000..7e524cb
--- /dev/null
+++ b/server/api/mailMessage/mailMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.controller.js b/server/api/mailMessage/mailMessage.controller.js
new file mode 100644
index 0000000..84ed085
--- /dev/null
+++ b/server/api/mailMessage/mailMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.events.js b/server/api/mailMessage/mailMessage.events.js
new file mode 100644
index 0000000..e5363a3
--- /dev/null
+++ b/server/api/mailMessage/mailMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.model.js b/server/api/mailMessage/mailMessage.model.js
new file mode 100644
index 0000000..664e08c
--- /dev/null
+++ b/server/api/mailMessage/mailMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.rpc.js b/server/api/mailMessage/mailMessage.rpc.js
new file mode 100644
index 0000000..5e37d6d
--- /dev/null
+++ b/server/api/mailMessage/mailMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.socket.js b/server/api/mailMessage/mailMessage.socket.js
new file mode 100644
index 0000000..a9fe0bf
--- /dev/null
+++ b/server/api/mailMessage/mailMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/index.js b/server/api/mailQueue/index.js
new file mode 100644
index 0000000..44543e3
--- /dev/null
+++ b/server/api/mailQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.attributes.js b/server/api/mailQueue/mailQueue.attributes.js
new file mode 100644
index 0000000..454d74d
--- /dev/null
+++ b/server/api/mailQueue/mailQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.controller.js b/server/api/mailQueue/mailQueue.controller.js
new file mode 100644
index 0000000..f372958
--- /dev/null
+++ b/server/api/mailQueue/mailQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.events.js b/server/api/mailQueue/mailQueue.events.js
new file mode 100644
index 0000000..0da4b80
--- /dev/null
+++ b/server/api/mailQueue/mailQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.model.js b/server/api/mailQueue/mailQueue.model.js
new file mode 100644
index 0000000..4e08208
--- /dev/null
+++ b/server/api/mailQueue/mailQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.rpc.js b/server/api/mailQueue/mailQueue.rpc.js
new file mode 100644
index 0000000..d7f2f0b
--- /dev/null
+++ b/server/api/mailQueue/mailQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.socket.js b/server/api/mailQueue/mailQueue.socket.js
new file mode 100644
index 0000000..58c836c
--- /dev/null
+++ b/server/api/mailQueue/mailQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueueReport/index.js b/server/api/mailQueueReport/index.js
new file mode 100644
index 0000000..7afcb21
--- /dev/null
+++ b/server/api/mailQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueueReport/mailQueueReport.attributes.js b/server/api/mailQueueReport/mailQueueReport.attributes.js
new file mode 100644
index 0000000..ea317ed
--- /dev/null
+++ b/server/api/mailQueueReport/mailQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueueReport/mailQueueReport.controller.js b/server/api/mailQueueReport/mailQueueReport.controller.js
new file mode 100644
index 0000000..7077f12
--- /dev/null
+++ b/server/api/mailQueueReport/mailQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueueReport/mailQueueReport.model.js b/server/api/mailQueueReport/mailQueueReport.model.js
new file mode 100644
index 0000000..3b6dc20
--- /dev/null
+++ b/server/api/mailQueueReport/mailQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailQueueReport/mailQueueReport.rpc.js b/server/api/mailQueueReport/mailQueueReport.rpc.js
new file mode 100644
index 0000000..2b77bde
--- /dev/null
+++ b/server/api/mailQueueReport/mailQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerIn/index.js b/server/api/mailServerIn/index.js
new file mode 100644
index 0000000..ede39ed
--- /dev/null
+++ b/server/api/mailServerIn/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerIn/mailServerIn.attributes.js b/server/api/mailServerIn/mailServerIn.attributes.js
new file mode 100644
index 0000000..c5bb563
--- /dev/null
+++ b/server/api/mailServerIn/mailServerIn.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerIn/mailServerIn.model.js b/server/api/mailServerIn/mailServerIn.model.js
new file mode 100644
index 0000000..7bf3d8a
--- /dev/null
+++ b/server/api/mailServerIn/mailServerIn.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerIn/mailServerIn.rpc.js b/server/api/mailServerIn/mailServerIn.rpc.js
new file mode 100644
index 0000000..732c34d
--- /dev/null
+++ b/server/api/mailServerIn/mailServerIn.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerOut/index.js b/server/api/mailServerOut/index.js
new file mode 100644
index 0000000..4365eb4
--- /dev/null
+++ b/server/api/mailServerOut/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.attributes.js b/server/api/mailServerOut/mailServerOut.attributes.js
new file mode 100644
index 0000000..29a4217
--- /dev/null
+++ b/server/api/mailServerOut/mailServerOut.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.controller.js b/server/api/mailServerOut/mailServerOut.controller.js
new file mode 100644
index 0000000..bdf5179
--- /dev/null
+++ b/server/api/mailServerOut/mailServerOut.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.model.js b/server/api/mailServerOut/mailServerOut.model.js
new file mode 100644
index 0000000..a817d52
--- /dev/null
+++ b/server/api/mailServerOut/mailServerOut.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.rpc.js b/server/api/mailServerOut/mailServerOut.rpc.js
new file mode 100644
index 0000000..1ad449d
--- /dev/null
+++ b/server/api/mailServerOut/mailServerOut.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailSubstatus/index.js b/server/api/mailSubstatus/index.js
new file mode 100644
index 0000000..a3be599
--- /dev/null
+++ b/server/api/mailSubstatus/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailSubstatus/mailSubstatus.attributes.js b/server/api/mailSubstatus/mailSubstatus.attributes.js
new file mode 100644
index 0000000..92721f9
--- /dev/null
+++ b/server/api/mailSubstatus/mailSubstatus.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailSubstatus/mailSubstatus.controller.js b/server/api/mailSubstatus/mailSubstatus.controller.js
new file mode 100644
index 0000000..d1e4c30
--- /dev/null
+++ b/server/api/mailSubstatus/mailSubstatus.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailSubstatus/mailSubstatus.events.js b/server/api/mailSubstatus/mailSubstatus.events.js
new file mode 100644
index 0000000..a380c43
--- /dev/null
+++ b/server/api/mailSubstatus/mailSubstatus.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailSubstatus/mailSubstatus.model.js b/server/api/mailSubstatus/mailSubstatus.model.js
new file mode 100644
index 0000000..1f8c88f
--- /dev/null
+++ b/server/api/mailSubstatus/mailSubstatus.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailSubstatus/mailSubstatus.rpc.js b/server/api/mailSubstatus/mailSubstatus.rpc.js
new file mode 100644
index 0000000..22c6bdd
--- /dev/null
+++ b/server/api/mailSubstatus/mailSubstatus.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailTransferReport/index.js b/server/api/mailTransferReport/index.js
new file mode 100644
index 0000000..2154b49
--- /dev/null
+++ b/server/api/mailTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailTransferReport/mailTransferReport.attributes.js b/server/api/mailTransferReport/mailTransferReport.attributes.js
new file mode 100644
index 0000000..390ea73
--- /dev/null
+++ b/server/api/mailTransferReport/mailTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailTransferReport/mailTransferReport.controller.js b/server/api/mailTransferReport/mailTransferReport.controller.js
new file mode 100644
index 0000000..f09105a
--- /dev/null
+++ b/server/api/mailTransferReport/mailTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailTransferReport/mailTransferReport.model.js b/server/api/mailTransferReport/mailTransferReport.model.js
new file mode 100644
index 0000000..e6ae281
--- /dev/null
+++ b/server/api/mailTransferReport/mailTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/mailTransferReport/mailTransferReport.rpc.js b/server/api/mailTransferReport/mailTransferReport.rpc.js
new file mode 100644
index 0000000..b6913d3
--- /dev/null
+++ b/server/api/mailTransferReport/mailTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/memberReport/index.js b/server/api/memberReport/index.js
new file mode 100644
index 0000000..b0b1e9a
--- /dev/null
+++ b/server/api/memberReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.attributes.js b/server/api/memberReport/memberReport.attributes.js
new file mode 100644
index 0000000..1474f26
--- /dev/null
+++ b/server/api/memberReport/memberReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.controller.js b/server/api/memberReport/memberReport.controller.js
new file mode 100644
index 0000000..1e768f8
--- /dev/null
+++ b/server/api/memberReport/memberReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.model.js b/server/api/memberReport/memberReport.model.js
new file mode 100644
index 0000000..e3ce4df
--- /dev/null
+++ b/server/api/memberReport/memberReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.rpc.js b/server/api/memberReport/memberReport.rpc.js
new file mode 100644
index 0000000..5b68d02
--- /dev/null
+++ b/server/api/memberReport/memberReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/migration/index.js b/server/api/migration/index.js
new file mode 100644
index 0000000..7c7bd99
--- /dev/null
+++ b/server/api/migration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/migration/migration.attributes.js b/server/api/migration/migration.attributes.js
new file mode 100644
index 0000000..f18f551
--- /dev/null
+++ b/server/api/migration/migration.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xc760=['version','exports','STRING'];(function(_0x1026d2,_0x42fe66){var _0x4a6773=function(_0x1a295f){while(--_0x1a295f){_0x1026d2['push'](_0x1026d2['shift']());}};_0x4a6773(++_0x42fe66);}(_0xc760,0x7f));var _0x0c76=function(_0x4e4bf8,_0x65dcf3){_0x4e4bf8=_0x4e4bf8-0x0;var _0x39171c=_0xc760[_0x4e4bf8];return _0x39171c;};'use strict';var Sequelize=require('sequelize');module[_0x0c76('0x0')]={'version':{'type':Sequelize[_0x0c76('0x1')],'unique':_0x0c76('0x2')}};
\ No newline at end of file
diff --git a/server/api/migration/migration.controller.js b/server/api/migration/migration.controller.js
new file mode 100644
index 0000000..3938488
--- /dev/null
+++ b/server/api/migration/migration.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/migration/migration.model.js b/server/api/migration/migration.model.js
new file mode 100644
index 0000000..a479907
--- /dev/null
+++ b/server/api/migration/migration.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/migration/migration.rpc.js b/server/api/migration/migration.rpc.js
new file mode 100644
index 0000000..d451f04
--- /dev/null
+++ b/server/api/migration/migration.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/network/index.js b/server/api/network/index.js
new file mode 100644
index 0000000..c6bb18b
--- /dev/null
+++ b/server/api/network/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/network/network.attributes.js b/server/api/network/network.attributes.js
new file mode 100644
index 0000000..0579edf
--- /dev/null
+++ b/server/api/network/network.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/network/network.controller.js b/server/api/network/network.controller.js
new file mode 100644
index 0000000..0ed13fd
--- /dev/null
+++ b/server/api/network/network.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/network/network.model.js b/server/api/network/network.model.js
new file mode 100644
index 0000000..9bae747
--- /dev/null
+++ b/server/api/network/network.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/network/network.rpc.js b/server/api/network/network.rpc.js
new file mode 100644
index 0000000..364e0ae
--- /dev/null
+++ b/server/api/network/network.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/index.js b/server/api/openchannelAccount/index.js
new file mode 100644
index 0000000..761d1c4
--- /dev/null
+++ b/server/api/openchannelAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.attributes.js b/server/api/openchannelAccount/openchannelAccount.attributes.js
new file mode 100644
index 0000000..aaade9d
--- /dev/null
+++ b/server/api/openchannelAccount/openchannelAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.controller.js b/server/api/openchannelAccount/openchannelAccount.controller.js
new file mode 100644
index 0000000..608a568
--- /dev/null
+++ b/server/api/openchannelAccount/openchannelAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.events.js b/server/api/openchannelAccount/openchannelAccount.events.js
new file mode 100644
index 0000000..674f67c
--- /dev/null
+++ b/server/api/openchannelAccount/openchannelAccount.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.model.js b/server/api/openchannelAccount/openchannelAccount.model.js
new file mode 100644
index 0000000..901b836
--- /dev/null
+++ b/server/api/openchannelAccount/openchannelAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.rpc.js b/server/api/openchannelAccount/openchannelAccount.rpc.js
new file mode 100644
index 0000000..f2707cb
--- /dev/null
+++ b/server/api/openchannelAccount/openchannelAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.socket.js b/server/api/openchannelAccount/openchannelAccount.socket.js
new file mode 100644
index 0000000..a4fffaa
--- /dev/null
+++ b/server/api/openchannelAccount/openchannelAccount.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelApplication/index.js b/server/api/openchannelApplication/index.js
new file mode 100644
index 0000000..5cd8567
--- /dev/null
+++ b/server/api/openchannelApplication/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.attributes.js b/server/api/openchannelApplication/openchannelApplication.attributes.js
new file mode 100644
index 0000000..a0ce650
--- /dev/null
+++ b/server/api/openchannelApplication/openchannelApplication.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.controller.js b/server/api/openchannelApplication/openchannelApplication.controller.js
new file mode 100644
index 0000000..239b191
--- /dev/null
+++ b/server/api/openchannelApplication/openchannelApplication.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.model.js b/server/api/openchannelApplication/openchannelApplication.model.js
new file mode 100644
index 0000000..46a7994
--- /dev/null
+++ b/server/api/openchannelApplication/openchannelApplication.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.rpc.js b/server/api/openchannelApplication/openchannelApplication.rpc.js
new file mode 100644
index 0000000..ada04e9
--- /dev/null
+++ b/server/api/openchannelApplication/openchannelApplication.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/index.js b/server/api/openchannelInteraction/index.js
new file mode 100644
index 0000000..7a9a47b
--- /dev/null
+++ b/server/api/openchannelInteraction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.attributes.js b/server/api/openchannelInteraction/openchannelInteraction.attributes.js
new file mode 100644
index 0000000..8d4e4ec
--- /dev/null
+++ b/server/api/openchannelInteraction/openchannelInteraction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.controller.js b/server/api/openchannelInteraction/openchannelInteraction.controller.js
new file mode 100644
index 0000000..1c08412
--- /dev/null
+++ b/server/api/openchannelInteraction/openchannelInteraction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.events.js b/server/api/openchannelInteraction/openchannelInteraction.events.js
new file mode 100644
index 0000000..0f3754e
--- /dev/null
+++ b/server/api/openchannelInteraction/openchannelInteraction.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.model.js b/server/api/openchannelInteraction/openchannelInteraction.model.js
new file mode 100644
index 0000000..def4579
--- /dev/null
+++ b/server/api/openchannelInteraction/openchannelInteraction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.rpc.js b/server/api/openchannelInteraction/openchannelInteraction.rpc.js
new file mode 100644
index 0000000..18c7c65
--- /dev/null
+++ b/server/api/openchannelInteraction/openchannelInteraction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.socket.js b/server/api/openchannelInteraction/openchannelInteraction.socket.js
new file mode 100644
index 0000000..c1b8640
--- /dev/null
+++ b/server/api/openchannelInteraction/openchannelInteraction.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/index.js b/server/api/openchannelMessage/index.js
new file mode 100644
index 0000000..d5dbda4
--- /dev/null
+++ b/server/api/openchannelMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.attributes.js b/server/api/openchannelMessage/openchannelMessage.attributes.js
new file mode 100644
index 0000000..94f59b1
--- /dev/null
+++ b/server/api/openchannelMessage/openchannelMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.controller.js b/server/api/openchannelMessage/openchannelMessage.controller.js
new file mode 100644
index 0000000..b8e6000
--- /dev/null
+++ b/server/api/openchannelMessage/openchannelMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.events.js b/server/api/openchannelMessage/openchannelMessage.events.js
new file mode 100644
index 0000000..920fd65
--- /dev/null
+++ b/server/api/openchannelMessage/openchannelMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.model.js b/server/api/openchannelMessage/openchannelMessage.model.js
new file mode 100644
index 0000000..e45fe80
--- /dev/null
+++ b/server/api/openchannelMessage/openchannelMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.rpc.js b/server/api/openchannelMessage/openchannelMessage.rpc.js
new file mode 100644
index 0000000..56d688c
--- /dev/null
+++ b/server/api/openchannelMessage/openchannelMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.socket.js b/server/api/openchannelMessage/openchannelMessage.socket.js
new file mode 100644
index 0000000..350fd0b
--- /dev/null
+++ b/server/api/openchannelMessage/openchannelMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/index.js b/server/api/openchannelQueue/index.js
new file mode 100644
index 0000000..ab2f422
--- /dev/null
+++ b/server/api/openchannelQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.attributes.js b/server/api/openchannelQueue/openchannelQueue.attributes.js
new file mode 100644
index 0000000..4f3761a
--- /dev/null
+++ b/server/api/openchannelQueue/openchannelQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.controller.js b/server/api/openchannelQueue/openchannelQueue.controller.js
new file mode 100644
index 0000000..2b24048
--- /dev/null
+++ b/server/api/openchannelQueue/openchannelQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.events.js b/server/api/openchannelQueue/openchannelQueue.events.js
new file mode 100644
index 0000000..8228f86
--- /dev/null
+++ b/server/api/openchannelQueue/openchannelQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.model.js b/server/api/openchannelQueue/openchannelQueue.model.js
new file mode 100644
index 0000000..d3adcf3
--- /dev/null
+++ b/server/api/openchannelQueue/openchannelQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.rpc.js b/server/api/openchannelQueue/openchannelQueue.rpc.js
new file mode 100644
index 0000000..b89e73e
--- /dev/null
+++ b/server/api/openchannelQueue/openchannelQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.socket.js b/server/api/openchannelQueue/openchannelQueue.socket.js
new file mode 100644
index 0000000..ad9f9a0
--- /dev/null
+++ b/server/api/openchannelQueue/openchannelQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueueReport/index.js b/server/api/openchannelQueueReport/index.js
new file mode 100644
index 0000000..422d40d
--- /dev/null
+++ b/server/api/openchannelQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueueReport/openchannelQueueReport.attributes.js b/server/api/openchannelQueueReport/openchannelQueueReport.attributes.js
new file mode 100644
index 0000000..3c1af20
--- /dev/null
+++ b/server/api/openchannelQueueReport/openchannelQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueueReport/openchannelQueueReport.controller.js b/server/api/openchannelQueueReport/openchannelQueueReport.controller.js
new file mode 100644
index 0000000..83508b5
--- /dev/null
+++ b/server/api/openchannelQueueReport/openchannelQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueueReport/openchannelQueueReport.model.js b/server/api/openchannelQueueReport/openchannelQueueReport.model.js
new file mode 100644
index 0000000..479338f
--- /dev/null
+++ b/server/api/openchannelQueueReport/openchannelQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelQueueReport/openchannelQueueReport.rpc.js b/server/api/openchannelQueueReport/openchannelQueueReport.rpc.js
new file mode 100644
index 0000000..5e40d8c
--- /dev/null
+++ b/server/api/openchannelQueueReport/openchannelQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelTransferReport/index.js b/server/api/openchannelTransferReport/index.js
new file mode 100644
index 0000000..5f3557a
--- /dev/null
+++ b/server/api/openchannelTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelTransferReport/openchannelTransferReport.attributes.js b/server/api/openchannelTransferReport/openchannelTransferReport.attributes.js
new file mode 100644
index 0000000..151250d
--- /dev/null
+++ b/server/api/openchannelTransferReport/openchannelTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelTransferReport/openchannelTransferReport.controller.js b/server/api/openchannelTransferReport/openchannelTransferReport.controller.js
new file mode 100644
index 0000000..4dfd4ee
--- /dev/null
+++ b/server/api/openchannelTransferReport/openchannelTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelTransferReport/openchannelTransferReport.model.js b/server/api/openchannelTransferReport/openchannelTransferReport.model.js
new file mode 100644
index 0000000..a44fab9
--- /dev/null
+++ b/server/api/openchannelTransferReport/openchannelTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/openchannelTransferReport/openchannelTransferReport.rpc.js b/server/api/openchannelTransferReport/openchannelTransferReport.rpc.js
new file mode 100644
index 0000000..9b79cad
--- /dev/null
+++ b/server/api/openchannelTransferReport/openchannelTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pause/index.js b/server/api/pause/index.js
new file mode 100644
index 0000000..199ce4d
--- /dev/null
+++ b/server/api/pause/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pause/pause.attributes.js b/server/api/pause/pause.attributes.js
new file mode 100644
index 0000000..5862ebf
--- /dev/null
+++ b/server/api/pause/pause.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pause/pause.controller.js b/server/api/pause/pause.controller.js
new file mode 100644
index 0000000..5d69a51
--- /dev/null
+++ b/server/api/pause/pause.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pause/pause.model.js b/server/api/pause/pause.model.js
new file mode 100644
index 0000000..4ff0f32
--- /dev/null
+++ b/server/api/pause/pause.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pause/pause.rpc.js b/server/api/pause/pause.rpc.js
new file mode 100644
index 0000000..27b8014
--- /dev/null
+++ b/server/api/pause/pause.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/index.js b/server/api/plugin/index.js
new file mode 100644
index 0000000..803a2d0
--- /dev/null
+++ b/server/api/plugin/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/plugin.attributes.js b/server/api/plugin/plugin.attributes.js
new file mode 100644
index 0000000..fe1f4fb
--- /dev/null
+++ b/server/api/plugin/plugin.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/plugin.controller.js b/server/api/plugin/plugin.controller.js
new file mode 100644
index 0000000..ce541a0
--- /dev/null
+++ b/server/api/plugin/plugin.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/plugin.events.js b/server/api/plugin/plugin.events.js
new file mode 100644
index 0000000..871fb3e
--- /dev/null
+++ b/server/api/plugin/plugin.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/plugin.model.js b/server/api/plugin/plugin.model.js
new file mode 100644
index 0000000..1dd0741
--- /dev/null
+++ b/server/api/plugin/plugin.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/plugin.rpc.js b/server/api/plugin/plugin.rpc.js
new file mode 100644
index 0000000..60522a2
--- /dev/null
+++ b/server/api/plugin/plugin.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/plugin/plugin.socket.js b/server/api/plugin/plugin.socket.js
new file mode 100644
index 0000000..3b18591
--- /dev/null
+++ b/server/api/plugin/plugin.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pm2/index.js b/server/api/pm2/index.js
new file mode 100644
index 0000000..7c1ab62
--- /dev/null
+++ b/server/api/pm2/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/pm2/pm2.controller.js b/server/api/pm2/pm2.controller.js
new file mode 100644
index 0000000..5662d67
--- /dev/null
+++ b/server/api/pm2/pm2.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/realtime/index.js b/server/api/realtime/index.js
new file mode 100644
index 0000000..05ad090
--- /dev/null
+++ b/server/api/realtime/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/realtime/realtime.controller.js b/server/api/realtime/realtime.controller.js
new file mode 100644
index 0000000..ed6668b
--- /dev/null
+++ b/server/api/realtime/realtime.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/reportAgentPreview/index.js b/server/api/reportAgentPreview/index.js
new file mode 100644
index 0000000..723e800
--- /dev/null
+++ b/server/api/reportAgentPreview/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/reportAgentPreview/reportAgentPreview.attributes.js b/server/api/reportAgentPreview/reportAgentPreview.attributes.js
new file mode 100644
index 0000000..b0c0a30
--- /dev/null
+++ b/server/api/reportAgentPreview/reportAgentPreview.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/reportAgentPreview/reportAgentPreview.model.js b/server/api/reportAgentPreview/reportAgentPreview.model.js
new file mode 100644
index 0000000..f4af63b
--- /dev/null
+++ b/server/api/reportAgentPreview/reportAgentPreview.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/reportAgentPreview/reportAgentPreview.rpc.js b/server/api/reportAgentPreview/reportAgentPreview.rpc.js
new file mode 100644
index 0000000..c1b7b8d
--- /dev/null
+++ b/server/api/reportAgentPreview/reportAgentPreview.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/rpc/index.js b/server/api/rpc/index.js
new file mode 100644
index 0000000..c2dbafc
--- /dev/null
+++ b/server/api/rpc/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/rpc/rpc.controller.js b/server/api/rpc/rpc.controller.js
new file mode 100644
index 0000000..1babb91
--- /dev/null
+++ b/server/api/rpc/rpc.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/schedule/index.js b/server/api/schedule/index.js
new file mode 100644
index 0000000..3ccde6b
--- /dev/null
+++ b/server/api/schedule/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/schedule/schedule.attributes.js b/server/api/schedule/schedule.attributes.js
new file mode 100644
index 0000000..a8fc7cd
--- /dev/null
+++ b/server/api/schedule/schedule.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/schedule/schedule.controller.js b/server/api/schedule/schedule.controller.js
new file mode 100644
index 0000000..e694aa8
--- /dev/null
+++ b/server/api/schedule/schedule.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/schedule/schedule.model.js b/server/api/schedule/schedule.model.js
new file mode 100644
index 0000000..df4e043
--- /dev/null
+++ b/server/api/schedule/schedule.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/schedule/schedule.rpc.js b/server/api/schedule/schedule.rpc.js
new file mode 100644
index 0000000..22e757f
--- /dev/null
+++ b/server/api/schedule/schedule.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/screenRecording/index.js b/server/api/screenRecording/index.js
new file mode 100644
index 0000000..5cafd42
--- /dev/null
+++ b/server/api/screenRecording/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/screenRecording/screenRecording.attributes.js b/server/api/screenRecording/screenRecording.attributes.js
new file mode 100644
index 0000000..af16ad5
--- /dev/null
+++ b/server/api/screenRecording/screenRecording.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/screenRecording/screenRecording.controller.js b/server/api/screenRecording/screenRecording.controller.js
new file mode 100644
index 0000000..9a8b8ec
--- /dev/null
+++ b/server/api/screenRecording/screenRecording.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/screenRecording/screenRecording.model.js b/server/api/screenRecording/screenRecording.model.js
new file mode 100644
index 0000000..1dd554f
--- /dev/null
+++ b/server/api/screenRecording/screenRecording.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/screenRecording/screenRecording.rpc.js b/server/api/screenRecording/screenRecording.rpc.js
new file mode 100644
index 0000000..f713593
--- /dev/null
+++ b/server/api/screenRecording/screenRecording.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/setting/index.js b/server/api/setting/index.js
new file mode 100644
index 0000000..e72a7a3
--- /dev/null
+++ b/server/api/setting/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/setting/setting.attributes.js b/server/api/setting/setting.attributes.js
new file mode 100644
index 0000000..b77f438
--- /dev/null
+++ b/server/api/setting/setting.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/setting/setting.controller.js b/server/api/setting/setting.controller.js
new file mode 100644
index 0000000..93cecb5
--- /dev/null
+++ b/server/api/setting/setting.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/setting/setting.model.js b/server/api/setting/setting.model.js
new file mode 100644
index 0000000..8a8aa3f
--- /dev/null
+++ b/server/api/setting/setting.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/setting/setting.rpc.js b/server/api/setting/setting.rpc.js
new file mode 100644
index 0000000..de8df14
--- /dev/null
+++ b/server/api/setting/setting.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/index.js b/server/api/smsAccount/index.js
new file mode 100644
index 0000000..7d83461
--- /dev/null
+++ b/server/api/smsAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.attributes.js b/server/api/smsAccount/smsAccount.attributes.js
new file mode 100644
index 0000000..15e1665
--- /dev/null
+++ b/server/api/smsAccount/smsAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.controller.js b/server/api/smsAccount/smsAccount.controller.js
new file mode 100644
index 0000000..6f0d334
--- /dev/null
+++ b/server/api/smsAccount/smsAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.events.js b/server/api/smsAccount/smsAccount.events.js
new file mode 100644
index 0000000..3f49cf3
--- /dev/null
+++ b/server/api/smsAccount/smsAccount.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.model.js b/server/api/smsAccount/smsAccount.model.js
new file mode 100644
index 0000000..bb6cf11
--- /dev/null
+++ b/server/api/smsAccount/smsAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.rpc.js b/server/api/smsAccount/smsAccount.rpc.js
new file mode 100644
index 0000000..7c97002
--- /dev/null
+++ b/server/api/smsAccount/smsAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.socket.js b/server/api/smsAccount/smsAccount.socket.js
new file mode 100644
index 0000000..9c36c52
--- /dev/null
+++ b/server/api/smsAccount/smsAccount.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsApplication/index.js b/server/api/smsApplication/index.js
new file mode 100644
index 0000000..d6bf747
--- /dev/null
+++ b/server/api/smsApplication/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.attributes.js b/server/api/smsApplication/smsApplication.attributes.js
new file mode 100644
index 0000000..f5d908a
--- /dev/null
+++ b/server/api/smsApplication/smsApplication.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.controller.js b/server/api/smsApplication/smsApplication.controller.js
new file mode 100644
index 0000000..4c5b6d0
--- /dev/null
+++ b/server/api/smsApplication/smsApplication.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.model.js b/server/api/smsApplication/smsApplication.model.js
new file mode 100644
index 0000000..1f63b72
--- /dev/null
+++ b/server/api/smsApplication/smsApplication.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.rpc.js b/server/api/smsApplication/smsApplication.rpc.js
new file mode 100644
index 0000000..27b269d
--- /dev/null
+++ b/server/api/smsApplication/smsApplication.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/index.js b/server/api/smsInteraction/index.js
new file mode 100644
index 0000000..a25bfa0
--- /dev/null
+++ b/server/api/smsInteraction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.attributes.js b/server/api/smsInteraction/smsInteraction.attributes.js
new file mode 100644
index 0000000..d5e21fe
--- /dev/null
+++ b/server/api/smsInteraction/smsInteraction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.controller.js b/server/api/smsInteraction/smsInteraction.controller.js
new file mode 100644
index 0000000..225eeb3
--- /dev/null
+++ b/server/api/smsInteraction/smsInteraction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.events.js b/server/api/smsInteraction/smsInteraction.events.js
new file mode 100644
index 0000000..58bf224
--- /dev/null
+++ b/server/api/smsInteraction/smsInteraction.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.model.js b/server/api/smsInteraction/smsInteraction.model.js
new file mode 100644
index 0000000..feb9892
--- /dev/null
+++ b/server/api/smsInteraction/smsInteraction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.rpc.js b/server/api/smsInteraction/smsInteraction.rpc.js
new file mode 100644
index 0000000..3649dff
--- /dev/null
+++ b/server/api/smsInteraction/smsInteraction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.socket.js b/server/api/smsInteraction/smsInteraction.socket.js
new file mode 100644
index 0000000..6495634
--- /dev/null
+++ b/server/api/smsInteraction/smsInteraction.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/index.js b/server/api/smsMessage/index.js
new file mode 100644
index 0000000..f54c52f
--- /dev/null
+++ b/server/api/smsMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.attributes.js b/server/api/smsMessage/smsMessage.attributes.js
new file mode 100644
index 0000000..93cc93b
--- /dev/null
+++ b/server/api/smsMessage/smsMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.controller.js b/server/api/smsMessage/smsMessage.controller.js
new file mode 100644
index 0000000..8c6984d
--- /dev/null
+++ b/server/api/smsMessage/smsMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.events.js b/server/api/smsMessage/smsMessage.events.js
new file mode 100644
index 0000000..30da7e4
--- /dev/null
+++ b/server/api/smsMessage/smsMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.model.js b/server/api/smsMessage/smsMessage.model.js
new file mode 100644
index 0000000..4e1d4ad
--- /dev/null
+++ b/server/api/smsMessage/smsMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.rpc.js b/server/api/smsMessage/smsMessage.rpc.js
new file mode 100644
index 0000000..42a6b9e
--- /dev/null
+++ b/server/api/smsMessage/smsMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.socket.js b/server/api/smsMessage/smsMessage.socket.js
new file mode 100644
index 0000000..6e74bdf
--- /dev/null
+++ b/server/api/smsMessage/smsMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/index.js b/server/api/smsQueue/index.js
new file mode 100644
index 0000000..6208a1b
--- /dev/null
+++ b/server/api/smsQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.attributes.js b/server/api/smsQueue/smsQueue.attributes.js
new file mode 100644
index 0000000..fa65090
--- /dev/null
+++ b/server/api/smsQueue/smsQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.controller.js b/server/api/smsQueue/smsQueue.controller.js
new file mode 100644
index 0000000..99726d9
--- /dev/null
+++ b/server/api/smsQueue/smsQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.events.js b/server/api/smsQueue/smsQueue.events.js
new file mode 100644
index 0000000..8d21196
--- /dev/null
+++ b/server/api/smsQueue/smsQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.model.js b/server/api/smsQueue/smsQueue.model.js
new file mode 100644
index 0000000..b1bee86
--- /dev/null
+++ b/server/api/smsQueue/smsQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.rpc.js b/server/api/smsQueue/smsQueue.rpc.js
new file mode 100644
index 0000000..f70346f
--- /dev/null
+++ b/server/api/smsQueue/smsQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.socket.js b/server/api/smsQueue/smsQueue.socket.js
new file mode 100644
index 0000000..00324ec
--- /dev/null
+++ b/server/api/smsQueue/smsQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueueReport/index.js b/server/api/smsQueueReport/index.js
new file mode 100644
index 0000000..13b2c70
--- /dev/null
+++ b/server/api/smsQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueueReport/smsQueueReport.attributes.js b/server/api/smsQueueReport/smsQueueReport.attributes.js
new file mode 100644
index 0000000..1a54185
--- /dev/null
+++ b/server/api/smsQueueReport/smsQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueueReport/smsQueueReport.controller.js b/server/api/smsQueueReport/smsQueueReport.controller.js
new file mode 100644
index 0000000..cf09775
--- /dev/null
+++ b/server/api/smsQueueReport/smsQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueueReport/smsQueueReport.model.js b/server/api/smsQueueReport/smsQueueReport.model.js
new file mode 100644
index 0000000..dbc4eb3
--- /dev/null
+++ b/server/api/smsQueueReport/smsQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsQueueReport/smsQueueReport.rpc.js b/server/api/smsQueueReport/smsQueueReport.rpc.js
new file mode 100644
index 0000000..a820d74
--- /dev/null
+++ b/server/api/smsQueueReport/smsQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsTransferReport/index.js b/server/api/smsTransferReport/index.js
new file mode 100644
index 0000000..60ee3b4
--- /dev/null
+++ b/server/api/smsTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsTransferReport/smsTransferReport.attributes.js b/server/api/smsTransferReport/smsTransferReport.attributes.js
new file mode 100644
index 0000000..4cf5721
--- /dev/null
+++ b/server/api/smsTransferReport/smsTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsTransferReport/smsTransferReport.controller.js b/server/api/smsTransferReport/smsTransferReport.controller.js
new file mode 100644
index 0000000..11e83f0
--- /dev/null
+++ b/server/api/smsTransferReport/smsTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsTransferReport/smsTransferReport.model.js b/server/api/smsTransferReport/smsTransferReport.model.js
new file mode 100644
index 0000000..42bb5c3
--- /dev/null
+++ b/server/api/smsTransferReport/smsTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/smsTransferReport/smsTransferReport.rpc.js b/server/api/smsTransferReport/smsTransferReport.rpc.js
new file mode 100644
index 0000000..55e815c
--- /dev/null
+++ b/server/api/smsTransferReport/smsTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/sound/index.js b/server/api/sound/index.js
new file mode 100644
index 0000000..fd8d425
--- /dev/null
+++ b/server/api/sound/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/sound/sound.attributes.js b/server/api/sound/sound.attributes.js
new file mode 100644
index 0000000..818dd23
--- /dev/null
+++ b/server/api/sound/sound.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/sound/sound.controller.js b/server/api/sound/sound.controller.js
new file mode 100644
index 0000000..fc7051b
--- /dev/null
+++ b/server/api/sound/sound.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/sound/sound.model.js b/server/api/sound/sound.model.js
new file mode 100644
index 0000000..8c01b43
--- /dev/null
+++ b/server/api/sound/sound.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/sound/sound.rpc.js b/server/api/sound/sound.rpc.js
new file mode 100644
index 0000000..f84dd98
--- /dev/null
+++ b/server/api/sound/sound.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareMessage/index.js b/server/api/squareMessage/index.js
new file mode 100644
index 0000000..b9ce4f9
--- /dev/null
+++ b/server/api/squareMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareMessage/squareMessage.attributes.js b/server/api/squareMessage/squareMessage.attributes.js
new file mode 100644
index 0000000..dfdae37
--- /dev/null
+++ b/server/api/squareMessage/squareMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareMessage/squareMessage.controller.js b/server/api/squareMessage/squareMessage.controller.js
new file mode 100644
index 0000000..31f2a2d
--- /dev/null
+++ b/server/api/squareMessage/squareMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareMessage/squareMessage.model.js b/server/api/squareMessage/squareMessage.model.js
new file mode 100644
index 0000000..b4ae52b
--- /dev/null
+++ b/server/api/squareMessage/squareMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareMessage/squareMessage.rpc.js b/server/api/squareMessage/squareMessage.rpc.js
new file mode 100644
index 0000000..d979fc0
--- /dev/null
+++ b/server/api/squareMessage/squareMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareOdbc/index.js b/server/api/squareOdbc/index.js
new file mode 100644
index 0000000..f64c703
--- /dev/null
+++ b/server/api/squareOdbc/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.attributes.js b/server/api/squareOdbc/squareOdbc.attributes.js
new file mode 100644
index 0000000..e875c90
--- /dev/null
+++ b/server/api/squareOdbc/squareOdbc.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.controller.js b/server/api/squareOdbc/squareOdbc.controller.js
new file mode 100644
index 0000000..f5a436a
--- /dev/null
+++ b/server/api/squareOdbc/squareOdbc.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.model.js b/server/api/squareOdbc/squareOdbc.model.js
new file mode 100644
index 0000000..a6a783c
--- /dev/null
+++ b/server/api/squareOdbc/squareOdbc.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.rpc.js b/server/api/squareOdbc/squareOdbc.rpc.js
new file mode 100644
index 0000000..29f2262
--- /dev/null
+++ b/server/api/squareOdbc/squareOdbc.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/index.js b/server/api/squareProject/index.js
new file mode 100644
index 0000000..4a7ce00
--- /dev/null
+++ b/server/api/squareProject/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.attributes.js b/server/api/squareProject/squareProject.attributes.js
new file mode 100644
index 0000000..14901a7
--- /dev/null
+++ b/server/api/squareProject/squareProject.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.controller.js b/server/api/squareProject/squareProject.controller.js
new file mode 100644
index 0000000..1d9fc4c
--- /dev/null
+++ b/server/api/squareProject/squareProject.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.events.js b/server/api/squareProject/squareProject.events.js
new file mode 100644
index 0000000..2dde876
--- /dev/null
+++ b/server/api/squareProject/squareProject.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.model.js b/server/api/squareProject/squareProject.model.js
new file mode 100644
index 0000000..505a2cd
--- /dev/null
+++ b/server/api/squareProject/squareProject.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.rpc.js b/server/api/squareProject/squareProject.rpc.js
new file mode 100644
index 0000000..00e4596
--- /dev/null
+++ b/server/api/squareProject/squareProject.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.socket.js b/server/api/squareProject/squareProject.socket.js
new file mode 100644
index 0000000..7f56e09
--- /dev/null
+++ b/server/api/squareProject/squareProject.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareRecording/index.js b/server/api/squareRecording/index.js
new file mode 100644
index 0000000..9d63737
--- /dev/null
+++ b/server/api/squareRecording/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.attributes.js b/server/api/squareRecording/squareRecording.attributes.js
new file mode 100644
index 0000000..5975dcd
--- /dev/null
+++ b/server/api/squareRecording/squareRecording.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.controller.js b/server/api/squareRecording/squareRecording.controller.js
new file mode 100644
index 0000000..3543f53
--- /dev/null
+++ b/server/api/squareRecording/squareRecording.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.model.js b/server/api/squareRecording/squareRecording.model.js
new file mode 100644
index 0000000..08dfc47
--- /dev/null
+++ b/server/api/squareRecording/squareRecording.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.rpc.js b/server/api/squareRecording/squareRecording.rpc.js
new file mode 100644
index 0000000..260ec5e
--- /dev/null
+++ b/server/api/squareRecording/squareRecording.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReport/index.js b/server/api/squareReport/index.js
new file mode 100644
index 0000000..6a98abe
--- /dev/null
+++ b/server/api/squareReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.attributes.js b/server/api/squareReport/squareReport.attributes.js
new file mode 100644
index 0000000..9012e1e
--- /dev/null
+++ b/server/api/squareReport/squareReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.controller.js b/server/api/squareReport/squareReport.controller.js
new file mode 100644
index 0000000..a842d18
--- /dev/null
+++ b/server/api/squareReport/squareReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.model.js b/server/api/squareReport/squareReport.model.js
new file mode 100644
index 0000000..5110438
--- /dev/null
+++ b/server/api/squareReport/squareReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.rpc.js b/server/api/squareReport/squareReport.rpc.js
new file mode 100644
index 0000000..afde7af
--- /dev/null
+++ b/server/api/squareReport/squareReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReportDetail/index.js b/server/api/squareReportDetail/index.js
new file mode 100644
index 0000000..a9bb203
--- /dev/null
+++ b/server/api/squareReportDetail/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.attributes.js b/server/api/squareReportDetail/squareReportDetail.attributes.js
new file mode 100644
index 0000000..1a08011
--- /dev/null
+++ b/server/api/squareReportDetail/squareReportDetail.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.controller.js b/server/api/squareReportDetail/squareReportDetail.controller.js
new file mode 100644
index 0000000..6992346
--- /dev/null
+++ b/server/api/squareReportDetail/squareReportDetail.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.model.js b/server/api/squareReportDetail/squareReportDetail.model.js
new file mode 100644
index 0000000..94e1071
--- /dev/null
+++ b/server/api/squareReportDetail/squareReportDetail.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.rpc.js b/server/api/squareReportDetail/squareReportDetail.rpc.js
new file mode 100644
index 0000000..9b09152
--- /dev/null
+++ b/server/api/squareReportDetail/squareReportDetail.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/system/index.js b/server/api/system/index.js
new file mode 100644
index 0000000..505d342
--- /dev/null
+++ b/server/api/system/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/system/system.controller.js b/server/api/system/system.controller.js
new file mode 100644
index 0000000..f140a15
--- /dev/null
+++ b/server/api/system/system.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/tag/index.js b/server/api/tag/index.js
new file mode 100644
index 0000000..aa8a9e0
--- /dev/null
+++ b/server/api/tag/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/tag/tag.attributes.js b/server/api/tag/tag.attributes.js
new file mode 100644
index 0000000..3283501
--- /dev/null
+++ b/server/api/tag/tag.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/tag/tag.controller.js b/server/api/tag/tag.controller.js
new file mode 100644
index 0000000..4996007
--- /dev/null
+++ b/server/api/tag/tag.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/tag/tag.model.js b/server/api/tag/tag.model.js
new file mode 100644
index 0000000..0e431f4
--- /dev/null
+++ b/server/api/tag/tag.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/tag/tag.rpc.js b/server/api/tag/tag.rpc.js
new file mode 100644
index 0000000..0203402
--- /dev/null
+++ b/server/api/tag/tag.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/index.js b/server/api/team/index.js
new file mode 100644
index 0000000..67bd2a0
--- /dev/null
+++ b/server/api/team/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/team.attributes.js b/server/api/team/team.attributes.js
new file mode 100644
index 0000000..b8fa0d2
--- /dev/null
+++ b/server/api/team/team.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/team.controller.js b/server/api/team/team.controller.js
new file mode 100644
index 0000000..cc7d5e5
--- /dev/null
+++ b/server/api/team/team.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/team.events.js b/server/api/team/team.events.js
new file mode 100644
index 0000000..1060eff
--- /dev/null
+++ b/server/api/team/team.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/team.model.js b/server/api/team/team.model.js
new file mode 100644
index 0000000..6d5d104
--- /dev/null
+++ b/server/api/team/team.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/team.rpc.js b/server/api/team/team.rpc.js
new file mode 100644
index 0000000..e54ca3a
--- /dev/null
+++ b/server/api/team/team.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/team/team.socket.js b/server/api/team/team.socket.js
new file mode 100644
index 0000000..837f455
--- /dev/null
+++ b/server/api/team/team.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/teamVoicePrefix/teamVoicePrefix.attributes.js b/server/api/teamVoicePrefix/teamVoicePrefix.attributes.js
new file mode 100644
index 0000000..23ebf6a
--- /dev/null
+++ b/server/api/teamVoicePrefix/teamVoicePrefix.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/teamVoicePrefix/teamVoicePrefix.model.js b/server/api/teamVoicePrefix/teamVoicePrefix.model.js
new file mode 100644
index 0000000..c663263
--- /dev/null
+++ b/server/api/teamVoicePrefix/teamVoicePrefix.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/teamVoiceQueue/index.js b/server/api/teamVoiceQueue/index.js
new file mode 100644
index 0000000..a6b752c
--- /dev/null
+++ b/server/api/teamVoiceQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/teamVoiceQueue/teamVoiceQueue.attributes.js b/server/api/teamVoiceQueue/teamVoiceQueue.attributes.js
new file mode 100644
index 0000000..c9b7819
--- /dev/null
+++ b/server/api/teamVoiceQueue/teamVoiceQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x3697=['INTEGER','sequelize','exports'];(function(_0x2921de,_0x5896b3){var _0x3b8d59=function(_0x435c59){while(--_0x435c59){_0x2921de['push'](_0x2921de['shift']());}};_0x3b8d59(++_0x5896b3);}(_0x3697,0x1ea));var _0x7369=function(_0x37e0a0,_0x462179){_0x37e0a0=_0x37e0a0-0x0;var _0x21badd=_0x3697[_0x37e0a0];return _0x21badd;};'use strict';var Sequelize=require(_0x7369('0x0'));module[_0x7369('0x1')]={'penalty':{'type':Sequelize[_0x7369('0x2')],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/teamVoiceQueue/teamVoiceQueue.model.js b/server/api/teamVoiceQueue/teamVoiceQueue.model.js
new file mode 100644
index 0000000..635e863
--- /dev/null
+++ b/server/api/teamVoiceQueue/teamVoiceQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/teamVoiceQueue/teamVoiceQueue.rpc.js b/server/api/teamVoiceQueue/teamVoiceQueue.rpc.js
new file mode 100644
index 0000000..8634c39
--- /dev/null
+++ b/server/api/teamVoiceQueue/teamVoiceQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/template/index.js b/server/api/template/index.js
new file mode 100644
index 0000000..ddf1707
--- /dev/null
+++ b/server/api/template/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/template/template.attributes.js b/server/api/template/template.attributes.js
new file mode 100644
index 0000000..d346158
--- /dev/null
+++ b/server/api/template/template.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/template/template.controller.js b/server/api/template/template.controller.js
new file mode 100644
index 0000000..841cace
--- /dev/null
+++ b/server/api/template/template.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/template/template.model.js b/server/api/template/template.model.js
new file mode 100644
index 0000000..2abc473
--- /dev/null
+++ b/server/api/template/template.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/template/template.rpc.js b/server/api/template/template.rpc.js
new file mode 100644
index 0000000..58868e2
--- /dev/null
+++ b/server/api/template/template.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trigger/index.js b/server/api/trigger/index.js
new file mode 100644
index 0000000..8c2170e
--- /dev/null
+++ b/server/api/trigger/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trigger/trigger.attributes.js b/server/api/trigger/trigger.attributes.js
new file mode 100644
index 0000000..ebea0b9
--- /dev/null
+++ b/server/api/trigger/trigger.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trigger/trigger.controller.js b/server/api/trigger/trigger.controller.js
new file mode 100644
index 0000000..2477d69
--- /dev/null
+++ b/server/api/trigger/trigger.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trigger/trigger.model.js b/server/api/trigger/trigger.model.js
new file mode 100644
index 0000000..51c4e69
--- /dev/null
+++ b/server/api/trigger/trigger.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trigger/trigger.rpc.js b/server/api/trigger/trigger.rpc.js
new file mode 100644
index 0000000..fbcda6a
--- /dev/null
+++ b/server/api/trigger/trigger.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trunk/index.js b/server/api/trunk/index.js
new file mode 100644
index 0000000..ec940dc
--- /dev/null
+++ b/server/api/trunk/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trunk/trunk.attributes.js b/server/api/trunk/trunk.attributes.js
new file mode 100644
index 0000000..49353ca
--- /dev/null
+++ b/server/api/trunk/trunk.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trunk/trunk.controller.js b/server/api/trunk/trunk.controller.js
new file mode 100644
index 0000000..11bfe24
--- /dev/null
+++ b/server/api/trunk/trunk.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trunk/trunk.model.js b/server/api/trunk/trunk.model.js
new file mode 100644
index 0000000..5999c9c
--- /dev/null
+++ b/server/api/trunk/trunk.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/trunk/trunk.rpc.js b/server/api/trunk/trunk.rpc.js
new file mode 100644
index 0000000..f7e9d85
--- /dev/null
+++ b/server/api/trunk/trunk.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user-setting/index.js b/server/api/user-setting/index.js
new file mode 100644
index 0000000..3e0cba0
--- /dev/null
+++ b/server/api/user-setting/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user-setting/user-setting.attributes.js b/server/api/user-setting/user-setting.attributes.js
new file mode 100644
index 0000000..d9bf19f
--- /dev/null
+++ b/server/api/user-setting/user-setting.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user-setting/user-setting.controller.js b/server/api/user-setting/user-setting.controller.js
new file mode 100644
index 0000000..da09c70
--- /dev/null
+++ b/server/api/user-setting/user-setting.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user-setting/user-setting.events.js b/server/api/user-setting/user-setting.events.js
new file mode 100644
index 0000000..0560d86
--- /dev/null
+++ b/server/api/user-setting/user-setting.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user-setting/user-setting.model.js b/server/api/user-setting/user-setting.model.js
new file mode 100644
index 0000000..a7e147c
--- /dev/null
+++ b/server/api/user-setting/user-setting.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user-setting/user-setting.socket.js b/server/api/user-setting/user-setting.socket.js
new file mode 100644
index 0000000..d526443
--- /dev/null
+++ b/server/api/user-setting/user-setting.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/index.js b/server/api/user/index.js
new file mode 100644
index 0000000..7bf0a44
--- /dev/null
+++ b/server/api/user/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/user.attributes.js b/server/api/user/user.attributes.js
new file mode 100644
index 0000000..6b108c1
--- /dev/null
+++ b/server/api/user/user.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/user.controller.js b/server/api/user/user.controller.js
new file mode 100644
index 0000000..d3b4956
--- /dev/null
+++ b/server/api/user/user.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/user.events.js b/server/api/user/user.events.js
new file mode 100644
index 0000000..e474d62
--- /dev/null
+++ b/server/api/user/user.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/user.model.js b/server/api/user/user.model.js
new file mode 100644
index 0000000..6599826
--- /dev/null
+++ b/server/api/user/user.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/user.rpc.js b/server/api/user/user.rpc.js
new file mode 100644
index 0000000..7222682
--- /dev/null
+++ b/server/api/user/user.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/user/user.socket.js b/server/api/user/user.socket.js
new file mode 100644
index 0000000..eca77f2
--- /dev/null
+++ b/server/api/user/user.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userChatQueue/index.js b/server/api/userChatQueue/index.js
new file mode 100644
index 0000000..deb4ff7
--- /dev/null
+++ b/server/api/userChatQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userChatQueue/userChatQueue.attributes.js b/server/api/userChatQueue/userChatQueue.attributes.js
new file mode 100644
index 0000000..e2aaf0d
--- /dev/null
+++ b/server/api/userChatQueue/userChatQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xc7e2=['sequelize','exports'];(function(_0x330d71,_0x23b7f2){var _0x463119=function(_0x5c0510){while(--_0x5c0510){_0x330d71['push'](_0x330d71['shift']());}};_0x463119(++_0x23b7f2);}(_0xc7e2,0x1d4));var _0x2c7e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc7e2[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x2c7e('0x0'));module[_0x2c7e('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/userChatQueue/userChatQueue.model.js b/server/api/userChatQueue/userChatQueue.model.js
new file mode 100644
index 0000000..d6afbed
--- /dev/null
+++ b/server/api/userChatQueue/userChatQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userChatQueue/userChatQueue.rpc.js b/server/api/userChatQueue/userChatQueue.rpc.js
new file mode 100644
index 0000000..ed3b959
--- /dev/null
+++ b/server/api/userChatQueue/userChatQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userFaxQueue/index.js b/server/api/userFaxQueue/index.js
new file mode 100644
index 0000000..041c545
--- /dev/null
+++ b/server/api/userFaxQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userFaxQueue/userFaxQueue.attributes.js b/server/api/userFaxQueue/userFaxQueue.attributes.js
new file mode 100644
index 0000000..e2aab7f
--- /dev/null
+++ b/server/api/userFaxQueue/userFaxQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userFaxQueue/userFaxQueue.model.js b/server/api/userFaxQueue/userFaxQueue.model.js
new file mode 100644
index 0000000..1b9f607
--- /dev/null
+++ b/server/api/userFaxQueue/userFaxQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userFaxQueue/userFaxQueue.rpc.js b/server/api/userFaxQueue/userFaxQueue.rpc.js
new file mode 100644
index 0000000..dd0902a
--- /dev/null
+++ b/server/api/userFaxQueue/userFaxQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userMailQueue/index.js b/server/api/userMailQueue/index.js
new file mode 100644
index 0000000..c06c4e6
--- /dev/null
+++ b/server/api/userMailQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userMailQueue/userMailQueue.attributes.js b/server/api/userMailQueue/userMailQueue.attributes.js
new file mode 100644
index 0000000..e95e28d
--- /dev/null
+++ b/server/api/userMailQueue/userMailQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x49be=['exports','sequelize'];(function(_0xf7d967,_0x8bf1cb){var _0x2a4f92=function(_0x59b128){while(--_0x59b128){_0xf7d967['push'](_0xf7d967['shift']());}};_0x2a4f92(++_0x8bf1cb);}(_0x49be,0x12b));var _0xe49b=function(_0x47878f,_0x48d3bf){_0x47878f=_0x47878f-0x0;var _0x4b05b8=_0x49be[_0x47878f];return _0x4b05b8;};'use strict';var Sequelize=require(_0xe49b('0x0'));module[_0xe49b('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/userMailQueue/userMailQueue.model.js b/server/api/userMailQueue/userMailQueue.model.js
new file mode 100644
index 0000000..06bbfe7
--- /dev/null
+++ b/server/api/userMailQueue/userMailQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userMailQueue/userMailQueue.rpc.js b/server/api/userMailQueue/userMailQueue.rpc.js
new file mode 100644
index 0000000..7894b32
--- /dev/null
+++ b/server/api/userMailQueue/userMailQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/index.js b/server/api/userNotification/index.js
new file mode 100644
index 0000000..c187fde
--- /dev/null
+++ b/server/api/userNotification/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/userNotification.attributes.js b/server/api/userNotification/userNotification.attributes.js
new file mode 100644
index 0000000..63a5a95
--- /dev/null
+++ b/server/api/userNotification/userNotification.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/userNotification.controller.js b/server/api/userNotification/userNotification.controller.js
new file mode 100644
index 0000000..cd6c191
--- /dev/null
+++ b/server/api/userNotification/userNotification.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/userNotification.events.js b/server/api/userNotification/userNotification.events.js
new file mode 100644
index 0000000..02aceea
--- /dev/null
+++ b/server/api/userNotification/userNotification.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/userNotification.model.js b/server/api/userNotification/userNotification.model.js
new file mode 100644
index 0000000..a07b281
--- /dev/null
+++ b/server/api/userNotification/userNotification.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/userNotification.rpc.js b/server/api/userNotification/userNotification.rpc.js
new file mode 100644
index 0000000..4fd5f94
--- /dev/null
+++ b/server/api/userNotification/userNotification.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userNotification/userNotification.socket.js b/server/api/userNotification/userNotification.socket.js
new file mode 100644
index 0000000..ad27b6c
--- /dev/null
+++ b/server/api/userNotification/userNotification.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/index.js b/server/api/userOpenchannelQueue/index.js
new file mode 100644
index 0000000..c6cf2a7
--- /dev/null
+++ b/server/api/userOpenchannelQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js b/server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js
new file mode 100644
index 0000000..081b522
--- /dev/null
+++ b/server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xcc7a=['sequelize'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0xcc7a,0x1e0));var _0xacc7=function(_0x2d982d,_0x121028){_0x2d982d=_0x2d982d-0x0;var _0x4f36b0=_0xcc7a[_0x2d982d];return _0x4f36b0;};'use strict';var Sequelize=require(_0xacc7('0x0'));module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/userOpenchannelQueue.model.js b/server/api/userOpenchannelQueue/userOpenchannelQueue.model.js
new file mode 100644
index 0000000..e5575ac
--- /dev/null
+++ b/server/api/userOpenchannelQueue/userOpenchannelQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js b/server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js
new file mode 100644
index 0000000..e822b38
--- /dev/null
+++ b/server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/index.js b/server/api/userProfile/index.js
new file mode 100644
index 0000000..f653d2f
--- /dev/null
+++ b/server/api/userProfile/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/userProfile.attributes.js b/server/api/userProfile/userProfile.attributes.js
new file mode 100644
index 0000000..dc038f9
--- /dev/null
+++ b/server/api/userProfile/userProfile.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/userProfile.controller.js b/server/api/userProfile/userProfile.controller.js
new file mode 100644
index 0000000..d4a547d
--- /dev/null
+++ b/server/api/userProfile/userProfile.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/userProfile.events.js b/server/api/userProfile/userProfile.events.js
new file mode 100644
index 0000000..995efbe
--- /dev/null
+++ b/server/api/userProfile/userProfile.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/userProfile.model.js b/server/api/userProfile/userProfile.model.js
new file mode 100644
index 0000000..50621e0
--- /dev/null
+++ b/server/api/userProfile/userProfile.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/userProfile.rpc.js b/server/api/userProfile/userProfile.rpc.js
new file mode 100644
index 0000000..758da0a
--- /dev/null
+++ b/server/api/userProfile/userProfile.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfile/userProfile.socket.js b/server/api/userProfile/userProfile.socket.js
new file mode 100644
index 0000000..3ce064e
--- /dev/null
+++ b/server/api/userProfile/userProfile.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileResource/index.js b/server/api/userProfileResource/index.js
new file mode 100644
index 0000000..3d3174c
--- /dev/null
+++ b/server/api/userProfileResource/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileResource/userProfileResource.attributes.js b/server/api/userProfileResource/userProfileResource.attributes.js
new file mode 100644
index 0000000..0078c61
--- /dev/null
+++ b/server/api/userProfileResource/userProfileResource.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileResource/userProfileResource.controller.js b/server/api/userProfileResource/userProfileResource.controller.js
new file mode 100644
index 0000000..469eba9
--- /dev/null
+++ b/server/api/userProfileResource/userProfileResource.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileResource/userProfileResource.model.js b/server/api/userProfileResource/userProfileResource.model.js
new file mode 100644
index 0000000..6792e68
--- /dev/null
+++ b/server/api/userProfileResource/userProfileResource.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileResource/userProfileResource.rpc.js b/server/api/userProfileResource/userProfileResource.rpc.js
new file mode 100644
index 0000000..b545e34
--- /dev/null
+++ b/server/api/userProfileResource/userProfileResource.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileSection/index.js b/server/api/userProfileSection/index.js
new file mode 100644
index 0000000..07c6df3
--- /dev/null
+++ b/server/api/userProfileSection/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileSection/userProfileSection.attributes.js b/server/api/userProfileSection/userProfileSection.attributes.js
new file mode 100644
index 0000000..64f87c9
--- /dev/null
+++ b/server/api/userProfileSection/userProfileSection.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileSection/userProfileSection.controller.js b/server/api/userProfileSection/userProfileSection.controller.js
new file mode 100644
index 0000000..e11b25d
--- /dev/null
+++ b/server/api/userProfileSection/userProfileSection.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileSection/userProfileSection.model.js b/server/api/userProfileSection/userProfileSection.model.js
new file mode 100644
index 0000000..43ff600
--- /dev/null
+++ b/server/api/userProfileSection/userProfileSection.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userProfileSection/userProfileSection.rpc.js b/server/api/userProfileSection/userProfileSection.rpc.js
new file mode 100644
index 0000000..a7b21e7
--- /dev/null
+++ b/server/api/userProfileSection/userProfileSection.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userSmsQueue/index.js b/server/api/userSmsQueue/index.js
new file mode 100644
index 0000000..ff15cbb
--- /dev/null
+++ b/server/api/userSmsQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userSmsQueue/userSmsQueue.attributes.js b/server/api/userSmsQueue/userSmsQueue.attributes.js
new file mode 100644
index 0000000..734cd79
--- /dev/null
+++ b/server/api/userSmsQueue/userSmsQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xc7fb=['exports','INTEGER','sequelize'];(function(_0xb632a3,_0x526b16){var _0x139ec4=function(_0x141d0d){while(--_0x141d0d){_0xb632a3['push'](_0xb632a3['shift']());}};_0x139ec4(++_0x526b16);}(_0xc7fb,0x68));var _0xbc7f=function(_0x177fb3,_0x4b2f47){_0x177fb3=_0x177fb3-0x0;var _0x366c11=_0xc7fb[_0x177fb3];return _0x366c11;};'use strict';var Sequelize=require(_0xbc7f('0x0'));module[_0xbc7f('0x1')]={'penalty':{'type':Sequelize[_0xbc7f('0x2')],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/userSmsQueue/userSmsQueue.model.js b/server/api/userSmsQueue/userSmsQueue.model.js
new file mode 100644
index 0000000..b2aa38e
--- /dev/null
+++ b/server/api/userSmsQueue/userSmsQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userSmsQueue/userSmsQueue.rpc.js b/server/api/userSmsQueue/userSmsQueue.rpc.js
new file mode 100644
index 0000000..64f68bb
--- /dev/null
+++ b/server/api/userSmsQueue/userSmsQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoicePrefix/userVoicePrefix.attributes.js b/server/api/userVoicePrefix/userVoicePrefix.attributes.js
new file mode 100644
index 0000000..2388f60
--- /dev/null
+++ b/server/api/userVoicePrefix/userVoicePrefix.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x8240=['sequelize','INTEGER'];(function(_0x4b2873,_0x368dcc){var _0x169a18=function(_0x22f7ab){while(--_0x22f7ab){_0x4b2873['push'](_0x4b2873['shift']());}};_0x169a18(++_0x368dcc);}(_0x8240,0x124));var _0x0824=function(_0x31b5a5,_0x44376a){_0x31b5a5=_0x31b5a5-0x0;var _0x364cc9=_0x8240[_0x31b5a5];return _0x364cc9;};'use strict';var Sequelize=require(_0x0824('0x0'));module['exports']={'UserId':{'type':Sequelize[_0x0824('0x1')]},'VoicePrefixId':{'type':Sequelize[_0x0824('0x1')]}};
\ No newline at end of file
diff --git a/server/api/userVoicePrefix/userVoicePrefix.model.js b/server/api/userVoicePrefix/userVoicePrefix.model.js
new file mode 100644
index 0000000..fd53baf
--- /dev/null
+++ b/server/api/userVoicePrefix/userVoicePrefix.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/index.js b/server/api/userVoiceQueue/index.js
new file mode 100644
index 0000000..a377e10
--- /dev/null
+++ b/server/api/userVoiceQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/userVoiceQueue.attributes.js b/server/api/userVoiceQueue/userVoiceQueue.attributes.js
new file mode 100644
index 0000000..c5872c8
--- /dev/null
+++ b/server/api/userVoiceQueue/userVoiceQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x99fc=['INTEGER','sequelize'];(function(_0x2f0723,_0x3ecd67){var _0x34f47b=function(_0x155ad7){while(--_0x155ad7){_0x2f0723['push'](_0x2f0723['shift']());}};_0x34f47b(++_0x3ecd67);}(_0x99fc,0x1df));var _0xc99f=function(_0x7f038a,_0xcbf254){_0x7f038a=_0x7f038a-0x0;var _0x4cb3dd=_0x99fc[_0x7f038a];return _0x4cb3dd;};'use strict';var Sequelize=require(_0xc99f('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xc99f('0x1')],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/userVoiceQueue.model.js b/server/api/userVoiceQueue/userVoiceQueue.model.js
new file mode 100644
index 0000000..ee704c7
--- /dev/null
+++ b/server/api/userVoiceQueue/userVoiceQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/userVoiceQueue.rpc.js b/server/api/userVoiceQueue/userVoiceQueue.rpc.js
new file mode 100644
index 0000000..82bf0f7
--- /dev/null
+++ b/server/api/userVoiceQueue/userVoiceQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/index.js b/server/api/userVoiceQueueRt/index.js
new file mode 100644
index 0000000..0f5275e
--- /dev/null
+++ b/server/api/userVoiceQueueRt/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js
new file mode 100644
index 0000000..497f4ce
--- /dev/null
+++ b/server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.events.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.events.js
new file mode 100644
index 0000000..e9a21d3
--- /dev/null
+++ b/server/api/userVoiceQueueRt/userVoiceQueueRt.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.model.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.model.js
new file mode 100644
index 0000000..d7bfbd8
--- /dev/null
+++ b/server/api/userVoiceQueueRt/userVoiceQueueRt.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js
new file mode 100644
index 0000000..60218eb
--- /dev/null
+++ b/server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js
new file mode 100644
index 0000000..19d9cb9
--- /dev/null
+++ b/server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userWhatsappQueue/index.js b/server/api/userWhatsappQueue/index.js
new file mode 100644
index 0000000..07a4d25
--- /dev/null
+++ b/server/api/userWhatsappQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userWhatsappQueue/userWhatsappQueue.attributes.js b/server/api/userWhatsappQueue/userWhatsappQueue.attributes.js
new file mode 100644
index 0000000..43a80ef
--- /dev/null
+++ b/server/api/userWhatsappQueue/userWhatsappQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xfc76=['INTEGER','exports'];(function(_0x189963,_0x319152){var _0x4d94e7=function(_0x18b744){while(--_0x18b744){_0x189963['push'](_0x189963['shift']());}};_0x4d94e7(++_0x319152);}(_0xfc76,0xb5));var _0x6fc7=function(_0x264444,_0x3a51d6){_0x264444=_0x264444-0x0;var _0x937f30=_0xfc76[_0x264444];return _0x937f30;};'use strict';var Sequelize=require('sequelize');module[_0x6fc7('0x0')]={'penalty':{'type':Sequelize[_0x6fc7('0x1')],'defaultValue':0x0}};
\ No newline at end of file
diff --git a/server/api/userWhatsappQueue/userWhatsappQueue.model.js b/server/api/userWhatsappQueue/userWhatsappQueue.model.js
new file mode 100644
index 0000000..6f3d69b
--- /dev/null
+++ b/server/api/userWhatsappQueue/userWhatsappQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/userWhatsappQueue/userWhatsappQueue.rpc.js b/server/api/userWhatsappQueue/userWhatsappQueue.rpc.js
new file mode 100644
index 0000000..cdc71ac
--- /dev/null
+++ b/server/api/userWhatsappQueue/userWhatsappQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/variable/index.js b/server/api/variable/index.js
new file mode 100644
index 0000000..7592ba3
--- /dev/null
+++ b/server/api/variable/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/variable/variable.attributes.js b/server/api/variable/variable.attributes.js
new file mode 100644
index 0000000..54f7501
--- /dev/null
+++ b/server/api/variable/variable.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/variable/variable.controller.js b/server/api/variable/variable.controller.js
new file mode 100644
index 0000000..2e64d89
--- /dev/null
+++ b/server/api/variable/variable.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/variable/variable.model.js b/server/api/variable/variable.model.js
new file mode 100644
index 0000000..9eee38d
--- /dev/null
+++ b/server/api/variable/variable.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/variable/variable.rpc.js b/server/api/variable/variable.rpc.js
new file mode 100644
index 0000000..0541d8c
--- /dev/null
+++ b/server/api/variable/variable.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/version/index.js b/server/api/version/index.js
new file mode 100644
index 0000000..67cfb15
--- /dev/null
+++ b/server/api/version/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/version/version.controller.js b/server/api/version/version.controller.js
new file mode 100644
index 0000000..aca98f5
--- /dev/null
+++ b/server/api/version/version.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/index.js b/server/api/voiceAgentReport/index.js
new file mode 100644
index 0000000..afcf71b
--- /dev/null
+++ b/server/api/voiceAgentReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.attributes.js b/server/api/voiceAgentReport/voiceAgentReport.attributes.js
new file mode 100644
index 0000000..56584ed
--- /dev/null
+++ b/server/api/voiceAgentReport/voiceAgentReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.controller.js b/server/api/voiceAgentReport/voiceAgentReport.controller.js
new file mode 100644
index 0000000..6b203c2
--- /dev/null
+++ b/server/api/voiceAgentReport/voiceAgentReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.model.js b/server/api/voiceAgentReport/voiceAgentReport.model.js
new file mode 100644
index 0000000..5b35b3d
--- /dev/null
+++ b/server/api/voiceAgentReport/voiceAgentReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.rpc.js b/server/api/voiceAgentReport/voiceAgentReport.rpc.js
new file mode 100644
index 0000000..6ccb997
--- /dev/null
+++ b/server/api/voiceAgentReport/voiceAgentReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceCallReport/index.js b/server/api/voiceCallReport/index.js
new file mode 100644
index 0000000..ad21f30
--- /dev/null
+++ b/server/api/voiceCallReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.attributes.js b/server/api/voiceCallReport/voiceCallReport.attributes.js
new file mode 100644
index 0000000..56ac657
--- /dev/null
+++ b/server/api/voiceCallReport/voiceCallReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.controller.js b/server/api/voiceCallReport/voiceCallReport.controller.js
new file mode 100644
index 0000000..ad389a3
--- /dev/null
+++ b/server/api/voiceCallReport/voiceCallReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.model.js b/server/api/voiceCallReport/voiceCallReport.model.js
new file mode 100644
index 0000000..be5051e
--- /dev/null
+++ b/server/api/voiceCallReport/voiceCallReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.rpc.js b/server/api/voiceCallReport/voiceCallReport.rpc.js
new file mode 100644
index 0000000..61fa13a
--- /dev/null
+++ b/server/api/voiceCallReport/voiceCallReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/index.js b/server/api/voiceChanSpy/index.js
new file mode 100644
index 0000000..015c93b
--- /dev/null
+++ b/server/api/voiceChanSpy/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.attributes.js b/server/api/voiceChanSpy/voiceChanSpy.attributes.js
new file mode 100644
index 0000000..97ca58c
--- /dev/null
+++ b/server/api/voiceChanSpy/voiceChanSpy.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.controller.js b/server/api/voiceChanSpy/voiceChanSpy.controller.js
new file mode 100644
index 0000000..9cedb2a
--- /dev/null
+++ b/server/api/voiceChanSpy/voiceChanSpy.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.model.js b/server/api/voiceChanSpy/voiceChanSpy.model.js
new file mode 100644
index 0000000..6d7b8d9
--- /dev/null
+++ b/server/api/voiceChanSpy/voiceChanSpy.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.rpc.js b/server/api/voiceChanSpy/voiceChanSpy.rpc.js
new file mode 100644
index 0000000..fb86462
--- /dev/null
+++ b/server/api/voiceChanSpy/voiceChanSpy.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceContext/index.js b/server/api/voiceContext/index.js
new file mode 100644
index 0000000..7b9b5d9
--- /dev/null
+++ b/server/api/voiceContext/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.attributes.js b/server/api/voiceContext/voiceContext.attributes.js
new file mode 100644
index 0000000..5821814
--- /dev/null
+++ b/server/api/voiceContext/voiceContext.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.controller.js b/server/api/voiceContext/voiceContext.controller.js
new file mode 100644
index 0000000..fbb68ee
--- /dev/null
+++ b/server/api/voiceContext/voiceContext.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.model.js b/server/api/voiceContext/voiceContext.model.js
new file mode 100644
index 0000000..d06f0aa
--- /dev/null
+++ b/server/api/voiceContext/voiceContext.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.rpc.js b/server/api/voiceContext/voiceContext.rpc.js
new file mode 100644
index 0000000..9e213ec
--- /dev/null
+++ b/server/api/voiceContext/voiceContext.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceDialReport/index.js b/server/api/voiceDialReport/index.js
new file mode 100644
index 0000000..656fec4
--- /dev/null
+++ b/server/api/voiceDialReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.attributes.js b/server/api/voiceDialReport/voiceDialReport.attributes.js
new file mode 100644
index 0000000..4a09b2c
--- /dev/null
+++ b/server/api/voiceDialReport/voiceDialReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.controller.js b/server/api/voiceDialReport/voiceDialReport.controller.js
new file mode 100644
index 0000000..6f5ee24
--- /dev/null
+++ b/server/api/voiceDialReport/voiceDialReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.model.js b/server/api/voiceDialReport/voiceDialReport.model.js
new file mode 100644
index 0000000..8129624
--- /dev/null
+++ b/server/api/voiceDialReport/voiceDialReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.rpc.js b/server/api/voiceDialReport/voiceDialReport.rpc.js
new file mode 100644
index 0000000..42c42c2
--- /dev/null
+++ b/server/api/voiceDialReport/voiceDialReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/index.js b/server/api/voiceExtension/index.js
new file mode 100644
index 0000000..d200a99
--- /dev/null
+++ b/server/api/voiceExtension/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.attributes.js b/server/api/voiceExtension/voiceExtension.attributes.js
new file mode 100644
index 0000000..6138ee3
--- /dev/null
+++ b/server/api/voiceExtension/voiceExtension.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.controller.js b/server/api/voiceExtension/voiceExtension.controller.js
new file mode 100644
index 0000000..9cc461b
--- /dev/null
+++ b/server/api/voiceExtension/voiceExtension.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.events.js b/server/api/voiceExtension/voiceExtension.events.js
new file mode 100644
index 0000000..f256ff6
--- /dev/null
+++ b/server/api/voiceExtension/voiceExtension.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.model.js b/server/api/voiceExtension/voiceExtension.model.js
new file mode 100644
index 0000000..cfebc58
--- /dev/null
+++ b/server/api/voiceExtension/voiceExtension.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.rpc.js b/server/api/voiceExtension/voiceExtension.rpc.js
new file mode 100644
index 0000000..0990a60
--- /dev/null
+++ b/server/api/voiceExtension/voiceExtension.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.socket.js b/server/api/voiceExtension/voiceExtension.socket.js
new file mode 100644
index 0000000..b20bce2
--- /dev/null
+++ b/server/api/voiceExtension/voiceExtension.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMail/index.js b/server/api/voiceMail/index.js
new file mode 100644
index 0000000..645f371
--- /dev/null
+++ b/server/api/voiceMail/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.attributes.js b/server/api/voiceMail/voiceMail.attributes.js
new file mode 100644
index 0000000..73cb2b1
--- /dev/null
+++ b/server/api/voiceMail/voiceMail.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.controller.js b/server/api/voiceMail/voiceMail.controller.js
new file mode 100644
index 0000000..12b387f
--- /dev/null
+++ b/server/api/voiceMail/voiceMail.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.model.js b/server/api/voiceMail/voiceMail.model.js
new file mode 100644
index 0000000..110862a
--- /dev/null
+++ b/server/api/voiceMail/voiceMail.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.rpc.js b/server/api/voiceMail/voiceMail.rpc.js
new file mode 100644
index 0000000..75991f1
--- /dev/null
+++ b/server/api/voiceMail/voiceMail.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/index.js b/server/api/voiceMailMessage/index.js
new file mode 100644
index 0000000..55bf9d1
--- /dev/null
+++ b/server/api/voiceMailMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.attributes.js b/server/api/voiceMailMessage/voiceMailMessage.attributes.js
new file mode 100644
index 0000000..ecd697f
--- /dev/null
+++ b/server/api/voiceMailMessage/voiceMailMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.controller.js b/server/api/voiceMailMessage/voiceMailMessage.controller.js
new file mode 100644
index 0000000..6a78983
--- /dev/null
+++ b/server/api/voiceMailMessage/voiceMailMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.model.js b/server/api/voiceMailMessage/voiceMailMessage.model.js
new file mode 100644
index 0000000..5a3f88a
--- /dev/null
+++ b/server/api/voiceMailMessage/voiceMailMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.rpc.js b/server/api/voiceMailMessage/voiceMailMessage.rpc.js
new file mode 100644
index 0000000..5bf9096
--- /dev/null
+++ b/server/api/voiceMailMessage/voiceMailMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/index.js b/server/api/voiceMusicOnHold/index.js
new file mode 100644
index 0000000..2a91590
--- /dev/null
+++ b/server/api/voiceMusicOnHold/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js
new file mode 100644
index 0000000..5823f75
--- /dev/null
+++ b/server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js
new file mode 100644
index 0000000..14329fc
--- /dev/null
+++ b/server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.model.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.model.js
new file mode 100644
index 0000000..c216201
--- /dev/null
+++ b/server/api/voiceMusicOnHold/voiceMusicOnHold.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js
new file mode 100644
index 0000000..60763c5
--- /dev/null
+++ b/server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/index.js b/server/api/voicePrefix/index.js
new file mode 100644
index 0000000..acf25f1
--- /dev/null
+++ b/server/api/voicePrefix/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/voicePrefix.attributes.js b/server/api/voicePrefix/voicePrefix.attributes.js
new file mode 100644
index 0000000..114c46c
--- /dev/null
+++ b/server/api/voicePrefix/voicePrefix.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/voicePrefix.controller.js b/server/api/voicePrefix/voicePrefix.controller.js
new file mode 100644
index 0000000..4ddf74e
--- /dev/null
+++ b/server/api/voicePrefix/voicePrefix.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/voicePrefix.events.js b/server/api/voicePrefix/voicePrefix.events.js
new file mode 100644
index 0000000..83abc3e
--- /dev/null
+++ b/server/api/voicePrefix/voicePrefix.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/voicePrefix.model.js b/server/api/voicePrefix/voicePrefix.model.js
new file mode 100644
index 0000000..ff8d346
--- /dev/null
+++ b/server/api/voicePrefix/voicePrefix.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/voicePrefix.rpc.js b/server/api/voicePrefix/voicePrefix.rpc.js
new file mode 100644
index 0000000..0369950
--- /dev/null
+++ b/server/api/voicePrefix/voicePrefix.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voicePrefix/voicePrefix.socket.js b/server/api/voicePrefix/voicePrefix.socket.js
new file mode 100644
index 0000000..f5cfff2
--- /dev/null
+++ b/server/api/voicePrefix/voicePrefix.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/index.js b/server/api/voiceQueue/index.js
new file mode 100644
index 0000000..40b0d41
--- /dev/null
+++ b/server/api/voiceQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.attributes.js b/server/api/voiceQueue/voiceQueue.attributes.js
new file mode 100644
index 0000000..e2d3e05
--- /dev/null
+++ b/server/api/voiceQueue/voiceQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.controller.js b/server/api/voiceQueue/voiceQueue.controller.js
new file mode 100644
index 0000000..3fee0b4
--- /dev/null
+++ b/server/api/voiceQueue/voiceQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.events.js b/server/api/voiceQueue/voiceQueue.events.js
new file mode 100644
index 0000000..5719fad
--- /dev/null
+++ b/server/api/voiceQueue/voiceQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.model.js b/server/api/voiceQueue/voiceQueue.model.js
new file mode 100644
index 0000000..e48cf74
--- /dev/null
+++ b/server/api/voiceQueue/voiceQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.rpc.js b/server/api/voiceQueue/voiceQueue.rpc.js
new file mode 100644
index 0000000..9332e07
--- /dev/null
+++ b/server/api/voiceQueue/voiceQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.socket.js b/server/api/voiceQueue/voiceQueue.socket.js
new file mode 100644
index 0000000..2da78e9
--- /dev/null
+++ b/server/api/voiceQueue/voiceQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/index.js b/server/api/voiceQueueReport/index.js
new file mode 100644
index 0000000..aab729e
--- /dev/null
+++ b/server/api/voiceQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.attributes.js b/server/api/voiceQueueReport/voiceQueueReport.attributes.js
new file mode 100644
index 0000000..a61de86
--- /dev/null
+++ b/server/api/voiceQueueReport/voiceQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.controller.js b/server/api/voiceQueueReport/voiceQueueReport.controller.js
new file mode 100644
index 0000000..fc22f73
--- /dev/null
+++ b/server/api/voiceQueueReport/voiceQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.events.js b/server/api/voiceQueueReport/voiceQueueReport.events.js
new file mode 100644
index 0000000..5dc0093
--- /dev/null
+++ b/server/api/voiceQueueReport/voiceQueueReport.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.model.js b/server/api/voiceQueueReport/voiceQueueReport.model.js
new file mode 100644
index 0000000..c998c62
--- /dev/null
+++ b/server/api/voiceQueueReport/voiceQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.rpc.js b/server/api/voiceQueueReport/voiceQueueReport.rpc.js
new file mode 100644
index 0000000..14ade4b
--- /dev/null
+++ b/server/api/voiceQueueReport/voiceQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.socket.js b/server/api/voiceQueueReport/voiceQueueReport.socket.js
new file mode 100644
index 0000000..87cb518
--- /dev/null
+++ b/server/api/voiceQueueReport/voiceQueueReport.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/index.js b/server/api/voiceQueuesLog/index.js
new file mode 100644
index 0000000..6ab6264
--- /dev/null
+++ b/server/api/voiceQueuesLog/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.attributes.js b/server/api/voiceQueuesLog/voiceQueuesLog.attributes.js
new file mode 100644
index 0000000..c6a26b9
--- /dev/null
+++ b/server/api/voiceQueuesLog/voiceQueuesLog.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.controller.js b/server/api/voiceQueuesLog/voiceQueuesLog.controller.js
new file mode 100644
index 0000000..221c19f
--- /dev/null
+++ b/server/api/voiceQueuesLog/voiceQueuesLog.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.model.js b/server/api/voiceQueuesLog/voiceQueuesLog.model.js
new file mode 100644
index 0000000..a51a669
--- /dev/null
+++ b/server/api/voiceQueuesLog/voiceQueuesLog.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.rpc.js b/server/api/voiceQueuesLog/voiceQueuesLog.rpc.js
new file mode 100644
index 0000000..1b2460a
--- /dev/null
+++ b/server/api/voiceQueuesLog/voiceQueuesLog.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceRecording/index.js b/server/api/voiceRecording/index.js
new file mode 100644
index 0000000..22272a0
--- /dev/null
+++ b/server/api/voiceRecording/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.attributes.js b/server/api/voiceRecording/voiceRecording.attributes.js
new file mode 100644
index 0000000..f94c04b
--- /dev/null
+++ b/server/api/voiceRecording/voiceRecording.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.controller.js b/server/api/voiceRecording/voiceRecording.controller.js
new file mode 100644
index 0000000..c0faeec
--- /dev/null
+++ b/server/api/voiceRecording/voiceRecording.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.model.js b/server/api/voiceRecording/voiceRecording.model.js
new file mode 100644
index 0000000..bdfc3eb
--- /dev/null
+++ b/server/api/voiceRecording/voiceRecording.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.rpc.js b/server/api/voiceRecording/voiceRecording.rpc.js
new file mode 100644
index 0000000..4fcb7d8
--- /dev/null
+++ b/server/api/voiceRecording/voiceRecording.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/index.js b/server/api/voiceTransferReport/index.js
new file mode 100644
index 0000000..b99a45f
--- /dev/null
+++ b/server/api/voiceTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.attributes.js b/server/api/voiceTransferReport/voiceTransferReport.attributes.js
new file mode 100644
index 0000000..0391d85
--- /dev/null
+++ b/server/api/voiceTransferReport/voiceTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.controller.js b/server/api/voiceTransferReport/voiceTransferReport.controller.js
new file mode 100644
index 0000000..8f6b438
--- /dev/null
+++ b/server/api/voiceTransferReport/voiceTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.model.js b/server/api/voiceTransferReport/voiceTransferReport.model.js
new file mode 100644
index 0000000..b61834f
--- /dev/null
+++ b/server/api/voiceTransferReport/voiceTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.rpc.js b/server/api/voiceTransferReport/voiceTransferReport.rpc.js
new file mode 100644
index 0000000..9274bf7
--- /dev/null
+++ b/server/api/voiceTransferReport/voiceTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/webbar/index.js b/server/api/webbar/index.js
new file mode 100644
index 0000000..3a863d7
--- /dev/null
+++ b/server/api/webbar/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/webbar/webbar.controller.js b/server/api/webbar/webbar.controller.js
new file mode 100644
index 0000000..3f19ff8
--- /dev/null
+++ b/server/api/webbar/webbar.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/index.js b/server/api/whatsappAccount/index.js
new file mode 100644
index 0000000..d96cb5f
--- /dev/null
+++ b/server/api/whatsappAccount/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/whatsappAccount.attributes.js b/server/api/whatsappAccount/whatsappAccount.attributes.js
new file mode 100644
index 0000000..670fc8e
--- /dev/null
+++ b/server/api/whatsappAccount/whatsappAccount.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/whatsappAccount.controller.js b/server/api/whatsappAccount/whatsappAccount.controller.js
new file mode 100644
index 0000000..0e561e8
--- /dev/null
+++ b/server/api/whatsappAccount/whatsappAccount.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/whatsappAccount.events.js b/server/api/whatsappAccount/whatsappAccount.events.js
new file mode 100644
index 0000000..42e7245
--- /dev/null
+++ b/server/api/whatsappAccount/whatsappAccount.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/whatsappAccount.model.js b/server/api/whatsappAccount/whatsappAccount.model.js
new file mode 100644
index 0000000..ca527fc
--- /dev/null
+++ b/server/api/whatsappAccount/whatsappAccount.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/whatsappAccount.rpc.js b/server/api/whatsappAccount/whatsappAccount.rpc.js
new file mode 100644
index 0000000..f4e9e75
--- /dev/null
+++ b/server/api/whatsappAccount/whatsappAccount.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappAccount/whatsappAccount.socket.js b/server/api/whatsappAccount/whatsappAccount.socket.js
new file mode 100644
index 0000000..7a0e481
--- /dev/null
+++ b/server/api/whatsappAccount/whatsappAccount.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappApplication/index.js b/server/api/whatsappApplication/index.js
new file mode 100644
index 0000000..39f9be9
--- /dev/null
+++ b/server/api/whatsappApplication/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappApplication/whatsappApplication.attributes.js b/server/api/whatsappApplication/whatsappApplication.attributes.js
new file mode 100644
index 0000000..bc8d44b
--- /dev/null
+++ b/server/api/whatsappApplication/whatsappApplication.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappApplication/whatsappApplication.controller.js b/server/api/whatsappApplication/whatsappApplication.controller.js
new file mode 100644
index 0000000..f5d66f5
--- /dev/null
+++ b/server/api/whatsappApplication/whatsappApplication.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappApplication/whatsappApplication.model.js b/server/api/whatsappApplication/whatsappApplication.model.js
new file mode 100644
index 0000000..8f43ec1
--- /dev/null
+++ b/server/api/whatsappApplication/whatsappApplication.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappApplication/whatsappApplication.rpc.js b/server/api/whatsappApplication/whatsappApplication.rpc.js
new file mode 100644
index 0000000..520e3b7
--- /dev/null
+++ b/server/api/whatsappApplication/whatsappApplication.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/index.js b/server/api/whatsappInteraction/index.js
new file mode 100644
index 0000000..6fef14e
--- /dev/null
+++ b/server/api/whatsappInteraction/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/whatsappInteraction.attributes.js b/server/api/whatsappInteraction/whatsappInteraction.attributes.js
new file mode 100644
index 0000000..073202f
--- /dev/null
+++ b/server/api/whatsappInteraction/whatsappInteraction.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/whatsappInteraction.controller.js b/server/api/whatsappInteraction/whatsappInteraction.controller.js
new file mode 100644
index 0000000..2e34385
--- /dev/null
+++ b/server/api/whatsappInteraction/whatsappInteraction.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/whatsappInteraction.events.js b/server/api/whatsappInteraction/whatsappInteraction.events.js
new file mode 100644
index 0000000..c92dc53
--- /dev/null
+++ b/server/api/whatsappInteraction/whatsappInteraction.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/whatsappInteraction.model.js b/server/api/whatsappInteraction/whatsappInteraction.model.js
new file mode 100644
index 0000000..bf15310
--- /dev/null
+++ b/server/api/whatsappInteraction/whatsappInteraction.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/whatsappInteraction.rpc.js b/server/api/whatsappInteraction/whatsappInteraction.rpc.js
new file mode 100644
index 0000000..ca59503
--- /dev/null
+++ b/server/api/whatsappInteraction/whatsappInteraction.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappInteraction/whatsappInteraction.socket.js b/server/api/whatsappInteraction/whatsappInteraction.socket.js
new file mode 100644
index 0000000..3b838e0
--- /dev/null
+++ b/server/api/whatsappInteraction/whatsappInteraction.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/index.js b/server/api/whatsappMessage/index.js
new file mode 100644
index 0000000..d14730c
--- /dev/null
+++ b/server/api/whatsappMessage/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/whatsappMessage.attributes.js b/server/api/whatsappMessage/whatsappMessage.attributes.js
new file mode 100644
index 0000000..e1c5ecb
--- /dev/null
+++ b/server/api/whatsappMessage/whatsappMessage.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/whatsappMessage.controller.js b/server/api/whatsappMessage/whatsappMessage.controller.js
new file mode 100644
index 0000000..9e7733d
--- /dev/null
+++ b/server/api/whatsappMessage/whatsappMessage.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/whatsappMessage.events.js b/server/api/whatsappMessage/whatsappMessage.events.js
new file mode 100644
index 0000000..044756d
--- /dev/null
+++ b/server/api/whatsappMessage/whatsappMessage.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/whatsappMessage.model.js b/server/api/whatsappMessage/whatsappMessage.model.js
new file mode 100644
index 0000000..dad020e
--- /dev/null
+++ b/server/api/whatsappMessage/whatsappMessage.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/whatsappMessage.rpc.js b/server/api/whatsappMessage/whatsappMessage.rpc.js
new file mode 100644
index 0000000..dc6655a
--- /dev/null
+++ b/server/api/whatsappMessage/whatsappMessage.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappMessage/whatsappMessage.socket.js b/server/api/whatsappMessage/whatsappMessage.socket.js
new file mode 100644
index 0000000..2ab1326
--- /dev/null
+++ b/server/api/whatsappMessage/whatsappMessage.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/index.js b/server/api/whatsappQueue/index.js
new file mode 100644
index 0000000..cc52e87
--- /dev/null
+++ b/server/api/whatsappQueue/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/whatsappQueue.attributes.js b/server/api/whatsappQueue/whatsappQueue.attributes.js
new file mode 100644
index 0000000..145bfaa
--- /dev/null
+++ b/server/api/whatsappQueue/whatsappQueue.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/whatsappQueue.controller.js b/server/api/whatsappQueue/whatsappQueue.controller.js
new file mode 100644
index 0000000..ddee5d6
--- /dev/null
+++ b/server/api/whatsappQueue/whatsappQueue.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/whatsappQueue.events.js b/server/api/whatsappQueue/whatsappQueue.events.js
new file mode 100644
index 0000000..5b50023
--- /dev/null
+++ b/server/api/whatsappQueue/whatsappQueue.events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/whatsappQueue.model.js b/server/api/whatsappQueue/whatsappQueue.model.js
new file mode 100644
index 0000000..8b9f935
--- /dev/null
+++ b/server/api/whatsappQueue/whatsappQueue.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/whatsappQueue.rpc.js b/server/api/whatsappQueue/whatsappQueue.rpc.js
new file mode 100644
index 0000000..bd21b43
--- /dev/null
+++ b/server/api/whatsappQueue/whatsappQueue.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueue/whatsappQueue.socket.js b/server/api/whatsappQueue/whatsappQueue.socket.js
new file mode 100644
index 0000000..3044edf
--- /dev/null
+++ b/server/api/whatsappQueue/whatsappQueue.socket.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueueReport/index.js b/server/api/whatsappQueueReport/index.js
new file mode 100644
index 0000000..1d8c619
--- /dev/null
+++ b/server/api/whatsappQueueReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueueReport/whatsappQueueReport.attributes.js b/server/api/whatsappQueueReport/whatsappQueueReport.attributes.js
new file mode 100644
index 0000000..6d44b20
--- /dev/null
+++ b/server/api/whatsappQueueReport/whatsappQueueReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueueReport/whatsappQueueReport.controller.js b/server/api/whatsappQueueReport/whatsappQueueReport.controller.js
new file mode 100644
index 0000000..102d6e3
--- /dev/null
+++ b/server/api/whatsappQueueReport/whatsappQueueReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueueReport/whatsappQueueReport.model.js b/server/api/whatsappQueueReport/whatsappQueueReport.model.js
new file mode 100644
index 0000000..309e3a9
--- /dev/null
+++ b/server/api/whatsappQueueReport/whatsappQueueReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappQueueReport/whatsappQueueReport.rpc.js b/server/api/whatsappQueueReport/whatsappQueueReport.rpc.js
new file mode 100644
index 0000000..791237e
--- /dev/null
+++ b/server/api/whatsappQueueReport/whatsappQueueReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappTransferReport/index.js b/server/api/whatsappTransferReport/index.js
new file mode 100644
index 0000000..1df67c5
--- /dev/null
+++ b/server/api/whatsappTransferReport/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappTransferReport/whatsappTransferReport.attributes.js b/server/api/whatsappTransferReport/whatsappTransferReport.attributes.js
new file mode 100644
index 0000000..7668e66
--- /dev/null
+++ b/server/api/whatsappTransferReport/whatsappTransferReport.attributes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappTransferReport/whatsappTransferReport.controller.js b/server/api/whatsappTransferReport/whatsappTransferReport.controller.js
new file mode 100644
index 0000000..cdec905
--- /dev/null
+++ b/server/api/whatsappTransferReport/whatsappTransferReport.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappTransferReport/whatsappTransferReport.model.js b/server/api/whatsappTransferReport/whatsappTransferReport.model.js
new file mode 100644
index 0000000..2bac978
--- /dev/null
+++ b/server/api/whatsappTransferReport/whatsappTransferReport.model.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/api/whatsappTransferReport/whatsappTransferReport.rpc.js b/server/api/whatsappTransferReport/whatsappTransferReport.rpc.js
new file mode 100644
index 0000000..c4031d4
--- /dev/null
+++ b/server/api/whatsappTransferReport/whatsappTransferReport.rpc.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/app.js b/server/app.js
new file mode 100644
index 0000000..f990666
--- /dev/null
+++ b/server/app.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/auth/service.js b/server/components/auth/service.js
new file mode 100644
index 0000000..0b5dd23
--- /dev/null
+++ b/server/components/auth/service.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/contacts/index.js b/server/components/contacts/index.js
new file mode 100644
index 0000000..3d949b9
--- /dev/null
+++ b/server/components/contacts/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/contacts/sql-utils.js b/server/components/contacts/sql-utils.js
new file mode 100644
index 0000000..57f137f
--- /dev/null
+++ b/server/components/contacts/sql-utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/encryptor/index.js b/server/components/encryptor/index.js
new file mode 100644
index 0000000..08d64f5
--- /dev/null
+++ b/server/components/encryptor/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/export/csv.js b/server/components/export/csv.js
new file mode 100644
index 0000000..bb65ae6
--- /dev/null
+++ b/server/components/export/csv.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/export/fonts/arial-bold-italic.ttf b/server/components/export/fonts/arial-bold-italic.ttf
new file mode 100644
index 0000000..00968d2
Binary files /dev/null and b/server/components/export/fonts/arial-bold-italic.ttf differ
diff --git a/server/components/export/fonts/arial-bold.ttf b/server/components/export/fonts/arial-bold.ttf
new file mode 100644
index 0000000..d0d857e
Binary files /dev/null and b/server/components/export/fonts/arial-bold.ttf differ
diff --git a/server/components/export/fonts/arial-italic.ttf b/server/components/export/fonts/arial-italic.ttf
new file mode 100644
index 0000000..5b05d35
Binary files /dev/null and b/server/components/export/fonts/arial-italic.ttf differ
diff --git a/server/components/export/fonts/arial-regular.ttf b/server/components/export/fonts/arial-regular.ttf
new file mode 100644
index 0000000..51a18bc
Binary files /dev/null and b/server/components/export/fonts/arial-regular.ttf differ
diff --git a/server/components/export/pdf.js b/server/components/export/pdf.js
new file mode 100644
index 0000000..736d1fb
--- /dev/null
+++ b/server/components/export/pdf.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/export/xlsx.js b/server/components/export/xlsx.js
new file mode 100644
index 0000000..ffad105
--- /dev/null
+++ b/server/components/export/xlsx.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/extensions/rewrite.js b/server/components/extensions/rewrite.js
new file mode 100644
index 0000000..c3ae38e
--- /dev/null
+++ b/server/components/extensions/rewrite.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/import/cm/csv.js b/server/components/import/cm/csv.js
new file mode 100644
index 0000000..d3f32b9
--- /dev/null
+++ b/server/components/import/cm/csv.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/import/cm/csv2.js b/server/components/import/cm/csv2.js
new file mode 100644
index 0000000..7e1f534
--- /dev/null
+++ b/server/components/import/cm/csv2.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/import/cm/csvUpdates.js b/server/components/import/cm/csvUpdates.js
new file mode 100644
index 0000000..a5368f3
--- /dev/null
+++ b/server/components/import/cm/csvUpdates.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/integrations/configuration.js b/server/components/integrations/configuration.js
new file mode 100644
index 0000000..2847f5c
--- /dev/null
+++ b/server/components/integrations/configuration.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/interaction/service.js b/server/components/interaction/service.js
new file mode 100644
index 0000000..30be30c
--- /dev/null
+++ b/server/components/interaction/service.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/interaction/sql-utils.js b/server/components/interaction/sql-utils.js
new file mode 100644
index 0000000..ebe1c70
--- /dev/null
+++ b/server/components/interaction/sql-utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/interaction/update-interaction.js b/server/components/interaction/update-interaction.js
new file mode 100644
index 0000000..9b2b554
--- /dev/null
+++ b/server/components/interaction/update-interaction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/interaction/utils.js b/server/components/interaction/utils.js
new file mode 100644
index 0000000..9f38ac2
--- /dev/null
+++ b/server/components/interaction/utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/license/service.js b/server/components/license/service.js
new file mode 100644
index 0000000..7c1a7a5
--- /dev/null
+++ b/server/components/license/service.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/parsers/advancedSearch.js b/server/components/parsers/advancedSearch.js
new file mode 100644
index 0000000..fed5507
--- /dev/null
+++ b/server/components/parsers/advancedSearch.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/parsers/qs.js b/server/components/parsers/qs.js
new file mode 100644
index 0000000..b62ecbd
--- /dev/null
+++ b/server/components/parsers/qs.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/realtime/agents.js b/server/components/realtime/agents.js
new file mode 100644
index 0000000..6424906
--- /dev/null
+++ b/server/components/realtime/agents.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/components/realtime/queues.js b/server/components/realtime/queues.js
new file mode 100644
index 0000000..1a9ab71
--- /dev/null
+++ b/server/components/realtime/queues.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/environment/development.js b/server/config/environment/development.js
new file mode 100644
index 0000000..d5e896a
--- /dev/null
+++ b/server/config/environment/development.js
@@ -0,0 +1,90 @@
+'use strict';
+
+var jstz = require('jstz');
+var timezone = jstz.determine();
+
+// Development specific configuration
+// ==================================
+module.exports = {
+
+  // Sequelize connection opions
+  sequelize: {
+    database: 'motion2',
+    username: 'xcall',
+    password: 'xC@LL1234',
+    options: {
+      host: '127.0.0.1',
+      port: 3306,
+      dialect: 'mysql',
+      dialectOptions: {
+        charset: 'utf8mb4'
+      },
+      logging: false,
+      timezone: timezone.name(),
+      define: {
+        charset: 'utf8',
+        collate: 'utf8_general_ci'
+      }
+    }
+  },
+  sequelizeHistory: {
+    database: 'motion2',
+    username: 'xcall',
+    password: 'xC@LL1234',
+    options: {
+      host: '127.0.0.1',
+      port: 3306,
+      dialect: 'mysql',
+      dialectOptions: {
+        charset: 'utf8mb4'
+      },
+      logging: false,
+      timezone: timezone.name(),
+      define: {
+        charset: 'utf8',
+        collate: 'utf8_general_ci'
+      }
+    }
+  },
+  asterisk: {
+    ip: '127.0.0.1',
+    port: '5038',
+    username: 'xcall',
+    password: 'xcall1234'
+  },
+  redis: {
+    host: 'localhost',
+    port: '6379'
+  },
+  rpc: {
+    port: process.env.RPCPORT || 9001,
+    ip: process.env.RPCIP || '127.0.0.1',
+  },
+  agi: {
+    port: process.env.AGIPORT || 4573,
+    ip: process.env.AGIIP || '127.0.0.1',
+  },
+  // Seed database on startup
+  seedDB: true,
+  google: {
+    clientID: process.env.GOOGLE_ID || 'id',
+    clientSecret: process.env.GOOGLE_SECRET || 'secret',
+    callbackURL: (process.env.DOMAIN || 'http://localhost:9000') + '/api/auth/google/callback'
+  },
+  secrets: {
+    session: 'xcally-motion-session-secret',
+    recording: 'xcally-motion-recording-secret'
+  },
+  xdr: {
+    disabled: true,
+    local: false
+  },
+  encrypt: {
+    algorithm: 'aes192'
+  },
+  activedirectory: {
+    baseDN: process.env.AD_BASEDN || '',
+    url: process.env.AD_URL,
+    domain: process.env.AD_DOMAIN
+  }
+};
\ No newline at end of file
diff --git a/server/config/environment/index.js b/server/config/environment/index.js
new file mode 100644
index 0000000..6ad2e34
--- /dev/null
+++ b/server/config/environment/index.js
@@ -0,0 +1,49 @@
+'use strict';
+/*eslint no-process-env:0*/
+var path = require('path');
+var _ = require('lodash');
+
+/*function requiredProcessEnv(name) {
+  if(!process.env[name]) {
+    throw new Error('You must set the ' + name + ' environment variable');
+  }
+  return process.env[name];
+}*/
+
+// All configurations will extend these options
+// ============================================
+var all = {
+  env: process.env.NODE_ENV,
+
+  // Root path of server
+  root: path.normalize(__dirname + '/../../..'),
+
+  // Browser-sync port
+  browserSyncPort: process.env.BROWSER_SYNC_PORT || 3000,
+
+  port: process.env.PORT || 9000,
+
+  ip: process.env.IP || '127.0.0.1',
+
+  // Should we populate the DB with sample data?
+  seedDB: false,
+
+  // Secret for session, you will want to change this and make it an environment variable
+  secrets: {
+    session: 'xcally-motion-session-secret',
+    recording: 'xcally-motion-recording-secret'
+  },
+
+  encrypt: {
+    algorithm: 'aes192'
+  },
+  // Possible values ["SILLY", "DEBUG", "VERBOSE", "HTTP", "INFO", "WARN", "ERROR"]
+  debugLevel: 'INFO'
+};
+
+// Export the config object based on the NODE_ENV
+// ==============================================
+module.exports = _.merge(
+  all,
+  require('./shared'),
+  require('./' + (process.env.NODE_ENV || 'development') + '.js') || {});
\ No newline at end of file
diff --git a/server/config/environment/shared.js b/server/config/environment/shared.js
new file mode 100644
index 0000000..a86a5f7
--- /dev/null
+++ b/server/config/environment/shared.js
@@ -0,0 +1,2793 @@
+'use strict';
+
+exports = module.exports = {
+  // List of user roles
+  userRoles: ['guest', 'user', 'admin'],
+  timezones: {
+    'Europe/Andorra': {
+      name: 'Europe/Andorra',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'AD'
+      ]
+    },
+    'Asia/Dubai': {
+      name: 'Asia/Dubai',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'AE',
+        'OM'
+      ]
+    },
+    'Asia/Kabul': {
+      name: 'Asia/Kabul',
+      utcOffset: 270,
+      offsetStr: '+04:30',
+      countries: [
+        'AF'
+      ]
+    },
+    'Europe/Tirane': {
+      name: 'Europe/Tirane',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'AL'
+      ]
+    },
+    'Asia/Yerevan': {
+      name: 'Asia/Yerevan',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'AM'
+      ]
+    },
+    'Antarctica/Rothera': {
+      name: 'Antarctica/Rothera',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Palmer': {
+      name: 'Antarctica/Palmer',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Mawson': {
+      name: 'Antarctica/Mawson',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Davis': {
+      name: 'Antarctica/Davis',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Casey': {
+      name: 'Antarctica/Casey',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Vostok': {
+      name: 'Antarctica/Vostok',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/DumontDUrville': {
+      name: 'Antarctica/DumontDUrville',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Syowa': {
+      name: 'Antarctica/Syowa',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'Antarctica/Troll': {
+      name: 'Antarctica/Troll',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'AQ'
+      ]
+    },
+    'America/Argentina/Buenos_Aires': {
+      name: 'America/Argentina/Buenos_Aires',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Cordoba': {
+      name: 'America/Argentina/Cordoba',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Salta': {
+      name: 'America/Argentina/Salta',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Jujuy': {
+      name: 'America/Argentina/Jujuy',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Tucuman': {
+      name: 'America/Argentina/Tucuman',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Catamarca': {
+      name: 'America/Argentina/Catamarca',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/La_Rioja': {
+      name: 'America/Argentina/La_Rioja',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/San_Juan': {
+      name: 'America/Argentina/San_Juan',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Mendoza': {
+      name: 'America/Argentina/Mendoza',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/San_Luis': {
+      name: 'America/Argentina/San_Luis',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Rio_Gallegos': {
+      name: 'America/Argentina/Rio_Gallegos',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'America/Argentina/Ushuaia': {
+      name: 'America/Argentina/Ushuaia',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'AR'
+      ]
+    },
+    'Pacific/Pago_Pago': {
+      name: 'Pacific/Pago_Pago',
+      utcOffset: -660,
+      offsetStr: '-11:00',
+      countries: [
+        'AS',
+        'UM'
+      ]
+    },
+    'Europe/Vienna': {
+      name: 'Europe/Vienna',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'AT'
+      ]
+    },
+    'Australia/Lord_Howe': {
+      name: 'Australia/Lord_Howe',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Antarctica/Macquarie': {
+      name: 'Antarctica/Macquarie',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Hobart': {
+      name: 'Australia/Hobart',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Currie': {
+      name: 'Australia/Currie',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Melbourne': {
+      name: 'Australia/Melbourne',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Sydney': {
+      name: 'Australia/Sydney',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Broken_Hill': {
+      name: 'Australia/Broken_Hill',
+      utcOffset: 630,
+      offsetStr: '+10:30',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Brisbane': {
+      name: 'Australia/Brisbane',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Lindeman': {
+      name: 'Australia/Lindeman',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Adelaide': {
+      name: 'Australia/Adelaide',
+      utcOffset: 630,
+      offsetStr: '+10:30',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Darwin': {
+      name: 'Australia/Darwin',
+      utcOffset: 570,
+      offsetStr: '+09:30',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Perth': {
+      name: 'Australia/Perth',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'AU'
+      ]
+    },
+    'Australia/Eucla': {
+      name: 'Australia/Eucla',
+      utcOffset: 525,
+      offsetStr: '+08:45',
+      countries: [
+        'AU'
+      ]
+    },
+    'Asia/Baku': {
+      name: 'Asia/Baku',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'AZ'
+      ]
+    },
+    'America/Barbados': {
+      name: 'America/Barbados',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'BB'
+      ]
+    },
+    'Asia/Dhaka': {
+      name: 'Asia/Dhaka',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'BD'
+      ]
+    },
+    'Europe/Brussels': {
+      name: 'Europe/Brussels',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'BE'
+      ]
+    },
+    'Europe/Sofia': {
+      name: 'Europe/Sofia',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'BG'
+      ]
+    },
+    'Atlantic/Bermuda': {
+      name: 'Atlantic/Bermuda',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'BM'
+      ]
+    },
+    'Asia/Brunei': {
+      name: 'Asia/Brunei',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'BN'
+      ]
+    },
+    'America/La_Paz': {
+      name: 'America/La_Paz',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'BO'
+      ]
+    },
+    'America/Noronha': {
+      name: 'America/Noronha',
+      utcOffset: -120,
+      offsetStr: '-02:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Belem': {
+      name: 'America/Belem',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Fortaleza': {
+      name: 'America/Fortaleza',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Recife': {
+      name: 'America/Recife',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Araguaina': {
+      name: 'America/Araguaina',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Maceio': {
+      name: 'America/Maceio',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Bahia': {
+      name: 'America/Bahia',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Sao_Paulo': {
+      name: 'America/Sao_Paulo',
+      utcOffset: -120,
+      offsetStr: '-02:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Campo_Grande': {
+      name: 'America/Campo_Grande',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Cuiaba': {
+      name: 'America/Cuiaba',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Santarem': {
+      name: 'America/Santarem',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Porto_Velho': {
+      name: 'America/Porto_Velho',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Boa_Vista': {
+      name: 'America/Boa_Vista',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Manaus': {
+      name: 'America/Manaus',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Eirunepe': {
+      name: 'America/Eirunepe',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Rio_Branco': {
+      name: 'America/Rio_Branco',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'BR'
+      ]
+    },
+    'America/Nassau': {
+      name: 'America/Nassau',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'BS'
+      ]
+    },
+    'Asia/Thimphu': {
+      name: 'Asia/Thimphu',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'BT'
+      ]
+    },
+    'Europe/Minsk': {
+      name: 'Europe/Minsk',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'BY'
+      ]
+    },
+    'America/Belize': {
+      name: 'America/Belize',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'BZ'
+      ]
+    },
+    'America/St_Johns': {
+      name: 'America/St_Johns',
+      utcOffset: -210,
+      offsetStr: '-03:30',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Halifax': {
+      name: 'America/Halifax',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Glace_Bay': {
+      name: 'America/Glace_Bay',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Moncton': {
+      name: 'America/Moncton',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Goose_Bay': {
+      name: 'America/Goose_Bay',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Blanc-Sablon': {
+      name: 'America/Blanc-Sablon',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Toronto': {
+      name: 'America/Toronto',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Nipigon': {
+      name: 'America/Nipigon',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Thunder_Bay': {
+      name: 'America/Thunder_Bay',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Iqaluit': {
+      name: 'America/Iqaluit',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Pangnirtung': {
+      name: 'America/Pangnirtung',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Resolute': {
+      name: 'America/Resolute',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Atikokan': {
+      name: 'America/Atikokan',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Rankin_Inlet': {
+      name: 'America/Rankin_Inlet',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Winnipeg': {
+      name: 'America/Winnipeg',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Rainy_River': {
+      name: 'America/Rainy_River',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Regina': {
+      name: 'America/Regina',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Swift_Current': {
+      name: 'America/Swift_Current',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Edmonton': {
+      name: 'America/Edmonton',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Cambridge_Bay': {
+      name: 'America/Cambridge_Bay',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Yellowknife': {
+      name: 'America/Yellowknife',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Inuvik': {
+      name: 'America/Inuvik',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Creston': {
+      name: 'America/Creston',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Dawson_Creek': {
+      name: 'America/Dawson_Creek',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Fort_Nelson': {
+      name: 'America/Fort_Nelson',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Vancouver': {
+      name: 'America/Vancouver',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Whitehorse': {
+      name: 'America/Whitehorse',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'America/Dawson': {
+      name: 'America/Dawson',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'CA'
+      ]
+    },
+    'Indian/Cocos': {
+      name: 'Indian/Cocos',
+      utcOffset: 390,
+      offsetStr: '+06:30',
+      countries: [
+        'CC'
+      ]
+    },
+    'Europe/Zurich': {
+      name: 'Europe/Zurich',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'CH',
+        'DE',
+        'LI'
+      ]
+    },
+    'Africa/Abidjan': {
+      name: 'Africa/Abidjan',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'CI',
+        'BF',
+        'GM',
+        'GN',
+        'ML',
+        'MR',
+        'SH',
+        'SL',
+        'SN',
+        'ST',
+        'TG'
+      ]
+    },
+    'Pacific/Rarotonga': {
+      name: 'Pacific/Rarotonga',
+      utcOffset: -600,
+      offsetStr: '-10:00',
+      countries: [
+        'CK'
+      ]
+    },
+    'America/Santiago': {
+      name: 'America/Santiago',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'CL'
+      ]
+    },
+    'Pacific/Easter': {
+      name: 'Pacific/Easter',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CL'
+      ]
+    },
+    'Asia/Shanghai': {
+      name: 'Asia/Shanghai',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'CN'
+      ]
+    },
+    'Asia/Urumqi': {
+      name: 'Asia/Urumqi',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'CN'
+      ]
+    },
+    'America/Bogota': {
+      name: 'America/Bogota',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CO'
+      ]
+    },
+    'America/Costa_Rica': {
+      name: 'America/Costa_Rica',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'CR'
+      ]
+    },
+    'America/Havana': {
+      name: 'America/Havana',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'CU'
+      ]
+    },
+    'Atlantic/Cape_Verde': {
+      name: 'Atlantic/Cape_Verde',
+      utcOffset: -60,
+      offsetStr: '-01:00',
+      countries: [
+        'CV'
+      ]
+    },
+    'America/Curacao': {
+      name: 'America/Curacao',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'CW',
+        'AW',
+        'BQ',
+        'SX'
+      ]
+    },
+    'Indian/Christmas': {
+      name: 'Indian/Christmas',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'CX'
+      ]
+    },
+    'Asia/Nicosia': {
+      name: 'Asia/Nicosia',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'CY'
+      ]
+    },
+    'Europe/Prague': {
+      name: 'Europe/Prague',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'CZ',
+        'SK'
+      ]
+    },
+    'Europe/Berlin': {
+      name: 'Europe/Berlin',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'DE'
+      ]
+    },
+    'Europe/Copenhagen': {
+      name: 'Europe/Copenhagen',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'DK'
+      ]
+    },
+    'America/Santo_Domingo': {
+      name: 'America/Santo_Domingo',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'DO'
+      ]
+    },
+    'Africa/Algiers': {
+      name: 'Africa/Algiers',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'DZ'
+      ]
+    },
+    'America/Guayaquil': {
+      name: 'America/Guayaquil',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'EC'
+      ]
+    },
+    'Pacific/Galapagos': {
+      name: 'Pacific/Galapagos',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'EC'
+      ]
+    },
+    'Europe/Tallinn': {
+      name: 'Europe/Tallinn',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'EE'
+      ]
+    },
+    'Africa/Cairo': {
+      name: 'Africa/Cairo',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'EG'
+      ]
+    },
+    'Africa/El_Aaiun': {
+      name: 'Africa/El_Aaiun',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'EH'
+      ]
+    },
+    'Europe/Madrid': {
+      name: 'Europe/Madrid',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'ES'
+      ]
+    },
+    'Africa/Ceuta': {
+      name: 'Africa/Ceuta',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'ES'
+      ]
+    },
+    'Atlantic/Canary': {
+      name: 'Atlantic/Canary',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'ES'
+      ]
+    },
+    'Europe/Helsinki': {
+      name: 'Europe/Helsinki',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'FI',
+        'AX'
+      ]
+    },
+    'Pacific/Fiji': {
+      name: 'Pacific/Fiji',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'FJ'
+      ]
+    },
+    'Atlantic/Stanley': {
+      name: 'Atlantic/Stanley',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'FK'
+      ]
+    },
+    'Pacific/Chuuk': {
+      name: 'Pacific/Chuuk',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'FM'
+      ]
+    },
+    'Pacific/Pohnpei': {
+      name: 'Pacific/Pohnpei',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'FM'
+      ]
+    },
+    'Pacific/Kosrae': {
+      name: 'Pacific/Kosrae',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'FM'
+      ]
+    },
+    'Atlantic/Faroe': {
+      name: 'Atlantic/Faroe',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'FO'
+      ]
+    },
+    'Europe/Paris': {
+      name: 'Europe/Paris',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'FR'
+      ]
+    },
+    'Europe/London': {
+      name: 'Europe/London',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'GB',
+        'GG',
+        'IM',
+        'JE'
+      ]
+    },
+    'Asia/Tbilisi': {
+      name: 'Asia/Tbilisi',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'GE'
+      ]
+    },
+    'America/Cayenne': {
+      name: 'America/Cayenne',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'GF'
+      ]
+    },
+    'Africa/Accra': {
+      name: 'Africa/Accra',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'GH'
+      ]
+    },
+    'Europe/Gibraltar': {
+      name: 'Europe/Gibraltar',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'GI'
+      ]
+    },
+    'America/Godthab': {
+      name: 'America/Godthab',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'GL'
+      ]
+    },
+    'America/Danmarkshavn': {
+      name: 'America/Danmarkshavn',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'GL'
+      ]
+    },
+    'America/Scoresbysund': {
+      name: 'America/Scoresbysund',
+      utcOffset: -60,
+      offsetStr: '-01:00',
+      countries: [
+        'GL'
+      ]
+    },
+    'America/Thule': {
+      name: 'America/Thule',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'GL'
+      ]
+    },
+    'Europe/Athens': {
+      name: 'Europe/Athens',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'GR'
+      ]
+    },
+    'Atlantic/South_Georgia': {
+      name: 'Atlantic/South_Georgia',
+      utcOffset: -120,
+      offsetStr: '-02:00',
+      countries: [
+        'GS'
+      ]
+    },
+    'America/Guatemala': {
+      name: 'America/Guatemala',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'GT'
+      ]
+    },
+    'Pacific/Guam': {
+      name: 'Pacific/Guam',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'GU',
+        'MP'
+      ]
+    },
+    'Africa/Bissau': {
+      name: 'Africa/Bissau',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'GW'
+      ]
+    },
+    'America/Guyana': {
+      name: 'America/Guyana',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'GY'
+      ]
+    },
+    'Asia/Hong_Kong': {
+      name: 'Asia/Hong_Kong',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'HK'
+      ]
+    },
+    'America/Tegucigalpa': {
+      name: 'America/Tegucigalpa',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'HN'
+      ]
+    },
+    'America/Port-au-Prince': {
+      name: 'America/Port-au-Prince',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'HT'
+      ]
+    },
+    'Europe/Budapest': {
+      name: 'Europe/Budapest',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'HU'
+      ]
+    },
+    'Asia/Jakarta': {
+      name: 'Asia/Jakarta',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'ID'
+      ]
+    },
+    'Asia/Pontianak': {
+      name: 'Asia/Pontianak',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'ID'
+      ]
+    },
+    'Asia/Makassar': {
+      name: 'Asia/Makassar',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'ID'
+      ]
+    },
+    'Asia/Jayapura': {
+      name: 'Asia/Jayapura',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'ID'
+      ]
+    },
+    'Europe/Dublin': {
+      name: 'Europe/Dublin',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'IE'
+      ]
+    },
+    'Asia/Jerusalem': {
+      name: 'Asia/Jerusalem',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'IL'
+      ]
+    },
+    'Asia/Kolkata': {
+      name: 'Asia/Kolkata',
+      utcOffset: 330,
+      offsetStr: '+05:30',
+      countries: [
+        'IN'
+      ]
+    },
+    'Indian/Chagos': {
+      name: 'Indian/Chagos',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'IO'
+      ]
+    },
+    'Asia/Baghdad': {
+      name: 'Asia/Baghdad',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'IQ'
+      ]
+    },
+    'Asia/Tehran': {
+      name: 'Asia/Tehran',
+      utcOffset: 210,
+      offsetStr: '+03:30',
+      countries: [
+        'IR'
+      ]
+    },
+    'Atlantic/Reykjavik': {
+      name: 'Atlantic/Reykjavik',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'IS'
+      ]
+    },
+    'Europe/Rome': {
+      name: 'Europe/Rome',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'IT',
+        'SM',
+        'VA'
+      ]
+    },
+    'America/Jamaica': {
+      name: 'America/Jamaica',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'JM'
+      ]
+    },
+    'Asia/Amman': {
+      name: 'Asia/Amman',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'JO'
+      ]
+    },
+    'Asia/Tokyo': {
+      name: 'Asia/Tokyo',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'JP'
+      ]
+    },
+    'Africa/Nairobi': {
+      name: 'Africa/Nairobi',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'KE',
+        'DJ',
+        'ER',
+        'ET',
+        'KM',
+        'MG',
+        'SO',
+        'TZ',
+        'UG',
+        'YT'
+      ]
+    },
+    'Asia/Bishkek': {
+      name: 'Asia/Bishkek',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'KG'
+      ]
+    },
+    'Pacific/Tarawa': {
+      name: 'Pacific/Tarawa',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'KI'
+      ]
+    },
+    'Pacific/Enderbury': {
+      name: 'Pacific/Enderbury',
+      utcOffset: 780,
+      offsetStr: '+13:00',
+      countries: [
+        'KI'
+      ]
+    },
+    'Pacific/Kiritimati': {
+      name: 'Pacific/Kiritimati',
+      utcOffset: 840,
+      offsetStr: '+14:00',
+      countries: [
+        'KI'
+      ]
+    },
+    'Asia/Pyongyang': {
+      name: 'Asia/Pyongyang',
+      utcOffset: 510,
+      offsetStr: '+08:30',
+      countries: [
+        'KP'
+      ]
+    },
+    'Asia/Seoul': {
+      name: 'Asia/Seoul',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'KR'
+      ]
+    },
+    'America/Cayman': {
+      name: 'America/Cayman',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'KY'
+      ]
+    },
+    'Asia/Almaty': {
+      name: 'Asia/Almaty',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'KZ'
+      ]
+    },
+    'Asia/Qyzylorda': {
+      name: 'Asia/Qyzylorda',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'KZ'
+      ]
+    },
+    'Asia/Aqtobe': {
+      name: 'Asia/Aqtobe',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'KZ'
+      ]
+    },
+    'Asia/Aqtau': {
+      name: 'Asia/Aqtau',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'KZ'
+      ]
+    },
+    'Asia/Oral': {
+      name: 'Asia/Oral',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'KZ'
+      ]
+    },
+    'Asia/Beirut': {
+      name: 'Asia/Beirut',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'LB'
+      ]
+    },
+    'Asia/Colombo': {
+      name: 'Asia/Colombo',
+      utcOffset: 330,
+      offsetStr: '+05:30',
+      countries: [
+        'LK'
+      ]
+    },
+    'Africa/Monrovia': {
+      name: 'Africa/Monrovia',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'LR'
+      ]
+    },
+    'Europe/Vilnius': {
+      name: 'Europe/Vilnius',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'LT'
+      ]
+    },
+    'Europe/Luxembourg': {
+      name: 'Europe/Luxembourg',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'LU'
+      ]
+    },
+    'Europe/Riga': {
+      name: 'Europe/Riga',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'LV'
+      ]
+    },
+    'Africa/Tripoli': {
+      name: 'Africa/Tripoli',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'LY'
+      ]
+    },
+    'Africa/Casablanca': {
+      name: 'Africa/Casablanca',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'MA'
+      ]
+    },
+    'Europe/Monaco': {
+      name: 'Europe/Monaco',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'MC'
+      ]
+    },
+    'Europe/Chisinau': {
+      name: 'Europe/Chisinau',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'MD'
+      ]
+    },
+    'Pacific/Majuro': {
+      name: 'Pacific/Majuro',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'MH'
+      ]
+    },
+    'Pacific/Kwajalein': {
+      name: 'Pacific/Kwajalein',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'MH'
+      ]
+    },
+    'Asia/Rangoon': {
+      name: 'Asia/Rangoon',
+      utcOffset: 390,
+      offsetStr: '+06:30',
+      countries: [
+        'MM'
+      ]
+    },
+    'Asia/Ulaanbaatar': {
+      name: 'Asia/Ulaanbaatar',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'MN'
+      ]
+    },
+    'Asia/Hovd': {
+      name: 'Asia/Hovd',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'MN'
+      ]
+    },
+    'Asia/Choibalsan': {
+      name: 'Asia/Choibalsan',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'MN'
+      ]
+    },
+    'Asia/Macau': {
+      name: 'Asia/Macau',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'MO'
+      ]
+    },
+    'America/Martinique': {
+      name: 'America/Martinique',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'MQ'
+      ]
+    },
+    'Europe/Malta': {
+      name: 'Europe/Malta',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'MT'
+      ]
+    },
+    'Indian/Mauritius': {
+      name: 'Indian/Mauritius',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'MU'
+      ]
+    },
+    'Indian/Maldives': {
+      name: 'Indian/Maldives',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'MV'
+      ]
+    },
+    'America/Mexico_City': {
+      name: 'America/Mexico_City',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Cancun': {
+      name: 'America/Cancun',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Merida': {
+      name: 'America/Merida',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Monterrey': {
+      name: 'America/Monterrey',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Matamoros': {
+      name: 'America/Matamoros',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Mazatlan': {
+      name: 'America/Mazatlan',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Chihuahua': {
+      name: 'America/Chihuahua',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Ojinaga': {
+      name: 'America/Ojinaga',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Hermosillo': {
+      name: 'America/Hermosillo',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Tijuana': {
+      name: 'America/Tijuana',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Santa_Isabel': {
+      name: 'America/Santa_Isabel',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'America/Bahia_Banderas': {
+      name: 'America/Bahia_Banderas',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'MX'
+      ]
+    },
+    'Asia/Kuala_Lumpur': {
+      name: 'Asia/Kuala_Lumpur',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'MY'
+      ]
+    },
+    'Asia/Kuching': {
+      name: 'Asia/Kuching',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'MY'
+      ]
+    },
+    'Africa/Maputo': {
+      name: 'Africa/Maputo',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'MZ',
+        'BI',
+        'BW',
+        'CD',
+        'MW',
+        'RW',
+        'ZM',
+        'ZW'
+      ]
+    },
+    'Africa/Windhoek': {
+      name: 'Africa/Windhoek',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'NA'
+      ]
+    },
+    'Pacific/Noumea': {
+      name: 'Pacific/Noumea',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'NC'
+      ]
+    },
+    'Pacific/Norfolk': {
+      name: 'Pacific/Norfolk',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'NF'
+      ]
+    },
+    'Africa/Lagos': {
+      name: 'Africa/Lagos',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'NG',
+        'AO',
+        'BJ',
+        'CD',
+        'CF',
+        'CG',
+        'CM',
+        'GA',
+        'GQ',
+        'NE'
+      ]
+    },
+    'America/Managua': {
+      name: 'America/Managua',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'NI'
+      ]
+    },
+    'Europe/Amsterdam': {
+      name: 'Europe/Amsterdam',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'NL'
+      ]
+    },
+    'Europe/Oslo': {
+      name: 'Europe/Oslo',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'NO',
+        'SJ'
+      ]
+    },
+    'Asia/Kathmandu': {
+      name: 'Asia/Kathmandu',
+      utcOffset: 345,
+      offsetStr: '+05:45',
+      countries: [
+        'NP'
+      ]
+    },
+    'Pacific/Nauru': {
+      name: 'Pacific/Nauru',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'NR'
+      ]
+    },
+    'Pacific/Niue': {
+      name: 'Pacific/Niue',
+      utcOffset: -660,
+      offsetStr: '-11:00',
+      countries: [
+        'NU'
+      ]
+    },
+    'Pacific/Auckland': {
+      name: 'Pacific/Auckland',
+      utcOffset: 780,
+      offsetStr: '+13:00',
+      countries: [
+        'NZ',
+        'AQ'
+      ]
+    },
+    'Pacific/Chatham': {
+      name: 'Pacific/Chatham',
+      utcOffset: 825,
+      offsetStr: '+13:45',
+      countries: [
+        'NZ'
+      ]
+    },
+    'America/Panama': {
+      name: 'America/Panama',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'PA'
+      ]
+    },
+    'America/Lima': {
+      name: 'America/Lima',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'PE'
+      ]
+    },
+    'Pacific/Tahiti': {
+      name: 'Pacific/Tahiti',
+      utcOffset: -600,
+      offsetStr: '-10:00',
+      countries: [
+        'PF'
+      ]
+    },
+    'Pacific/Marquesas': {
+      name: 'Pacific/Marquesas',
+      utcOffset: -570,
+      offsetStr: '-09:30',
+      countries: [
+        'PF'
+      ]
+    },
+    'Pacific/Gambier': {
+      name: 'Pacific/Gambier',
+      utcOffset: -540,
+      offsetStr: '-09:00',
+      countries: [
+        'PF'
+      ]
+    },
+    'Pacific/Port_Moresby': {
+      name: 'Pacific/Port_Moresby',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'PG'
+      ]
+    },
+    'Pacific/Bougainville': {
+      name: 'Pacific/Bougainville',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'PG'
+      ]
+    },
+    'Asia/Manila': {
+      name: 'Asia/Manila',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'PH'
+      ]
+    },
+    'Asia/Karachi': {
+      name: 'Asia/Karachi',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'PK'
+      ]
+    },
+    'Europe/Warsaw': {
+      name: 'Europe/Warsaw',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'PL'
+      ]
+    },
+    'America/Miquelon': {
+      name: 'America/Miquelon',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'PM'
+      ]
+    },
+    'Pacific/Pitcairn': {
+      name: 'Pacific/Pitcairn',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'PN'
+      ]
+    },
+    'America/Puerto_Rico': {
+      name: 'America/Puerto_Rico',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'PR'
+      ]
+    },
+    'Asia/Gaza': {
+      name: 'Asia/Gaza',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'PS'
+      ]
+    },
+    'Asia/Hebron': {
+      name: 'Asia/Hebron',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'PS'
+      ]
+    },
+    'Europe/Lisbon': {
+      name: 'Europe/Lisbon',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'PT'
+      ]
+    },
+    'Atlantic/Madeira': {
+      name: 'Atlantic/Madeira',
+      utcOffset: 0,
+      offsetStr: '+00:00',
+      countries: [
+        'PT'
+      ]
+    },
+    'Atlantic/Azores': {
+      name: 'Atlantic/Azores',
+      utcOffset: -60,
+      offsetStr: '-01:00',
+      countries: [
+        'PT'
+      ]
+    },
+    'Pacific/Palau': {
+      name: 'Pacific/Palau',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'PW'
+      ]
+    },
+    'America/Asuncion': {
+      name: 'America/Asuncion',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'PY'
+      ]
+    },
+    'Asia/Qatar': {
+      name: 'Asia/Qatar',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'QA',
+        'BH'
+      ]
+    },
+    'Indian/Reunion': {
+      name: 'Indian/Reunion',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'RE',
+        'TF'
+      ]
+    },
+    'Europe/Bucharest': {
+      name: 'Europe/Bucharest',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'RO'
+      ]
+    },
+    'Europe/Belgrade': {
+      name: 'Europe/Belgrade',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'RS',
+        'BA',
+        'HR',
+        'ME',
+        'MK',
+        'SI'
+      ]
+    },
+    'Europe/Kaliningrad': {
+      name: 'Europe/Kaliningrad',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Europe/Moscow': {
+      name: 'Europe/Moscow',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Europe/Simferopol': {
+      name: 'Europe/Simferopol',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Europe/Volgograd': {
+      name: 'Europe/Volgograd',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Europe/Samara': {
+      name: 'Europe/Samara',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Yekaterinburg': {
+      name: 'Asia/Yekaterinburg',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Omsk': {
+      name: 'Asia/Omsk',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Novosibirsk': {
+      name: 'Asia/Novosibirsk',
+      utcOffset: 360,
+      offsetStr: '+06:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Novokuznetsk': {
+      name: 'Asia/Novokuznetsk',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Krasnoyarsk': {
+      name: 'Asia/Krasnoyarsk',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Irkutsk': {
+      name: 'Asia/Irkutsk',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Chita': {
+      name: 'Asia/Chita',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Yakutsk': {
+      name: 'Asia/Yakutsk',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Khandyga': {
+      name: 'Asia/Khandyga',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Vladivostok': {
+      name: 'Asia/Vladivostok',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Sakhalin': {
+      name: 'Asia/Sakhalin',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Ust-Nera': {
+      name: 'Asia/Ust-Nera',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Magadan': {
+      name: 'Asia/Magadan',
+      utcOffset: 600,
+      offsetStr: '+10:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Srednekolymsk': {
+      name: 'Asia/Srednekolymsk',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Kamchatka': {
+      name: 'Asia/Kamchatka',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Anadyr': {
+      name: 'Asia/Anadyr',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'RU'
+      ]
+    },
+    'Asia/Riyadh': {
+      name: 'Asia/Riyadh',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'SA',
+        'KW',
+        'YE'
+      ]
+    },
+    'Pacific/Guadalcanal': {
+      name: 'Pacific/Guadalcanal',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'SB'
+      ]
+    },
+    'Indian/Mahe': {
+      name: 'Indian/Mahe',
+      utcOffset: 240,
+      offsetStr: '+04:00',
+      countries: [
+        'SC'
+      ]
+    },
+    'Africa/Khartoum': {
+      name: 'Africa/Khartoum',
+      utcOffset: 180,
+      offsetStr: '+03:00',
+      countries: [
+        'SD',
+        'SS'
+      ]
+    },
+    'Europe/Stockholm': {
+      name: 'Europe/Stockholm',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'SE'
+      ]
+    },
+    'Asia/Singapore': {
+      name: 'Asia/Singapore',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'SG'
+      ]
+    },
+    'America/Paramaribo': {
+      name: 'America/Paramaribo',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'SR'
+      ]
+    },
+    'America/El_Salvador': {
+      name: 'America/El_Salvador',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'SV'
+      ]
+    },
+    'Asia/Damascus': {
+      name: 'Asia/Damascus',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'SY'
+      ]
+    },
+    'America/Grand_Turk': {
+      name: 'America/Grand_Turk',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'TC'
+      ]
+    },
+    'Africa/Ndjamena': {
+      name: 'Africa/Ndjamena',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'TD'
+      ]
+    },
+    'Indian/Kerguelen': {
+      name: 'Indian/Kerguelen',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'TF'
+      ]
+    },
+    'Asia/Bangkok': {
+      name: 'Asia/Bangkok',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'TH',
+        'KH',
+        'LA',
+        'VN'
+      ]
+    },
+    'Asia/Dushanbe': {
+      name: 'Asia/Dushanbe',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'TJ'
+      ]
+    },
+    'Pacific/Fakaofo': {
+      name: 'Pacific/Fakaofo',
+      utcOffset: 780,
+      offsetStr: '+13:00',
+      countries: [
+        'TK'
+      ]
+    },
+    'Asia/Dili': {
+      name: 'Asia/Dili',
+      utcOffset: 540,
+      offsetStr: '+09:00',
+      countries: [
+        'TL'
+      ]
+    },
+    'Asia/Ashgabat': {
+      name: 'Asia/Ashgabat',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'TM'
+      ]
+    },
+    'Africa/Tunis': {
+      name: 'Africa/Tunis',
+      utcOffset: 60,
+      offsetStr: '+01:00',
+      countries: [
+        'TN'
+      ]
+    },
+    'Pacific/Tongatapu': {
+      name: 'Pacific/Tongatapu',
+      utcOffset: 780,
+      offsetStr: '+13:00',
+      countries: [
+        'TO'
+      ]
+    },
+    'Europe/Istanbul': {
+      name: 'Europe/Istanbul',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'TR'
+      ]
+    },
+    'America/Port_of_Spain': {
+      name: 'America/Port_of_Spain',
+      utcOffset: -240,
+      offsetStr: '-04:00',
+      countries: [
+        'TT',
+        'AG',
+        'AI',
+        'BL',
+        'DM',
+        'GD',
+        'GP',
+        'KN',
+        'LC',
+        'MF',
+        'MS',
+        'VC',
+        'VG',
+        'VI'
+      ]
+    },
+    'Pacific/Funafuti': {
+      name: 'Pacific/Funafuti',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'TV'
+      ]
+    },
+    'Asia/Taipei': {
+      name: 'Asia/Taipei',
+      utcOffset: 480,
+      offsetStr: '+08:00',
+      countries: [
+        'TW'
+      ]
+    },
+    'Europe/Kiev': {
+      name: 'Europe/Kiev',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'UA'
+      ]
+    },
+    'Europe/Uzhgorod': {
+      name: 'Europe/Uzhgorod',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'UA'
+      ]
+    },
+    'Europe/Zaporozhye': {
+      name: 'Europe/Zaporozhye',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'UA'
+      ]
+    },
+    'Pacific/Wake': {
+      name: 'Pacific/Wake',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'UM'
+      ]
+    },
+    'America/New_York': {
+      name: 'America/New_York',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Detroit': {
+      name: 'America/Detroit',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Kentucky/Louisville': {
+      name: 'America/Kentucky/Louisville',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Kentucky/Monticello': {
+      name: 'America/Kentucky/Monticello',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Indianapolis': {
+      name: 'America/Indiana/Indianapolis',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Vincennes': {
+      name: 'America/Indiana/Vincennes',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Winamac': {
+      name: 'America/Indiana/Winamac',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Marengo': {
+      name: 'America/Indiana/Marengo',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Petersburg': {
+      name: 'America/Indiana/Petersburg',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Vevay': {
+      name: 'America/Indiana/Vevay',
+      utcOffset: -300,
+      offsetStr: '-05:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Chicago': {
+      name: 'America/Chicago',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Tell_City': {
+      name: 'America/Indiana/Tell_City',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Indiana/Knox': {
+      name: 'America/Indiana/Knox',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Menominee': {
+      name: 'America/Menominee',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/North_Dakota/Center': {
+      name: 'America/North_Dakota/Center',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/North_Dakota/New_Salem': {
+      name: 'America/North_Dakota/New_Salem',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/North_Dakota/Beulah': {
+      name: 'America/North_Dakota/Beulah',
+      utcOffset: -360,
+      offsetStr: '-06:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Denver': {
+      name: 'America/Denver',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Boise': {
+      name: 'America/Boise',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Phoenix': {
+      name: 'America/Phoenix',
+      utcOffset: -420,
+      offsetStr: '-07:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Los_Angeles': {
+      name: 'America/Los_Angeles',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Metlakatla': {
+      name: 'America/Metlakatla',
+      utcOffset: -480,
+      offsetStr: '-08:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Anchorage': {
+      name: 'America/Anchorage',
+      utcOffset: -540,
+      offsetStr: '-09:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Juneau': {
+      name: 'America/Juneau',
+      utcOffset: -540,
+      offsetStr: '-09:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Sitka': {
+      name: 'America/Sitka',
+      utcOffset: -540,
+      offsetStr: '-09:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Yakutat': {
+      name: 'America/Yakutat',
+      utcOffset: -540,
+      offsetStr: '-09:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Nome': {
+      name: 'America/Nome',
+      utcOffset: -540,
+      offsetStr: '-09:00',
+      countries: [
+        'US'
+      ]
+    },
+    'America/Adak': {
+      name: 'America/Adak',
+      utcOffset: -600,
+      offsetStr: '-10:00',
+      countries: [
+        'US'
+      ]
+    },
+    'Pacific/Honolulu': {
+      name: 'Pacific/Honolulu',
+      utcOffset: -600,
+      offsetStr: '-10:00',
+      countries: [
+        'US',
+        'UM'
+      ]
+    },
+    'America/Montevideo': {
+      name: 'America/Montevideo',
+      utcOffset: -180,
+      offsetStr: '-03:00',
+      countries: [
+        'UY'
+      ]
+    },
+    'Asia/Samarkand': {
+      name: 'Asia/Samarkand',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'UZ'
+      ]
+    },
+    'Asia/Tashkent': {
+      name: 'Asia/Tashkent',
+      utcOffset: 300,
+      offsetStr: '+05:00',
+      countries: [
+        'UZ'
+      ]
+    },
+    'America/Caracas': {
+      name: 'America/Caracas',
+      utcOffset: -270,
+      offsetStr: '-04:30',
+      countries: [
+        'VE'
+      ]
+    },
+    'Asia/Ho_Chi_Minh': {
+      name: 'Asia/Ho_Chi_Minh',
+      utcOffset: 420,
+      offsetStr: '+07:00',
+      countries: [
+        'VN'
+      ]
+    },
+    'Pacific/Efate': {
+      name: 'Pacific/Efate',
+      utcOffset: 660,
+      offsetStr: '+11:00',
+      countries: [
+        'VU'
+      ]
+    },
+    'Pacific/Wallis': {
+      name: 'Pacific/Wallis',
+      utcOffset: 720,
+      offsetStr: '+12:00',
+      countries: [
+        'WF'
+      ]
+    },
+    'Pacific/Apia': {
+      name: 'Pacific/Apia',
+      utcOffset: 840,
+      offsetStr: '+14:00',
+      countries: [
+        'WS'
+      ]
+    },
+    'Africa/Johannesburg': {
+      name: 'Africa/Johannesburg',
+      utcOffset: 120,
+      offsetStr: '+02:00',
+      countries: [
+        'ZA',
+        'LS',
+        'SZ'
+      ]
+    }
+  }
+};
\ No newline at end of file
diff --git a/server/config/express.js b/server/config/express.js
new file mode 100644
index 0000000..9c4446d
--- /dev/null
+++ b/server/config/express.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/license/hardware.js b/server/config/license/hardware.js
new file mode 100644
index 0000000..154677c
--- /dev/null
+++ b/server/config/license/hardware.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/license/index.js b/server/config/license/index.js
new file mode 100644
index 0000000..1ac73c7
--- /dev/null
+++ b/server/config/license/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/license/util.js b/server/config/license/util.js
new file mode 100644
index 0000000..d3b841c
--- /dev/null
+++ b/server/config/license/util.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/local.env.js b/server/config/local.env.js
new file mode 100644
index 0000000..ba56432
--- /dev/null
+++ b/server/config/local.env.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/logger.js b/server/config/logger.js
new file mode 100644
index 0000000..3e69a58
--- /dev/null
+++ b/server/config/logger.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x64ca=['fileLogger','../utils/loggers'];(function(_0x458bf4,_0x42cf71){var _0x1ec4b9=function(_0x37e63a){while(--_0x37e63a){_0x458bf4['push'](_0x458bf4['shift']());}};_0x1ec4b9(++_0x42cf71);}(_0x64ca,0xc7));var _0xa64c=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x64ca[_0x2f5ac5];return _0x37c9a8;};'use strict';var fileLogger=require(_0xa64c('0x0'))[_0xa64c('0x1')];module['exports']=fileLogger;
\ No newline at end of file
diff --git a/server/config/pm2/config.js b/server/config/pm2/config.js
new file mode 100644
index 0000000..c334964
--- /dev/null
+++ b/server/config/pm2/config.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/pm2/index.js b/server/config/pm2/index.js
new file mode 100644
index 0000000..25c7634
--- /dev/null
+++ b/server/config/pm2/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/schedule/chat.js b/server/config/schedule/chat.js
new file mode 100644
index 0000000..3b3e394
--- /dev/null
+++ b/server/config/schedule/chat.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/schedule/cloud-provider.js b/server/config/schedule/cloud-provider.js
new file mode 100644
index 0000000..b881637
--- /dev/null
+++ b/server/config/schedule/cloud-provider.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/schedule/index.js b/server/config/schedule/index.js
new file mode 100644
index 0000000..1e2bd76
--- /dev/null
+++ b/server/config/schedule/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/schedule/transcribe.js b/server/config/schedule/transcribe.js
new file mode 100644
index 0000000..6e1c522
--- /dev/null
+++ b/server/config/schedule/transcribe.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/schedule/whatsapp.js b/server/config/schedule/whatsapp.js
new file mode 100644
index 0000000..8f6690f
--- /dev/null
+++ b/server/config/schedule/whatsapp.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/seedContact.js b/server/config/seedContact.js
new file mode 100644
index 0000000..548367b
--- /dev/null
+++ b/server/config/seedContact.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/seedDB/analyticReports.js b/server/config/seedDB/analyticReports.js
new file mode 100644
index 0000000..6eb548d
--- /dev/null
+++ b/server/config/seedDB/analyticReports.js
@@ -0,0 +1,67 @@
+'use strict';
+var util = require('util');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var report = require('./report');
+
+exports.createDefault = function() {
+  // Remove default report
+  return db.AnalyticDefaultReport
+    .destroy({
+      where: {}
+    })
+    .then(function() {
+      return db.AnalyticDefaultReport.bulkCreate(report.default('motion'), {
+        ignoreDuplicates: true,
+        individualHooks: true
+      });
+    })
+    .then(function(entities) {
+      var fields = report.fields();
+      for (var i = 0; i < entities.length; i += 1) {
+        if (fields[entities[i].id]) {
+          for (var j = 0; j < fields[entities[i].id].length; j += 1) {
+            fields[entities[i].id][j].DefaultReportId = fields[entities[i].id][j].ReportId;
+            delete fields[entities[i].id][j].ReportId;
+            //db.AnalyticFieldReport.create(fields[entities[i].id][j]);
+          }
+          db.AnalyticFieldReport.bulkCreate(fields[entities[i].id]);
+        }
+      }
+    })
+    .then(function() {
+      logger.info('Analytic Default Reports have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Analytic Default Report', err.message);
+    });
+};
+
+exports.createCustom = function() {
+  return db.AnalyticCustomReport
+    .bulkCreate(report.default('custom'), {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function(entities) {
+      var fields = report.fields();
+      for (var i = 0; i < entities.length; i += 1) {
+        if (fields[entities[i].id]) {
+          for (var j = 0; j < fields[entities[i].id].length; j += 1) {
+            fields[entities[i].id][j].CustomReportId = fields[entities[i].id][j].ReportId;
+            delete fields[entities[i].id][j].ReportId;
+            // db.AnalyticFieldReport.create(fields[entities[i].id][j]);
+          }
+          db.AnalyticFieldReport.bulkCreate(fields[entities[i].id]);
+        }
+      }
+    })
+    .then(function() {
+      logger.info('Analytic Custom Reports have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Analytic Custom Report');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/analyticTreeReports.js b/server/config/seedDB/analyticTreeReports.js
new file mode 100644
index 0000000..3049118
--- /dev/null
+++ b/server/config/seedDB/analyticTreeReports.js
@@ -0,0 +1,50 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var tree = require('./tree');
+
+exports.createDefault = function() {
+  return db.AnalyticTreeReport
+    .findOrCreate({
+      where: {
+        id: 1
+      },
+      defaults: {
+        id: 1,
+        tree: JSON.stringify(tree.motion)
+      }
+    })
+    .spread(function(entity, created) {
+      if (!created) {
+        return entity.update({
+          tree: JSON.stringify(tree.motion)
+        });
+      }
+      return entity;
+    })
+    .then(function() {
+      logger.info('Analytic Tree Default Reports have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Analytic Tree Default Report');
+    });
+};
+
+exports.createCustom = function() {
+  return db.AnalyticTreeReport
+    .bulkCreate([{
+      id: 2,
+      tree: JSON.stringify(tree.custom)
+    }], {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Analytic Tree Custom Reports have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Analytic Tree Custom Report');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/chanspy.js b/server/config/seedDB/chanspy.js
new file mode 100644
index 0000000..df77f4e
--- /dev/null
+++ b/server/config/seedDB/chanspy.js
@@ -0,0 +1,44 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var chanSpy = [{
+  id: 1,
+  name: 'Listen&TalkOne',
+  prefix: 'spy1',
+  options: ['b', 'w', 'E', 'S'],
+  description: 'The supervisor can listen and talk to the agent. The customer will not listen to the supervisor voice',
+}, {
+  id: 2,
+  name: 'OnlyListen',
+  prefix: 'spy2',
+  options: ['b', 'o', 'E', 'S'],
+  description: 'The supervisor can only listen the agent channel (neither the agent nor the customer will listen to the supervisor voice)',
+}, {
+  id: 3,
+  name: 'Listen&TalkBoth',
+  prefix: 'spy3',
+  options: ['B', 'w', 'E', 'S'],
+  description: 'The supervisor can listen and talk both to the agent and to the customer, like a pure 3 way conference room',
+}, {
+  id: 4,
+  name: 'OnlyListenBoth',
+  prefix: 'spy4',
+  options: ['B', 'o', 'E', 'S'],
+  description: 'The supervisor can just listen to the phone call',
+}];
+
+exports.create = function() {
+  return db.VoiceChanSpy
+    .bulkCreate(chanSpy, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('ChanSpy have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create ChanSpy');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/companies.js b/server/config/seedDB/companies.js
new file mode 100644
index 0000000..2256913
--- /dev/null
+++ b/server/config/seedDB/companies.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var companies = [{
+  id: 1,
+  name: 'Xenialab',
+  type: 'srl',
+  vat: '09668910012',
+  phone: '+3901119886500',
+  fax: '+390110960070',
+  website: 'www.xcallymotion.com',
+  email: [email-masked]',
+  emailDomain: 'xcally.com',
+  street: 'Corso Vittorio Emanuele II, 111',
+  postalCode: '10128',
+  city: 'Turin',
+  country: 'Italy',
+  description: 'company auto generated'
+}];
+
+exports.create = function() {
+  return db.CmCompany
+    .bulkCreate(companies, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Companies have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Companies');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/contacts.js b/server/config/seedDB/contacts.js
new file mode 100644
index 0000000..220dbcf
--- /dev/null
+++ b/server/config/seedDB/contacts.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var tags = require('./tags');
+
+// See tags file
+var tags = tags.getNames();
+var getRandomTag = function() {
+  var length = tags.length - 1;
+  return [tags[Math.floor(Math.random() * length) + 1]];
+};
+
+var contacts = [{
+  id: 1,
+  firstName: 'Mario',
+  lastName: 'Rossi',
+  phone: '123',
+  email: [email-masked]',
+  ListId: 1,
+  CompanyId: 1,
+  tags: getRandomTag(),
+  description: 'contact auto generated'
+}, {
+  id: 2,
+  firstName: 'Giuseppe',
+  lastName: 'Verdi',
+  phone: '456',
+  email: [email-masked]',
+  ListId: 1,
+  CompanyId: 1,
+  tags: getRandomTag(),
+  description: 'contact auto generated'
+}, {
+  id: 3,
+  firstName: 'Andrea',
+  lastName: 'Bianco',
+  phone: '789',
+  email: [email-masked]',
+  ListId: 2,
+  CompanyId: 1,
+  tags: getRandomTag(),
+  description: 'contact auto generated'
+}];
+
+exports.create = function() {
+  return db.CmContact
+    .bulkCreate(contacts, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Contacts have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Contacts');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/dispositions.js b/server/config/seedDB/dispositions.js
new file mode 100644
index 0000000..31ed254
--- /dev/null
+++ b/server/config/seedDB/dispositions.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var dispositions = [{
+  name: 'Fax'
+}, {
+  name: 'Answer Machine'
+}, {
+  name: 'Interested'
+}, {
+  name: 'Not Interested'
+}, {
+  name: 'Sold'
+}, {
+  name: 'Special'
+}];
+
+exports.create = function() {
+  return db.Disposition
+    .bulkCreate(dispositions, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Dispositions have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Companies');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/index.js b/server/config/seedDB/index.js
new file mode 100644
index 0000000..cc7d663
--- /dev/null
+++ b/server/config/seedDB/index.js
@@ -0,0 +1,70 @@
+/**
+ * Populate DB with sample data on server start
+ * to disable, edit config/environment/index.js, and set `seedDB: false`
+ */
+
+'use strict';
+
+var BPromise = require('bluebird');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var defaultSeed = function() {
+  return db.Setting
+    .findOrCreate({
+      where: {
+        id: 1
+      },
+      defaults: {
+        firstSetup: true
+      }
+    })
+    .spread(function(settings, created) {
+
+      if (created) {
+        // NOTE: Run only first installation
+        logger.info('Settings have been created');
+
+        require('./analyticTreeReports').createCustom();
+        require('./analyticReports').createCustom();
+        require('./migrations').create();
+        require('./intervals').create();
+        require('./userProfiles').create();
+        require('./users').create();
+        require('./teams').create();
+        require('./trunks').create();
+        require('./voiceQueues').create();
+        require('./chanspy').create();
+        require('./voiceMusicOnHold').create();
+        require('./variables').create();
+        require('./pauses').create();
+        require('./tags').create();
+        require('./companies').create();
+        require('./sounds').create();
+        require('./squareOdbc').create();
+        require('./squareProjects').create();
+        require('./jscriptyProjects').create();
+        require('./voiceExtensions').create();
+        require('./mailSubstatuses').create();
+        require('./dispositions').create();
+        return require('./lists').create()
+          .then(function() {
+            return require('./contacts').create();
+          });
+      }
+    })
+    .then(function() {
+      // NOTE: Run always
+      require('./voiceContexts').create();
+      require('./voiceExtensions').createAlways();
+      require('./mailAccounts').create();
+      require('./analyticTreeReports').createDefault();
+      require('./analyticReports').createDefault();
+    })
+    .catch(function(err) {
+      logger.error(JSON.stringify(err));
+    });
+};
+
+exports.default = defaultSeed;
\ No newline at end of file
diff --git a/server/config/seedDB/intervals.js b/server/config/seedDB/intervals.js
new file mode 100644
index 0000000..806fdbd
--- /dev/null
+++ b/server/config/seedDB/intervals.js
@@ -0,0 +1,69 @@
+'use strict';
+
+var _ = require('lodash');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var subIntervals = {
+  'WorkingTime': [{
+    name: 'Morning',
+    interval: '09:00-13:00,mon-fri,*,*'
+  }, {
+    name: 'Afternoon',
+    interval: '14:00-18:00,mon-fri,*,*'
+  }],
+  'Holidays': [{
+    name: 'Christmas',
+    interval: '*,*,25,dec'
+  }, {
+    name: 'NewYear',
+    interval: '*,*,1,jan'
+  }, {
+    name: 'Valentines',
+    interval: '*,*,14,feb'
+  }, {
+    name: 'Halloween',
+    interval: '*,*,31,oct'
+  }]
+};
+
+var intervals = [{
+  id: 1,
+  name: 'WorkingTime',
+  description: 'working time auto generated'
+}, {
+  id: 2,
+  name: 'Holidays',
+  description: 'working time auto generated'
+}];
+
+exports.create = function() {
+  return db.Interval
+    .bulkCreate(intervals, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function(entities) {
+      for (var i = 0; i < entities.length; i += 1) {
+        if (subIntervals[entities[i].name]) {
+          for (var j = 0; j < subIntervals[entities[i].name].length; j += 1) {
+
+            subIntervals[entities[i].name][j] = _.defaults(subIntervals[entities[i].name][j], {
+              description: entities[i].description,
+              IntervalId: entities[i].id
+            });
+
+            db.Interval.create(subIntervals[entities[i].name][j]);
+          }
+        }
+
+      }
+    })
+    .then(function() {
+      logger.info('Intervals have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Intevals');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/jscripty/customerSatisfation.json b/server/config/seedDB/jscripty/customerSatisfation.json
new file mode 100644
index 0000000..b4eb055
--- /dev/null
+++ b/server/config/seedDB/jscripty/customerSatisfation.json
@@ -0,0 +1,476 @@
+{
+  "pages": [
+    {
+      "id": "25b2038c54fe1a72774647dbbeccc557",
+      "number": 1,
+      "name": "Introduction",
+      "description": null,
+      "pageFlow": { "nextPage": true, "label": "mwForm.pageFlow.goToNextPage" },
+      "elements": [
+        {
+          "id": "f731c14bb078ca1f5c1f00b2500f13ab",
+          "orderNo": 1,
+          "type": "question",
+          "question": {
+            "id": "652b65e0e5b078e1d1381b6b3a3ad2bd",
+            "text": "How long it is since you are using xCALLY?",
+            "type": "radio",
+            "required": true,
+            "offeredAnswers": [
+              {
+                "id": "f3457c416661f1d6b71ed4141ee00530",
+                "orderNo": 1,
+                "value": "One month (Demo version)",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "365bafc9fc19c835f772a7c2acd38882",
+                "orderNo": 2,
+                "value": "Less than 6 months",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "c0d26ab74b369c6608237de9c2ed90b6",
+                "orderNo": 3,
+                "value": "Between 6 months - 1 year",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "354b52df5354eca27018b347e9a9d962",
+                "orderNo": 4,
+                "value": "Between 1 year - 2 years",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "b934ff6bcb0911a60114653489f19b93",
+                "orderNo": 5,
+                "value": "More than 2 years",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "b30240d2e6f3418f9b26c2fe03682933",
+                "orderNo": 6,
+                "value": "We don't use it anymore",
+                "pageFlow": {
+                  "page": {
+                    "id": "9b52dfb6e7f3fecdf786e4ce5f29d149",
+                    "number": 5
+                  },
+                  "label": "mwForm.pageFlow.goToPage"
+                }
+              }
+            ],
+            "pageFlowModifier": true
+          }
+        }
+      ],
+      "namedPage": true,
+      "isFirst": true,
+      "isLast": false
+    },
+    {
+      "id": "dabd2a6334f17f5221933742ba2f31f9",
+      "number": 2,
+      "name": null,
+      "description": null,
+      "pageFlow": { "nextPage": true, "label": "mwForm.pageFlow.goToNextPage" },
+      "elements": [
+        {
+          "id": "ac72a77463aa846d99e38952b0db9c23",
+          "orderNo": 1,
+          "type": "question",
+          "question": {
+            "id": "a79c23cda72d60e9e14d1f652905a525",
+            "text": "How many Agents in your Contact Center are using xCALLY?",
+            "type": "radio",
+            "required": true,
+            "offeredAnswers": [
+              {
+                "id": "e230b9a031b9b7e79ebd66e07b8a6fb8",
+                "orderNo": 1,
+                "value": "Less than 20",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "cefdabfc82a62e8b31f1826f25af9e03",
+                "orderNo": 2,
+                "value": "Between 20 - 50 Agents",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "9d57d3fece117eae0be6960a6b412b75",
+                "orderNo": 3,
+                "value": "Between 50 - 150 Agents",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "b9feebe68db5c13c834e0f142cb71fb8",
+                "orderNo": 4,
+                "value": "Between 150 - 300 Agents",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "15819a8e1677a24c157b150573f5eefa",
+                "orderNo": 5,
+                "value": "More than 300 Agents",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              }
+            ]
+          }
+        },
+        {
+          "id": "2670401c278e69f233552826a415bcf6",
+          "orderNo": 2,
+          "type": "question",
+          "question": {
+            "id": "a16aff0dfe356ccd998fb6025759de2a",
+            "text": "What kind of calls do you manage in your Contact Center?",
+            "type": "radio",
+            "required": true,
+            "offeredAnswers": [
+              {
+                "id": "fcd91cc71dd50c171d52f452d352292b",
+                "orderNo": 1,
+                "value": "Only inbound",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "cbc6afbc84fbf8b3f5009578e5cd40de",
+                "orderNo": 2,
+                "value": "Mostly inbound",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "7ca573f2be2d946224403083bce1bf89",
+                "orderNo": 3,
+                "value": "Both inbound and outbound",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "51ec57f9b511e3d8a304c0c46495174d",
+                "orderNo": 4,
+                "value": "Mostly outbound",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "52651dea4bf51d54bdeb56dec892f09b",
+                "orderNo": 5,
+                "value": "Only outbound",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              }
+            ]
+          }
+        },
+        {
+          "id": "c793e0d4543e663554a55514e2981de0",
+          "orderNo": 3,
+          "type": "question",
+          "question": {
+            "id": "7c656fb101c5d110978c50c06d1cae69",
+            "text": "Which of the following channels do you use in your Contact Center?",
+            "type": "checkbox",
+            "required": true,
+            "offeredAnswers": [
+              {
+                "id": "e858f6d4692beca5f9b000363bd0b0d2",
+                "orderNo": 1,
+                "value": "Phone calls",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "5472cee835b67c74df453bdf64aca9b4",
+                "orderNo": 2,
+                "value": "E-Mail",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "eb38c0e572e9ec848fb35f69355b973d",
+                "orderNo": 3,
+                "value": "Chat",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "9f67af37e549f93e388e9ddfeb0bcfcf",
+                "orderNo": 4,
+                "value": "Fax",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "3093eeac4219df32a68347deed6bed21",
+                "orderNo": 5,
+                "value": "SMS",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "112f774dc8b2fe2f114cf5a93e818fc3",
+                "orderNo": 6,
+                "value": "Social",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              }
+            ],
+            "pageFlowModifier": false,
+            "otherAnswer": true
+          }
+        }
+      ],
+      "namedPage": false
+    },
+    {
+      "id": "46f60945788ece4084460324c60781ba",
+      "number": 3,
+      "name": "Software Installation & Update",
+      "description": null,
+      "pageFlow": { "nextPage": true, "label": "mwForm.pageFlow.goToNextPage" },
+      "elements": [
+        {
+          "id": "28a8d8b1ba8600f68f0ab9c623bdc971",
+          "orderNo": 1,
+          "type": "paragraph",
+          "paragraph": {
+            "id": "1951cb18ce8eb56d740651bbca74f4ca",
+            "html": "Please insert a number between 1 and 5 where:\n1=Not at all easy\n5=Extremely easy"
+          }
+        },
+        {
+          "id": "785910fa586964beec53a57224d939f6",
+          "orderNo": 2,
+          "type": "question",
+          "question": {
+            "id": "4b49749e0415aac8f01f28f90fb13a86",
+            "text": "How easy are the xCALLY Installation Procedures?",
+            "type": "number",
+            "required": true,
+            "pageFlowModifier": false,
+            "min": 1,
+            "max": 5
+          }
+        },
+        {
+          "id": "bedca4f334f22b3802640eb483504c9b",
+          "orderNo": 3,
+          "type": "question",
+          "question": {
+            "id": "2127a022af8bbbb58fca261417b91bd7",
+            "text": "How easy are the xCALLY Update Procedures?",
+            "type": "number",
+            "required": true,
+            "pageFlowModifier": false,
+            "min": 1,
+            "max": 5
+          }
+        },
+        {
+          "id": "cd852a90b6a43804942999e5831b4a49",
+          "orderNo": 4,
+          "type": "question",
+          "question": {
+            "id": "16be11cba3a9602c4f29b8760b17e654",
+            "text": "Notes or suggestions about the installation & update procedure",
+            "type": "textarea",
+            "required": true,
+            "pageFlowModifier": false
+          }
+        }
+      ],
+      "namedPage": true,
+      "isFirst": false,
+      "isLast": false
+    },
+    {
+      "id": "9d0f47a3c42ce21b915c28bfb41ad846",
+      "number": 4,
+      "name": "Modules and functionalities",
+      "description": null,
+      "pageFlow": { "nextPage": true, "label": "mwForm.pageFlow.goToNextPage" },
+      "elements": [
+        {
+          "id": "5d03d9bbe15a2cf9ab86765a12a09738",
+          "orderNo": 1,
+          "type": "question",
+          "question": {
+            "id": "4fa5442caf2c5147fa05650c0abe51ec",
+            "text": "How easy is to configure the following xCALLY Modules?",
+            "type": "radio",
+            "required": true,
+            "offeredAnswers": [
+              {
+                "id": "89cbfcc88fa2e1d46b582368bd01353d",
+                "orderNo": 1,
+                "value": "Not at all easy",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "70c4409e42828f9661584cbf78eec9f8",
+                "orderNo": 2,
+                "value": "Slightly easy",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "6375221b958a98ca81d1e92c78ecb35d",
+                "orderNo": 3,
+                "value": "Moderately easy",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "7892ba12ef10deed546d3c4bca5dfe4e",
+                "orderNo": 4,
+                "value": "Very easy",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              },
+              {
+                "id": "a426c3d52defe247762748417da73106",
+                "orderNo": 5,
+                "value": "Extremely easy",
+                "pageFlow": {
+                  "nextPage": true,
+                  "label": "mwForm.pageFlow.goToNextPage"
+                }
+              }
+            ]
+          }
+        },
+        {
+          "id": "257b36eec82264fae5dcbd132016fa72",
+          "orderNo": 2,
+          "type": "question",
+          "question": {
+            "id": "f18af40b3c48a69b5ee753ef641db31e",
+            "text": "How many hours you spent to perform a basic XCALLY configuration?",
+            "type": "range",
+            "required": true,
+            "pageFlowModifier": false,
+            "min": 1,
+            "max": 8
+          }
+        }
+      ],
+      "namedPage": true,
+      "isFirst": false,
+      "isLast": true
+    },
+    {
+      "id": "9b52dfb6e7f3fecdf786e4ce5f29d149",
+      "number": 5,
+      "name": "May we known something more about you?",
+      "description": null,
+      "pageFlow": { "nextPage": true, "label": "mwForm.pageFlow.goToNextPage" },
+      "elements": [
+        {
+          "id": "01b95d724f79040bb094ba2a6e9c38bf",
+          "orderNo": 1,
+          "type": "question",
+          "question": {
+            "id": "c6571665c1e1b959edf0d02c80da1002",
+            "text": "Your Name",
+            "type": "text",
+            "required": true,
+            "pageFlowModifier": false
+          }
+        },
+        {
+          "id": "d2b5f0d31cbf5b7fe43b2a62a5f02c18",
+          "orderNo": 2,
+          "type": "question",
+          "question": {
+            "id": "8b9964d0c0f7b724ba3dc87bcb01e930",
+            "text": "Your E-Mail address",
+            "type": "email",
+            "required": true,
+            "pageFlowModifier": false
+          }
+        },
+        {
+          "id": "bd7604840dd6ccf8083acc83b5495744",
+          "orderNo": 3,
+          "type": "question",
+          "question": {
+            "id": "97fcfa4c89afc8803458d90ddbaace93",
+            "text": "Your Company website",
+            "type": "url",
+            "required": true,
+            "pageFlowModifier": false
+          }
+        }
+      ],
+      "namedPage": true
+    }
+  ],
+  "name": "XCALLY Customer Satisfaction",
+  "description": "The XCALLY customer satisfaction help us to improve our services and make our customers very very happy! :-)",
+  "confirmationMessage": "Thanks for your time!"
+}
diff --git a/server/config/seedDB/jscriptyProjects.js b/server/config/seedDB/jscriptyProjects.js
new file mode 100644
index 0000000..9222288
--- /dev/null
+++ b/server/config/seedDB/jscriptyProjects.js
@@ -0,0 +1,34 @@
+'use strict';
+
+var fs = require('fs');
+var path = require('path');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var getJson = function(filename) {
+  return fs.readFileSync(path.join(__dirname, 'jscripty', filename + '.json'), {
+    encoding: 'utf-8'
+  });
+};
+
+var jscriptyProjects = [{
+  id: 1,
+  name: 'CustomerSatisfaction',
+  description: 'Customer Satisfaction auto generated',
+  formData: getJson('customerSatisfation')
+}];
+
+exports.create = function() {
+  return db.JscriptyProject
+    .bulkCreate(jscriptyProjects, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Jscripty Projects have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Jscripty Projects');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/lists.js b/server/config/seedDB/lists.js
new file mode 100644
index 0000000..2da3940
--- /dev/null
+++ b/server/config/seedDB/lists.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var lists = [{
+  id: 1,
+  name: 'Public List',
+  description: 'public list auto generated'
+}, {
+  id: 2,
+  name: 'Black List',
+  description: 'black list auto generated'
+}, {
+  id: 3,
+  name: 'Callback List',
+  description: 'Callback list auto generated'
+}];
+
+exports.create = function() {
+  return db.CmList
+    .bulkCreate(lists, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Lists have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Lists');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/mailAccounts.js b/server/config/seedDB/mailAccounts.js
new file mode 100644
index 0000000..9f132f4
--- /dev/null
+++ b/server/config/seedDB/mailAccounts.js
@@ -0,0 +1,73 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+exports.create = function() {
+  var account;
+  return db.MailAccount
+    .findOrCreate({
+      where: {
+        service: true
+      },
+      defaults: {
+        name: 'Service Mail',
+        key: 'SERV',
+        email: [email-masked]',
+        service: true,
+        description: 'service motion account auto generated',
+        active: false,
+        ListId: 1
+      }
+    })
+    .spread(function(entity, created) {
+      if (created) {
+        logger.info('service motion account auto generated');
+      }
+
+      account = entity;
+
+      return db.MailServerOut.findOrCreate({
+        where: {
+          MailAccountId: account.id
+        },
+        defaults: {
+          host: '127.0.0.1',
+          user: 'username',
+          pass: 'password',
+          port: 25,
+          secure: false,
+          authentication: false,
+          MailAccountId: account.id,
+          description: 'service motion smtp auto generated'
+        }
+      });
+    })
+    .spread(function(entity, created) {
+      if (created) {
+        logger.info('service motion smtp auto generated');
+      }
+
+      return db.MailServerIn.findOrCreate({
+        where: {
+          MailAccountId: account.id
+        },
+        defaults: {
+          host: '127.0.0.1',
+          user: 'username',
+          password: 'password',
+          port: 993,
+          MailAccountId: account.id,
+          description: 'service motion imap auto generated'
+        }
+      });
+    })
+    .spread(function(entity, created) {
+      if (created) {
+        logger.info('service motion imap auto generated');
+      }
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Mail Accounts');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/mailSubstatuses.js b/server/config/seedDB/mailSubstatuses.js
new file mode 100644
index 0000000..8e8ba66
--- /dev/null
+++ b/server/config/seedDB/mailSubstatuses.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var _ = require('lodash');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var items = [{
+  id: 1,
+  name: 'pending',
+  description: 'Pending status for mail interaction'
+}];
+
+exports.create = function() {
+  return db.MailSubstatus
+    .bulkCreate(items, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Substatues have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create MailSubstatuses');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/migrations.js b/server/config/seedDB/migrations.js
new file mode 100644
index 0000000..5a20ff3
--- /dev/null
+++ b/server/config/seedDB/migrations.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var pkginfo = require('pkginfo')(module, 'version');
+
+exports.create = function() {
+  return db.Migration
+    .create({
+      version: module.exports.version + '.js'
+    })
+    .then(function() {
+      logger.info('Version have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Version');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/pauses.js b/server/config/seedDB/pauses.js
new file mode 100644
index 0000000..f857c65
--- /dev/null
+++ b/server/config/seedDB/pauses.js
@@ -0,0 +1,28 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var pauses = [{
+  id: 1,
+  name: 'BACKOFFICE',
+  description: 'backoffice pause auto generated'
+}, {
+  id: 2,
+  name: 'AFTERCALL',
+  description: 'aftercall pause auto generated'
+}];
+
+exports.create = function() {
+  return db.Pause
+    .bulkCreate(pauses, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Pauses have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Pauses');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/report/default.js b/server/config/seedDB/report/default.js
new file mode 100644
index 0000000..369f5eb
--- /dev/null
+++ b/server/config/seedDB/report/default.js
@@ -0,0 +1,543 @@
+'use strict';
+
+module.exports = function(prefix) {
+  return [{
+    id: 1,
+    name: 'Details',
+    description: 'Detailed queues report',
+    parent: prefix + '_voice_queues',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 2,
+    name: 'Calls Result',
+    description: 'Simple queue calls overview',
+    parent: prefix + '_voice_queues',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 3,
+    name: 'Details',
+    description: 'Detailed report about answered queue calls',
+    parent: prefix + '_voice_queues_answered',
+    table: 'report_agent',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"agentcomplete","value":"1","required":true}]}}'
+  }, {
+    id: 4,
+    name: 'Calls by Agent',
+    description: 'Agent calls timer Handle time= talk time + ACW time',
+    parent: prefix + '_voice_queues_answered',
+    table: 'report_agent',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"agentcomplete","value":"1","required":true}]}}'
+  }, {
+    id: 5,
+    name: 'Calls by Queue',
+    description: 'Queue timer Handle Time= Talk Time + AVG TIme',
+    parent: prefix + '_voice_queues_answered',
+    table: 'report_agent',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"agentcomplete","value":"1","required":true}]}}'
+  }, {
+    id: 6,
+    name: 'Answer Time by Queue',
+    description: 'Queues answer time performance',
+    parent: prefix + '_voice_queues_answered',
+    table: 'report_agent',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"agentcomplete","value":"1","required":true}]}}'
+  }, {
+    id: 7,
+    name: 'Disconnection Cause',
+    description: 'Summary of the calls disconnection causes',
+    parent: prefix + '_voice_queues_answered',
+    table: 'report_agent',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"agentcomplete","value":"1","required":true}]}}'
+  }, {
+    id: 8,
+    name: 'Answer Time by Hour',
+    description: 'Answer time  by hour',
+    parent: prefix + '_voice_queues_answered',
+    table: 'report_agent',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"agentcomplete","value":"1","required":true}]}}'
+  }, {
+    id: 9,
+    name: 'Details',
+    description: 'Detailed report about the unanswered calls',
+    parent: prefix + '_voice_queues_unanswered',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"queuecallercomplete","value":"0","required":true}]}}'
+  }, {
+    id: 10,
+    name: 'Unanswered by Queue',
+    description: 'Unanswered calls summary by queue',
+    parent: prefix + '_voice_queues_unanswered',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"queuecallercomplete","value":"0","required":true}]}}'
+  }, {
+    id: 11,
+    name: 'Unmanaged calls',
+    description: 'Unmanaged calls summary',
+    parent: prefix + '_voice_queues_unanswered',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"queuecallerexit","value":"1","required":true}]}}'
+  }, {
+    id: 12,
+    name: 'Abandon Time by Queue',
+    description: 'Abandon time performance by queue',
+    parent: prefix + '_voice_queues_unanswered',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"queuecallerabandon","value":"1","required":true}]}}'
+  }, {
+    id: 13,
+    name: 'Calls by Date',
+    description: 'Queue calls summary by date',
+    parent: prefix + '_voice_queues_distribution',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 14,
+    name: 'Calls by Hour',
+    description: 'Calls distribution by hour',
+    parent: prefix + '_voice_queues_distribution',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 15,
+    name: 'Calls by Day',
+    description: 'Calls distribution by day of the month',
+    parent: prefix + '_voice_queues_distribution',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 16,
+    name: 'Calls by Weekday',
+    description: 'Calls distribution by day of the week',
+    parent: prefix + '_voice_queues_distribution',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 17,
+    name: 'Summary',
+    description: 'Calls distribution by queue',
+    parent: prefix + '_voice_queues',
+    table: 'report_queue',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 18,
+    name: 'Details',
+    description: 'Calls detail (cdr)',
+    parent: prefix + '_voice_calls',
+    table: 'report_call',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 19,
+    name: 'Outbound',
+    description: 'Manual outbound calls detailed report',
+    parent: prefix + '_voice_calls',
+    table: 'report_call',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"type","value":"\'outbound\'","required":true}]}}'
+  }, {
+    id: 20,
+    name: 'Calls by Type',
+    description: 'Summary report of the calls type',
+    parent: prefix + '_voice_calls',
+    table: 'report_call',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 21,
+    name: 'Outbound Calls Disposition',
+    description: 'Outbound calls grouped by disposition',
+    parent: prefix + '_voice_calls',
+    table: 'report_call',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"type","value":"\'outbound\'","required":true}]}}'
+  }, {
+    id: 22,
+    name: 'Outbound Calls by Agent',
+    description: 'Summary of outbound calls grouped by agent',
+    parent: prefix + '_voice_calls',
+    table: 'report_call',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"type","value":"\'outbound\'","required":true}]}}'
+  }, {
+    id: 23,
+    name: 'Outbound Calls by Date',
+    description: 'Summary of outbound calls grouped by date',
+    parent: prefix + '_voice_calls',
+    table: 'report_call',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"type","value":"\'outbound\'","required":true}]}}'
+  }, {
+    id: 24,
+    name: 'Login Time',
+    description: 'Agent\'s login time',
+    parent: prefix + '_agents',
+    table: 'report_member',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"type","value":"\'LOGIN\'","required":true},{"condition":"=","field":"channel","value":"\'voice\'","required":true}]}}'
+  }, {
+    id: 25,
+    name: 'Activities Summary',
+    description: 'Agent\'s activities report',
+    parent: prefix + '_voice_agents',
+    table: 'report_member',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"channel","value":"\'voice\'","required":true}]}}'
+  }, {
+    id: 26,
+    name: 'Pause Details',
+    description: 'Agents status details',
+    parent: prefix + '_voice_agents',
+    table: 'report_member',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"channel","value":"\'voice\'","required":true},{"condition":"=","field":"type","value":"\'PAUSE\'","required":true}]}}'
+  }, {
+    id: 27,
+    name: 'Details',
+    description: 'Agent\'s status detail',
+    parent: prefix + '_voice_agents',
+    table: 'report_member',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"channel","value":"\'voice\'","required":true}]}}'
+  }, {
+    id: 28,
+    name: 'Pause Time',
+    description: 'Agent\'s pause time',
+    parent: prefix + '_voice_agents',
+    table: 'report_member',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"type","value":"\'PAUSE\'","required":true},{"condition":"=","field":"channel","value":"\'voice\'","required":true}]}}'
+  }, {
+    id: 29,
+    name: 'Summary',
+    description: 'CallySquare Summary',
+    parent: prefix + '_voice_callysquare',
+    table: 'report_square',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 30,
+    name: 'Blocks',
+    description: 'CallySquare Blocks Detail',
+    parent: prefix + '_voice_callysquare',
+    table: 'report_square_details',
+    conditions: '{"group":{"operator":"AND","rules":[]}}'
+  }, {
+    id: 31,
+    name: 'Rating by Agent',
+    description: 'Records rating by agent',
+    parent: prefix + '_voice_recordings',
+    table: 'voice_recordings',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":">","field":"rating","value":"0","required":true}]}}'
+  }, {
+    id: 32,
+    name: 'Rating by Queue',
+    description: 'Records rating by queue',
+    parent: prefix + '_voice_recordings',
+    table: 'voice_recordings',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"IS NOT NULL","field":"queue","value":"","required":false},{"condition":">","field":"rating","value":"0","required":true}]}}'
+  }, {
+    id: 33,
+    name: 'Details',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"}]}}'
+  }, {
+    id: 34,
+    name: 'Calls Summary',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_history',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"}]}}'
+  }, {
+    id: 35,
+    name: 'Campaign Calls',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"}]}}'
+  }, {
+    id: 36,
+    name: 'List Penetration Rate',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"}]}}'
+  }, {
+    id: 37,
+    name: 'Agent Calls',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"},{"condition":"=","field":"state","value":"4"}]}}'
+  }, {
+    id: 38,
+    name: 'Disposition Rate',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"},{"condition":"IS NOT NULL","field":"disposition","value":""},{"condition":"=","field":"state","value":"4"}]}}'
+  }, {
+    id: 39,
+    name: 'Agent Disposition Rate',
+    description: '',
+    parent: prefix + '_bull_queue_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'queue\'"},{"condition":"IS NOT NULL","field":"disposition","value":""},{"condition":"=","field":"state","value":"4"}]}}'
+  }, {
+    id: 40,
+    name: 'Details',
+    description: '',
+    parent: prefix + '_bull_ivr_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'ivr\'"}]}}'
+  }, {
+    id: 41,
+    name: 'Calls Summary',
+    description: '',
+    parent: prefix + '_bull_ivr_campaigns',
+    table: 'cm_hopper_history',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'ivr\'"}]}}'
+  }, {
+    id: 42,
+    name: 'Campaign Calls',
+    description: '',
+    parent: prefix + '_bull_ivr_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'ivr\'"}]}}'
+  }, {
+    id: 43,
+    name: 'List Penetration Rate',
+    description: '',
+    parent: prefix + '_bull_ivr_campaigns',
+    table: 'cm_hopper_final',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"campaigntype","value":"\'ivr\'"}]}}'
+  }, {
+    id: 44,
+    name: 'Website Summary',
+    description: 'Chat interactions by website',
+    parent: prefix + '_chat',
+    table: 'chat_interactions',
+    joins: '[{"parentKey":"ChatWebsiteId","foreignTable":"chat_websites","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 45,
+    name: 'Website Times',
+    description: 'Chat interaction times by website',
+    parent: prefix + '_chat',
+    table: 'chat_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"chat_interactions.closed","value":"1"},{"group":{"operator":"OR","rules":[{"condition":"IS NULL","field":"chat_interactions.disposition","value":""},{"group":{"operator":"AND","rules":[{"condition":"!=","field":"chat_interactions.disposition","value":"\'abandoned\'"},{"condition":"!=","field":"chat_interactions.disposition","value":"\'unmanaged\'"}]}}]}}]}}',
+    joins: '[{"parentKey":"ChatWebsiteId","foreignTable":"chat_websites","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 46,
+    name: 'Chat By Agent',
+    description: 'Chat interactions by agent',
+    parent: prefix + '_chat',
+    table: 'chat_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"chat_interactions.closed","value":"1"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 47,
+    name: 'Chat By Date',
+    description: 'Chat interactions by date',
+    parent: prefix + '_chat',
+    table: 'chat_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"chat_interactions.closed","value":"1"}]}}'
+  }, {
+    id: 48,
+    name: 'Chat By Queue',
+    description: 'Chat interactions by queue',
+    parent: prefix + '_chat',
+    table: 'report_chat_queue',
+    joins: '[{"parentKey":"ChatQueueId","foreignTable":"chat_queues","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 49,
+    name: 'Email Account Summary',
+    description: 'Email interactions by account',
+    parent: prefix + '_mail',
+    table: 'mail_interactions',
+    joins: '[{"parentKey":"MailAccountId","foreignTable":"mail_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 50,
+    name: 'Email Account Times',
+    description: 'Email interaction times by account',
+    parent: prefix + '_mail',
+    table: 'mail_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"mail_interactions.closed","value":"1"},{"group":{"operator":"OR","rules":[{"condition":"!=","field":"mail_interactions.disposition","value":"\'unmanaged\'"},{"condition":"IS NULL","field":"mail_interactions.disposition","value":""}]}}]}}',
+    joins: '[{"parentKey":"MailAccountId","foreignTable":"mail_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 51,
+    name: 'Email By Agent',
+    description: 'Email interactions by agent',
+    parent: prefix + '_mail',
+    table: 'mail_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"mail_interactions.closed","value":"1"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 52,
+    name: 'Email By Date',
+    description: 'Email interactions by date',
+    parent: prefix + '_mail',
+    table: 'mail_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"mail_interactions.closed","value":"1"}]}}'
+  }, {
+    id: 53,
+    name: 'Email By Queue',
+    description: 'Email interactions by queue',
+    parent: prefix + '_mail',
+    table: 'report_mail_queue',
+    joins: '[{"parentKey":"MailQueueId","foreignTable":"mail_queues","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 54,
+    name: 'Openchannel Account Summary',
+    description: 'Openchannel interactions by account',
+    parent: prefix + '_openchannel',
+    table: 'openchannel_interactions',
+    joins: '[{"parentKey":"OpenchannelAccountId","foreignTable":"openchannel_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 55,
+    name: 'Openchannel Account Times',
+    description: 'Openchannel interaction times by account',
+    parent: prefix + '_openchannel',
+    table: 'openchannel_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"openchannel_interactions.closed","value":"1"},{"group":{"operator":"OR","rules":[{"condition":"!=","field":"openchannel_interactions.disposition","value":"\'unmanaged\'"},{"condition":"IS NULL","field":"openchannel_interactions.disposition","value":""}]}}]}}',
+    joins: '[{"parentKey":"OpenchannelAccountId","foreignTable":"openchannel_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 56,
+    name: 'Openchannel By Agent',
+    description: 'Openchannel interactions by agent',
+    parent: prefix + '_openchannel',
+    table: 'openchannel_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"openchannel_interactions.closed","value":"1"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 57,
+    name: 'Openchannel By Date',
+    description: 'Openchannel interactions by date',
+    parent: prefix + '_openchannel',
+    table: 'openchannel_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"openchannel_interactions.closed","value":"1"}]}}'
+  }, {
+    id: 58,
+    name: 'Openchannel By Queue',
+    description: 'Openchannel interactions by queue',
+    parent: prefix + '_openchannel',
+    table: 'report_openchannel_queue',
+    joins: '[{"parentKey":"OpenchannelQueueId","foreignTable":"openchannel_queues","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 59,
+    name: 'Sms Account Summary',
+    description: 'Sms interactions by account',
+    parent: prefix + '_sms',
+    table: 'sms_interactions',
+    joins: '[{"parentKey":"SmsAccountId","foreignTable":"sms_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 60,
+    name: 'Sms Account Times',
+    description: 'Sms interaction times by account',
+    parent: prefix + '_sms',
+    table: 'sms_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"sms_interactions.closed","value":"1"},{"group":{"operator":"OR","rules":[{"condition":"!=","field":"sms_interactions.disposition","value":"\'unmanaged\'"},{"condition":"IS NULL","field":"sms_interactions.disposition","value":""}]}}]}}',
+    joins: '[{"parentKey":"SmsAccountId","foreignTable":"sms_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 61,
+    name: 'Sms By Agent',
+    description: 'Sms interactions by agent',
+    parent: prefix + '_sms',
+    table: 'sms_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"sms_interactions.closed","value":"1"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 62,
+    name: 'Sms By Date',
+    description: 'Sms interactions by date',
+    parent: prefix + '_sms',
+    table: 'sms_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"sms_interactions.closed","value":"1"}]}}'
+  }, {
+    id: 63,
+    name: 'Sms By Queue',
+    description: 'Sms interactions by queue',
+    parent: prefix + '_sms',
+    table: 'report_sms_queue',
+    joins: '[{"parentKey":"SmsQueueId","foreignTable":"sms_queues","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 64,
+    name: 'Fax Account Summary',
+    description: 'Fax interactions by account',
+    parent: prefix + '_fax',
+    table: 'fax_interactions',
+    joins: '[{"parentKey":"FaxAccountId","foreignTable":"fax_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 65,
+    name: 'Fax Account Times',
+    description: 'Fax interaction times by account',
+    parent: prefix + '_fax',
+    table: 'fax_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"fax_interactions.closed","value":"1"},{"group":{"operator":"OR","rules":[{"condition":"!=","field":"fax_interactions.disposition","value":"\'unmanaged\'"},{"condition":"IS NULL","field":"fax_interactions.disposition","value":""}]}}]}}',
+    joins: '[{"parentKey":"FaxAccountId","foreignTable":"fax_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 66,
+    name: 'Fax By Agent',
+    description: 'Fax interactions by agent',
+    parent: prefix + '_fax',
+    table: 'fax_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"fax_interactions.closed","value":"1"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 67,
+    name: 'Fax By Date',
+    description: 'Fax interactions by date',
+    parent: prefix + '_fax',
+    table: 'fax_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"fax_interactions.closed","value":"1"}]}}'
+  }, {
+    id: 68,
+    name: 'Fax By Queue',
+    description: 'Fax interactions by queue',
+    parent: prefix + '_fax',
+    table: 'report_fax_queue',
+    joins: '[{"parentKey":"FaxQueueId","foreignTable":"fax_queues","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 69,
+    name: 'WhatsApp Account Summary',
+    description: 'WhatsApp interactions by account',
+    parent: prefix + '_whatsapp',
+    table: 'whatsapp_interactions',
+    joins: '[{"parentKey":"WhatsappAccountId","foreignTable":"whatsapp_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 70,
+    name: 'WhatsApp Account Times',
+    description: 'WhatsApp interaction times by account',
+    parent: prefix + '_whatsapp',
+    table: 'whatsapp_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"whatsapp_interactions.closed","value":"1"},{"group":{"operator":"OR","rules":[{"condition":"!=","field":"whatsapp_interactions.disposition","value":"\'unmanaged\'"},{"condition":"IS NULL","field":"whatsapp_interactions.disposition","value":""}]}}]}}',
+    joins: '[{"parentKey":"WhatsappAccountId","foreignTable":"whatsapp_accounts","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 71,
+    name: 'WhatsApp By Agent',
+    description: 'WhatsApp interactions by agent',
+    parent: prefix + '_whatsapp',
+    table: 'whatsapp_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"whatsapp_interactions.closed","value":"1"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 72,
+    name: 'WhatsApp By Date',
+    description: 'WhatsApp interactions by date',
+    parent: prefix + '_whatsapp',
+    table: 'whatsapp_interactions',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"=","field":"whatsapp_interactions.closed","value":"1"}]}}'
+  }, {
+    id: 73,
+    name: 'WhatsApp By Queue',
+    description: 'WhatsApp interactions by queue',
+    parent: prefix + '_whatsapp',
+    table: 'report_whatsapp_queue',
+    joins: '[{"parentKey":"WhatsappQueueId","foreignTable":"whatsapp_queues","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 74,
+    name: 'Sentiment by Agent',
+    description: 'Sentiment by agent',
+    parent: prefix + '_voice_recordings',
+    table: 'voice_recordings',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"IS NOT NULL","field":"voice_recordings.sentiment","value":"NULL"}]}}',
+    joins: '[{"parentKey":"UserId","foreignTable":"users","foreignKey":"id","type":"join"}]'
+  }, {
+    id: 75,
+    name: 'Sentiment Summary',
+    description: 'Sentiment Summary',
+    parent: prefix + '_voice_recordings',
+    table: 'voice_recordings',
+    conditions: '{"group":{"operator":"AND","rules":[{"condition":"IS NOT NULL","field":"voice_recordings.sentiment","value":""}]}}'
+  }];
+};
\ No newline at end of file
diff --git a/server/config/seedDB/report/fields.js b/server/config/seedDB/report/fields.js
new file mode 100644
index 0000000..6085e19
--- /dev/null
+++ b/server/config/seedDB/report/fields.js
@@ -0,0 +1,2353 @@
+'use strict';
+
+var _ = require('lodash');
+
+module.exports = function() {
+  var fields = [{
+      field: 'uniqueid',
+      alias: 'UniqueId',
+      ReportId: 1
+    }, {
+      field: 'calleridnum',
+      alias: 'CallerIdNum',
+      ReportId: 1
+    }, {
+      field: 'calleridname',
+      alias: 'CallerIdName',
+      ReportId: 1
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      ReportId: 1
+    }, {
+      field: 'queuecallerjoinAt',
+      alias: 'QueueJoinAt',
+      ReportId: 1
+    }, {
+      field: 'queuecallerleaveAt',
+      alias: 'QueueLeaveAt',
+      ReportId: 1
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'QueueAbandon',
+      ReportId: 1
+    }, {
+      field: 'queuecallerabandonAt',
+      alias: 'QueueAbandonAt',
+      ReportId: 1
+    }, {
+      field: 'queuecallercomplete',
+      alias: 'Complete',
+      ReportId: 1
+    }, {
+      field: 'queuecallercompleteAt',
+      alias: 'CompleteAt',
+      ReportId: 1
+    }, {
+      field: 'queuecallerexit',
+      alias: 'QueueExit',
+      ReportId: 1
+    }, {
+      field: 'queuecallerexitAt',
+      alias: 'QueueExitAt',
+      ReportId: 1
+    }, {
+      field: 'queuecallerexitreason',
+      alias: 'QueueExitReason',
+      ReportId: 1
+    }, {
+      field: 'exten',
+      alias: 'DID',
+      ReportId: 1
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)',
+      alias: 'TalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 1
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)',
+      alias: 'AbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 1
+    }, {
+      field: 'IF(queuecallercomplete=1,holdtime,null)',
+      alias: 'AnswerTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 1
+    }, {
+      field: 'calleridnum',
+      alias: 'CallerID',
+      ReportId: 2
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      ReportId: 2
+    }, {
+      field: 'queuecallerjoinAt',
+      alias: 'StartTime',
+      ReportId: 2
+    }, {
+      field: 'CASE WHEN queuecallercomplete=1 THEN queuecallercompleteAt ELSE queuecallerLeaveAt END',
+      alias: 'EndTime',
+      custom: 1,
+      ReportId: 2
+    }, {
+      field: 'holdtime',
+      alias: 'HoldTime',
+      format: 'SEC_TO_TIME',
+      ReportId: 2
+    }, {
+      field: 'CASE WHEN queuecallercomplete=1 THEN \'YES\' ELSE \'NO\' END',
+      alias: 'Answered',
+      custom: 1,
+      ReportId: 2
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueId',
+      ReportId: 3
+    }, {
+      field: 'calleridnum',
+      alias: 'CallerIdNum',
+      ReportId: 3
+    }, {
+      field: 'calleridname',
+      alias: 'CallerIdName',
+      ReportId: 3
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      ReportId: 3
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      ReportId: 3
+    }, {
+      field: 'agentcalledAt',
+      alias: 'AgentCalledAt',
+      ReportId: 3
+    }, {
+      field: 'agentconnectAt',
+      alias: 'AgentConnectAt',
+      ReportId: 3
+    }, {
+      field: 'agentcompleteAt',
+      alias: 'AgentCompleteAt',
+      ReportId: 3
+    }, {
+      field: 'holdtime',
+      alias: 'AnswerTime',
+      ReportId: 3
+    }, {
+      field: 'talktime',
+      alias: 'TalkTime',
+      ReportId: 3
+    }, {
+      field: 'agentacw',
+      alias: 'AgentACW',
+      ReportId: 3
+    }, {
+      field: 'acwtime',
+      alias: 'AgentACWTime',
+      ReportId: 3
+    }, {
+      field: 'agentcomplete',
+      alias: 'AgentComplete',
+      ReportId: 3
+    }, {
+      field: 'reason',
+      alias: 'HangupReason',
+      ReportId: 3
+    }, {
+      field: 'lastevent',
+      alias: 'LastEvent',
+      ReportId: 3
+    }, {
+      field: 'exten',
+      alias: 'DID',
+      ReportId: 3
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      groupBy: 1,
+      ReportId: 4
+    }, {
+      field: 'agentcomplete',
+      alias: 'Completed',
+      function: 'SUM',
+      ReportId: 4
+    }, {
+      field: 'talktime',
+      alias: 'TotTalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 4
+    }, {
+      field: 'acwtime',
+      alias: 'TotACWTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 4
+    }, {
+      field: 'talktime + acwtime',
+      alias: 'TotHandleTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 4
+    }, {
+      field: 'ROUND(AVG(talktime))',
+      alias: 'AvgTalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 4
+    }, {
+      field: 'ROUND(AVG(acwtime))',
+      alias: 'AvgACWTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 4
+    }, {
+      field: 'ROUND(SUM(talktime + acwtime)/COUNT(agentcomplete))',
+      alias: 'AvgHandleTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 4
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      groupBy: 1,
+      ReportId: 5
+    }, {
+      field: 'agentcomplete',
+      alias: 'Completed',
+      function: 'SUM',
+      ReportId: 5
+    }, {
+      field: 'talktime',
+      alias: 'Tot TalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 5
+    }, {
+      field: 'holdtime',
+      alias: 'Tot HoldTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 5
+    }, {
+      field: 'acwtime',
+      alias: 'Tot ACWTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 5
+    }, {
+      field: 'talktime + acwtime',
+      alias: 'Tot Handle Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 5
+    }, {
+      field: 'ROUND(AVG(talktime))',
+      alias: 'Avg TalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 5
+    }, {
+      field: 'ROUND(AVG(holdtime))',
+      alias: 'Avg HoldTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 5
+    }, {
+      field: 'ROUND(AVG(acwtime))',
+      alias: 'Avg ACWTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 5
+    }, {
+      field: 'ROUND(SUM(talktime + acwtime)/COUNT(agentcomplete))',
+      alias: 'Avg Handle Time',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 5
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      groupBy: 1,
+      ReportId: 6
+    }, {
+      field: 'agentcomplete',
+      alias: 'Tot Answered',
+      function: 'SUM',
+      ReportId: 6
+    }, {
+      field: 'COUNT(IF(holdtime<10,1,NULL))',
+      alias: 'Answered <10s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'ROUND(COUNT(IF(holdtime<10,1,NULL)) / SUM(agentcomplete) *100,1)',
+      alias: 'Answer Rate <10s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'COUNT(IF(holdtime >=10 AND holdtime <20,1,NULL))',
+      alias: 'Answered 10-20s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'ROUND(COUNT(IF(holdtime >=10 AND holdtime <20,1,NULL)) / SUM(agentcomplete) *100,1)',
+      alias: 'Answer Rate 10-20s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'COUNT(IF(holdtime >=20 AND holdtime <30,1,NULL))',
+      alias: 'Answered 20-30s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'ROUND(COUNT(IF(holdtime >=20 AND holdtime <30,1,NULL)) / SUM(agentcomplete) *100,1)',
+      alias: 'Answer Rate 20-30s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'COUNT(IF(holdtime >=30,1,NULL))',
+      alias: 'Answered >30s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'ROUND(COUNT(IF(holdtime >=30,1,NULL)) / SUM(agentcomplete) *100,1)',
+      alias: 'Answer Rate >30s',
+      custom: 1,
+      ReportId: 6
+    }, {
+      field: 'reason',
+      alias: 'Reason',
+      groupBy: 1,
+      ReportId: 7
+    }, {
+      field: 'uniqueid',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 7
+    }, {
+      field: 'agentconnectAt',
+      alias: 'Hour',
+      format: 'HOUR',
+      groupBy: 1,
+      ReportId: 8
+    }, {
+      field: 'agentcomplete',
+      alias: 'Tot Answered',
+      function: 'SUM',
+      ReportId: 8
+    }, {
+      field: 'COUNT(IF(holdtime<10,1,NULL))',
+      alias: 'Answered <10s',
+      custom: 1,
+      ReportId: 8
+    }, {
+      field: 'COUNT(IF(holdtime >=10 AND holdtime <20,1,NULL))',
+      alias: 'Answered 10-20s',
+      custom: 1,
+      ReportId: 8
+    }, {
+      field: 'COUNT(IF(holdtime >=20 AND holdtime <30,1,NULL))',
+      alias: 'Answered 20-30s',
+      custom: 1,
+      ReportId: 8
+    }, {
+      field: 'COUNT(IF(holdtime >=30,1,NULL))',
+      alias: 'Answered >30s',
+      custom: 1,
+      ReportId: 8
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueId',
+      ReportId: 9
+    }, {
+      field: 'calleridnum',
+      alias: 'CallerIdNum',
+      ReportId: 9
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      ReportId: 9
+    }, {
+      field: 'queuecallerjoinAt',
+      alias: 'JoinAt',
+      ReportId: 9
+    }, {
+      field: 'queuecallerleaveAt',
+      alias: 'LeaveAt',
+      ReportId: 9
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandon',
+      ReportId: 9
+    }, {
+      field: 'queuecallerabandonAt',
+      alias: 'AbandonAt',
+      ReportId: 9
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      ReportId: 9
+    }, {
+      field: 'queuecallerexitAt',
+      alias: 'UnmanagedAt',
+      ReportId: 9
+    }, {
+      field: 'queuecallerexitreason',
+      alias: 'UnmanagedReason',
+      ReportId: 9
+    }, {
+      field: 'position',
+      alias: 'QueuePosition',
+      ReportId: 9
+    }, {
+      field: 'exten',
+      alias: 'DID',
+      ReportId: 9
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)',
+      alias: 'Abandon Time',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 9
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallerExitAt)-UNIX_TIMESTAMP(queuecallerjoinAt)',
+      alias: 'Unmanaged HoldTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 9
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      groupBy: 1,
+      ReportId: 10
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandoned',
+      function: 'SUM',
+      ReportId: 10
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      function: 'SUM',
+      ReportId: 10
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)',
+      alias: 'Tot AbandonTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 10
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'AvgAbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 10
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallerExitAt)-UNIX_TIMESTAMP(queuecallerjoinAt)',
+      alias: 'Tot Unmanaged Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 10
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerExitAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'Avg Unmanaged TIme',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 10
+    }, {
+      field: 'queuecallerexitreason',
+      alias: 'Reason',
+      groupBy: 1,
+      ReportId: 11
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Calls',
+      function: 'SUM',
+      ReportId: 11
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallerExitAt)-UNIX_TIMESTAMP(queuecallerjoinAt)',
+      alias: 'Tot Unmanaged Time',
+      function: 'SUM',
+      custom: 1,
+      ReportId: 11
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      groupBy: 1,
+      ReportId: 12
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Tot Abandoned',
+      function: 'SUM',
+      ReportId: 12
+    }, {
+      field: 'COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) <10,1,NULL))',
+      alias: 'Abandoned<10s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'ROUND(COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) <10,1,NULL)) / SUM(queuecallerabandon) *100,1)',
+      alias: 'Abandoned Rate<10s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) >=10 AND UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) <60,1,NULL))',
+      alias: 'Abandoned 10-60s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'ROUND(COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) >=10 AND UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) <60,1,NULL))  / SUM(queuecallerabandon) *100,1)',
+      alias: 'Abandoned Rate 10-60s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) >=60 AND UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) <120,1,NULL))',
+      alias: 'Abandoned 60-120s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'ROUND(COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) >=60 AND UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) <120,1,NULL))   / SUM(queuecallerabandon) *100,1)',
+      alias: 'Abandoned Rate 60-120s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) >=120,1,NULL))',
+      alias: 'Abandoned>120s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'ROUND(COUNT(IF(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt) >=120,1,NULL))  / SUM(queuecallerabandon) *100,1)',
+      alias: 'Abandoned Rate>120s',
+      custom: 1,
+      ReportId: 12
+    }, {
+      field: 'queuecallerjoinat',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: 1,
+      custom: 1,
+      ReportId: 13
+    }, {
+      field: 'uniqueid',
+      alias: 'Offered',
+      function: 'COUNT DISTINCT',
+      ReportId: 13
+    }, {
+      field: 'queuecallercomplete',
+      alias: 'Completed',
+      function: 'SUM',
+      ReportId: 13
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandoned',
+      function: 'SUM',
+      custom: 1,
+      ReportId: 13
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      function: 'SUM',
+      custom: 1,
+      ReportId: 13
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)',
+      alias: 'Tot TalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 13
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)))',
+      alias: 'AvgTalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 13
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'AvgAbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 13
+    }, {
+      field: 'queuecallerjoinat',
+      alias: 'Hour',
+      format: 'HOUR',
+      groupBy: 1,
+      custom: 1,
+      ReportId: 14
+    }, {
+      field: 'uniqueid',
+      alias: 'Offered',
+      function: 'COUNT DISTINCT',
+      ReportId: 14
+    }, {
+      field: 'queuecallercomplete',
+      alias: 'Answered',
+      function: 'SUM',
+      ReportId: 14
+    }, {
+      field: 'ROUND(SUM(queuecallercomplete)/COUNT(DISTINCT uniqueid)*100,1)',
+      alias: 'Answer Rate',
+      custom: 1,
+      ReportId: 14
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandoned',
+      function: 'SUM',
+      ReportId: 14
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      function: 'SUM',
+      ReportId: 14
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)',
+      alias: 'Tot TalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 14
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)))',
+      alias: 'AvgTalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 14
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'AvgAbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 14
+    }, {
+      field: 'DAY(queuecallerjoinat)',
+      alias: 'Day',
+      groupBy: 1,
+      custom: 1,
+      ReportId: 15
+    }, {
+      field: 'uniqueid',
+      alias: 'Offered',
+      function: 'COUNT DISTINCT',
+      ReportId: 15
+    }, {
+      field: 'queuecallercomplete',
+      alias: 'Answered',
+      function: 'SUM',
+      ReportId: 15
+    }, {
+      field: 'ROUND(SUM(queuecallercomplete)/COUNT(DISTINCT uniqueid)*100,1)',
+      alias: 'Answer Rate',
+      custom: 1,
+      ReportId: 15
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandoned',
+      function: 'SUM',
+      ReportId: 15
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      function: 'SUM',
+      ReportId: 15
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)',
+      alias: 'Tot TalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 15
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)))',
+      alias: 'AvgTalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 15
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'AvgAbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 15
+    }, {
+      field: 'DAYNAME(queuecallerjoinat)',
+      alias: 'DayOfWeek',
+      groupBy: 1,
+      custom: 1,
+      ReportId: 16
+    }, {
+      field: 'uniqueid',
+      alias: 'Offered',
+      function: 'COUNT DISTINCT',
+      ReportId: 16
+    }, {
+      field: 'queuecallercomplete',
+      alias: 'Answered',
+      function: 'SUM',
+      ReportId: 16
+    }, {
+      field: 'ROUND(SUM(queuecallercomplete)/COUNT(DISTINCT uniqueid)*100,1)',
+      alias: 'Answer Rate',
+      custom: 1,
+      ReportId: 16
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandoned',
+      function: 'SUM',
+      orderBy: 'ASC',
+      ReportId: 16
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      function: 'SUM',
+      ReportId: 16
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)',
+      alias: 'Tot TalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 16
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)))',
+      alias: 'AvgTalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 16
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'AvgAbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 16
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      groupBy: 1,
+      ReportId: 17
+    }, {
+      field: 'uniqueid',
+      alias: 'Offered',
+      function: 'COUNT DISTINCT',
+      ReportId: 17
+    }, {
+      field: 'queuecallercomplete',
+      alias: 'Answered',
+      function: 'SUM',
+      ReportId: 17
+    }, {
+      field: 'ROUND(SUM(queuecallercomplete)/COUNT(DISTINCT uniqueid)*100,1)',
+      alias: 'Answer Rate',
+      custom: 1,
+      ReportId: 17
+    }, {
+      field: 'queuecallerabandon',
+      alias: 'Abandoned',
+      function: 'SUM',
+      ReportId: 17
+    }, {
+      field: 'queuecallerexit',
+      alias: 'Unmanaged',
+      function: 'SUM',
+      ReportId: 17
+    }, {
+      field: 'UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)',
+      alias: 'Tot TalkTime',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 17
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallercompleteAt)-UNIX_TIMESTAMP(queuecallerleaveAt)))',
+      alias: 'AvgTalkTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 17
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(queuecallerAbandonAt)-UNIX_TIMESTAMP(queuecallerjoinAt)))',
+      alias: 'AvgAbandonTime',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 17
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueID',
+      ReportId: 18
+    }, {
+      field: 'type',
+      alias: 'Type',
+      ReportId: 18
+    }, {
+      field: 'tag',
+      alias: 'Tag',
+      ReportId: 18
+    }, {
+      field: 'source',
+      alias: 'Source',
+      ReportId: 18
+    }, {
+      field: 'destination',
+      alias: 'Destination',
+      ReportId: 18
+    }, {
+      field: 'callerid',
+      alias: 'CallerID',
+      ReportId: 18
+    }, {
+      field: 'destinationchannel',
+      alias: 'DestChannel',
+      ReportId: 18
+    }, {
+      field: 'lastapplication',
+      alias: 'LastApp',
+      ReportId: 18
+    }, {
+      field: 'lastdata',
+      alias: 'LastData',
+      ReportId: 18
+    }, {
+      field: 'starttime',
+      alias: 'StartTime',
+      ReportId: 18
+    }, {
+      field: 'answertime',
+      alias: 'AnswerTime',
+      ReportId: 18
+    }, {
+      field: 'endtime',
+      alias: 'EndTime',
+      ReportId: 18
+    }, {
+      field: 'duration',
+      alias: 'Duration',
+      ReportId: 18
+    }, {
+      field: 'disposition',
+      alias: 'Disposition',
+      ReportId: 18
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueID',
+      ReportId: 19
+    }, {
+      field: 'accountcode',
+      alias: 'AgentExtension',
+      ReportId: 19
+    }, {
+      field: 'source',
+      alias: 'Source',
+      ReportId: 19
+    }, {
+      field: 'destination',
+      alias: 'Destination',
+      ReportId: 19
+    }, {
+      field: 'callerid',
+      alias: 'CallerId',
+      ReportId: 19
+    }, {
+      field: 'starttime',
+      alias: 'StartTime',
+      ReportId: 19
+    }, {
+      field: 'answertime',
+      alias: 'AnswerTime',
+      ReportId: 19
+    }, {
+      field: 'endtime',
+      alias: 'EndTime',
+      ReportId: 19
+    }, {
+      field: 'duration',
+      alias: 'Duration',
+      format: 'SEC_TO_TIME',
+      ReportId: 19
+    }, {
+      field: 'billableseconds',
+      alias: 'Billsec',
+      format: 'SEC_TO_TIME',
+      ReportId: 19
+    }, {
+      field: 'disposition',
+      alias: 'Disposition',
+      ReportId: 19
+    }, {
+      field: 'tag',
+      alias: 'Tag',
+      ReportId: 19
+    }, {
+      field: 'type',
+      alias: 'Type',
+      groupBy: 1,
+      ReportId: 20
+    }, {
+      field: 'uniqueid',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 20
+    }, {
+      field: 'duration',
+      alias: 'Tot Duration',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 20
+    }, {
+      field: 'ROUND(AVG(duration))',
+      alias: 'Avg Duration',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 20
+    }, {
+      field: 'disposition',
+      alias: 'Disposition',
+      groupBy: 1,
+      ReportId: 21
+    }, {
+      field: 'uniqueid',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 21
+    }, {
+      field: 'duration',
+      alias: 'Tot Duration',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 21
+    }, {
+      field: 'ROUND(AVG(duration))',
+      alias: 'Avg Duration',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 21
+    }, {
+      field: 'SUBSTRING_INDEX(channel, "-", 1)',
+      alias: 'Agent',
+      groupBy: 1,
+      custom: 1,
+      ReportId: 22
+    }, {
+      field: 'uniqueid',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 22
+    }, {
+      field: 'duration',
+      alias: 'Tot Duration',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 22
+    }, {
+      field: 'ROUND(AVG(duration))',
+      alias: 'Avg Duration',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 22
+    }, {
+      field: 'starttime',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: 1,
+      ReportId: 23
+    }, {
+      field: 'uniqueid',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 23
+    }, {
+      field: 'duration',
+      alias: 'Tot Duration',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      ReportId: 23
+    }, {
+      field: 'ROUND(AVG(duration))',
+      alias: 'Avg Duration',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 23
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      groupBy: 1,
+      orderBy: 'ASC',
+      ReportId: 24
+    }, {
+      field: 'UNIX_TIMESTAMP(exitAt)-UNIX_TIMESTAMP(enterAt)',
+      alias: 'Duration',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 24
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      groupBy: 1,
+      ReportId: 25
+    }, {
+      field: 'CASE WHEN type=\'LOGIN\' THEN UNIX_TIMESTAMP(exitAt)-UNIX_TIMESTAMP(enterAt) END',
+      alias: 'Login Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 25
+    }, {
+      field: 'CASE WHEN type=\'TALKING\' THEN UNIX_TIMESTAMP(exitAt)-UNIX_TIMESTAMP(enterAt) END',
+      alias: 'Talk Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 25
+    }, {
+      field: 'CASE WHEN type=\'PAUSE\' THEN UNIX_TIMESTAMP(exitAt)-UNIX_TIMESTAMP(enterAt) END',
+      alias: 'Pause Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 25
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      ReportId: 26
+    }, {
+      field: 'enterAt',
+      alias: 'EnterAt',
+      ReportId: 26
+    }, {
+      field: 'exitAt',
+      alias: 'ExitAt',
+      ReportId: 26
+    }, {
+      field: 'data1',
+      alias: 'Pause',
+      ReportId: 26
+    }, {
+      field: 'duration',
+      alias: 'Duration',
+      format: 'SEC_TO_TIME',
+      ReportId: 26
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      ReportId: 27
+    }, {
+      field: 'interface',
+      alias: 'Interface',
+      ReportId: 27
+    }, {
+      field: 'type',
+      alias: 'Event',
+      ReportId: 27
+    }, {
+      field: 'data1',
+      alias: 'Type',
+      ReportId: 27
+    }, {
+      field: 'enterAt',
+      alias: 'EnterAt',
+      ReportId: 27
+    }, {
+      field: 'exitAt',
+      alias: 'ExitAt',
+      ReportId: 27
+    }, {
+      field: 'UNIX_TIMESTAMP(exitAt)-UNIX_TIMESTAMP(enterAt)',
+      alias: 'Duration',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 27
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      groupBy: 1,
+      orderBy: 'ASC',
+      ReportId: 28
+    }, {
+      field: 'data1',
+      alias: 'PauseType',
+      groupBy: 1,
+      orderBy: 'ASC',
+      ReportId: 28
+    }, {
+      field: 'UNIX_TIMESTAMP(exitAt)-UNIX_TIMESTAMP(enterAt)',
+      alias: 'Duration',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 28
+    }, {
+      field: 'project_name',
+      alias: 'Project Name',
+      ReportId: 29
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueId',
+      ReportId: 29
+    }, {
+      field: 'callerid',
+      alias: 'CallerId',
+      ReportId: 29
+    }, {
+      field: 'dnid',
+      alias: 'DID',
+      ReportId: 29
+    }, {
+      field: 'joinAt',
+      alias: 'Start Time',
+      orderBy: 'ASC',
+      ReportId: 29
+    }, {
+      field: 'leaveAt',
+      alias: 'End Time',
+      ReportId: 29
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Duration',
+      format: 'SEC_TO_TIME',
+      custom: 1,
+      ReportId: 29
+    }, {
+      field: 'uniqueid',
+      alias: 'Unique Id',
+      ReportId: 30
+    }, {
+      field: 'project_name',
+      alias: 'Project Name',
+      ReportId: 30
+    }, {
+      field: 'callerid',
+      alias: 'Caller Id',
+      ReportId: 30
+    }, {
+      field: 'node',
+      alias: 'Block',
+      ReportId: 30
+    }, {
+      field: 'data',
+      alias: 'Data',
+      ReportId: 30
+    }, {
+      field: 'connectedlinename',
+      alias: 'Agent',
+      groupBy: 1,
+      ReportId: 31
+    }, {
+      field: 'uniqueid',
+      alias: 'Recorded Calls',
+      function: 'COUNT',
+      ReportId: 31
+    }, {
+      field: 'rating',
+      alias: 'Total Rating',
+      function: 'SUM',
+      ReportId: 31
+    }, {
+      field: 'rating',
+      alias: 'Avg Rating',
+      function: 'AVG',
+      ReportId: 31
+    }, {
+      field: 'queue',
+      alias: 'Queue',
+      groupBy: 1,
+      ReportId: 32
+    }, {
+      field: 'uniqueid',
+      alias: 'Rated Calls',
+      function: 'COUNT',
+      ReportId: 32
+    }, {
+      field: 'rating',
+      alias: 'Total Rating',
+      function: 'SUM',
+      ReportId: 32
+    }, {
+      field: 'rating',
+      alias: 'Avg Rating',
+      function: 'AVG',
+      ReportId: 32
+    }, {
+      field: 'campaign',
+      alias: 'Campaign Name',
+      ReportId: 33
+    }, {
+      field: 'calleridnum',
+      alias: 'CallerIdNum',
+      ReportId: 33
+    }, {
+      field: 'starttime',
+      alias: 'LastCallAt',
+      orderBy: 'DESC',
+      ReportId: 33
+    }, {
+      field: 'statedesc',
+      alias: 'State',
+      ReportId: 33
+    }, {
+      field: 'countglobal',
+      alias: 'Global Count',
+      ReportId: 33
+    }, {
+      field: 'dropreason',
+      alias: 'Drop Reason',
+      ReportId: 33
+    }, {
+      field: 'blacklist',
+      alias: 'BlackList',
+      ReportId: 33
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      ReportId: 33
+    }, {
+      field: 'talktime',
+      alias: 'Talk Time',
+      ReportId: 33
+    }, {
+      field: 'disposition',
+      alias: 'Disposition',
+      ReportId: 33
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueId',
+      ReportId: 33
+    }, {
+      field: 'statedesc',
+      alias: 'State',
+      groupBy: true,
+      orderBy: 'ASC',
+      ReportId: 34
+    }, {
+      field: 'id',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 34
+    }, {
+      field: 'ROUND(count(id)*100/(SELECT COUNT(*) FROM cm_hopper_history WHERE campaigntype=\'queue\'),2)',
+      alias: 'Calls (%)',
+      custom: true,
+      ReportId: 34
+    }, {
+      field: 'campaign',
+      alias: 'Campaign Name',
+      orderBy: 'ASC',
+      groupBy: true,
+      ReportId: 35
+    }, {
+      field: 'statedesc',
+      alias: 'State',
+      groupBy: true,
+      ReportId: 35
+    }, {
+      field: 'id',
+      alias: 'Total Calls',
+      function: 'COUNT',
+      ReportId: 35
+    }, {
+      field: 'ListId',
+      groupBy: true,
+      orderBy: 'ASC',
+      ReportId: 36
+    }, {
+      field: 'id',
+      alias: 'Contacts',
+      function: 'COUNT',
+      ReportId: 36
+    }, {
+      field: 'SUM(IF(state=4,1,0))',
+      alias: 'Managed',
+      custom: true,
+      ReportId: 36
+    }, {
+      field: 'ROUND(SUM(IF(state=4,1,0))/COUNT(*)*100,1)',
+      alias: 'Penetration Rate',
+      custom: true,
+      ReportId: 36
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      groupBy: true,
+      orderBy: 'ASC',
+      ReportId: 37
+    }, {
+      field: 'id',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 37
+    }, {
+      field: 'SEC_TO_TIME(AVG(talktime))',
+      alias: 'AVG Talk Time',
+      custom: true,
+      ReportId: 37
+    }, {
+      field: 'disposition',
+      alias: 'Disposition',
+      groupBy: true,
+      ReportId: 38
+    }, {
+      field: 'id',
+      alias: 'Total',
+      function: 'COUNT',
+      ReportId: 38
+    }, {
+      field: 'ROUND(COUNT(id)*100/(SELECT COUNT(*) FROM cm_hopper_final WHERE state=4 and campaigntype=\'queue\'),2)',
+      alias: 'Total (%)',
+      custom: true,
+      ReportId: 38
+    }, {
+      field: 'membername',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 39
+    }, {
+      field: 'disposition',
+      alias: 'Disposition',
+      groupBy: true,
+      ReportId: 39
+    }, {
+      field: 'id',
+      alias: 'Total',
+      function: 'COUNT',
+      ReportId: 39
+    }, {
+      field: 'ROUND(COUNT(id)*100/(SELECT COUNT(*) FROM cm_hopper_final WHERE state=4 and campaigntype=\'queue\'),2)',
+      alias: 'Total (%)',
+      custom: true,
+      ReportId: 39
+    }, {
+      field: 'campaign',
+      alias: 'Campaign Name',
+      ReportId: 40
+    }, {
+      field: 'calleridnum',
+      alias: 'CallerIdNum',
+      ReportId: 40
+    }, {
+      field: 'starttime',
+      alias: 'LastCallAt',
+      orderBy: 'DESC',
+      ReportId: 40
+    }, {
+      field: 'statedesc',
+      alias: 'State',
+      ReportId: 40
+    }, {
+      field: 'countglobal',
+      alias: 'Global Count',
+      ReportId: 40
+    }, {
+      field: 'dropreason',
+      alias: 'Drop Reason',
+      ReportId: 40
+    }, {
+      field: 'blacklist',
+      alias: 'BlackList',
+      ReportId: 40
+    }, {
+      field: 'talktime',
+      alias: 'Talk Time',
+      ReportId: 40
+    }, {
+      field: 'uniqueid',
+      alias: 'UniqueId',
+      ReportId: 40
+    }, {
+      field: 'statedesc',
+      alias: 'State',
+      groupBy: true,
+      orderBy: 'ASC',
+      ReportId: 41
+    }, {
+      field: 'id',
+      alias: 'Calls',
+      function: 'COUNT',
+      ReportId: 41
+    }, {
+      field: 'ROUND(count(id)*100/(SELECT COUNT(*) FROM cm_hopper_history WHERE campaigntype=\'ivr\'),2)',
+      alias: 'Calls (%)',
+      custom: true,
+      ReportId: 41
+    }, {
+      field: 'campaign',
+      alias: 'Campaign Name',
+      orderBy: 'ASC',
+      groupBy: true,
+      ReportId: 42
+    }, {
+      field: 'statedesc',
+      alias: 'State',
+      groupBy: true,
+      ReportId: 42
+    }, {
+      field: 'id',
+      alias: 'Total Calls',
+      function: 'COUNT',
+      ReportId: 42
+    }, {
+      field: 'ListId',
+      groupBy: true,
+      orderBy: 'ASC',
+      ReportId: 43
+    }, {
+      field: 'id',
+      alias: 'Contacts',
+      function: 'COUNT',
+      ReportId: 43
+    }, {
+      field: 'SUM(IF(state=4,1,0))',
+      alias: 'Managed',
+      custom: true,
+      ReportId: 43
+    }, {
+      field: 'ROUND(SUM(IF(state=4,1,0))/COUNT(*)*100,1)',
+      alias: 'Penetration Rate',
+      custom: true,
+      ReportId: 43
+    }, {
+      field: 'chat_websites.name',
+      alias: 'Web Site',
+      groupBy: true,
+      ReportId: 44
+    }, {
+      field: 'chat_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 44
+    }, {
+      field: 'COUNT(IF(closed=0,1,NULL))',
+      alias: 'Open',
+      custom: true,
+      ReportId: 44
+    }, {
+      field: 'COUNT(IF(closed=1 && ((disposition !=\'unmanaged\' && disposition !=\'abandoned\') || disposition IS NULL),1,NULL))',
+      alias: 'Closed',
+      custom: true,
+      ReportId: 44
+    }, {
+      field: 'COUNT(IF(closed=1 && disposition =\'unmanaged\',1,NULL))',
+      alias: 'Unmanaged',
+      custom: true,
+      ReportId: 44
+    }, {
+      field: 'COUNT(IF(closed=1 && disposition =\'abandoned\',1,NULL))',
+      alias: 'Abandoned',
+      custom: true,
+      ReportId: 44
+    }, {
+      field: 'chat_websites.name',
+      alias: 'Web Site',
+      groupBy: true,
+      ReportId: 45
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(chat_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 45
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(chat_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 45
+    }, {
+      field: 'users.fullname',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 46
+    }, {
+      field: 'chat_interactions.closed',
+      alias: 'Closed',
+      function: 'SUM',
+      ReportId: 46
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(chat_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 46
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(chat_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 46
+    }, {
+      field: 'chat_interactions.createdAt',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: true,
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'chat_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 47
+    }, {
+      field: 'COUNT(IF(closed=1 && ((disposition !=\'unmanaged\' && disposition !=\'abandoned\') || disposition IS NULL),1,NULL))',
+      alias: 'Completed',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1 && ((disposition !=\'unmanaged\' && disposition !=\'abandoned\') || disposition IS NULL),1,NULL))/COUNT(id) *100,1)',
+      alias: 'Completed (%)',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'COUNT(IF(closed=1 && disposition =\'unmanaged\',1,NULL))',
+      alias: 'Unmanaged',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1 && disposition=\'unmanaged\',1,NULL))/COUNT(id) *100,1)',
+      alias: 'Unmanaged (%)',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'COUNT(IF(closed=1 && disposition =\'abandoned\',1,NULL))',
+      alias: 'Abandoned',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1 && disposition=\'abandoned\',1,NULL))/COUNT(id) *100,1)',
+      alias: 'Abandoned (%)',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 47
+    }, {
+      field: 'chat_queues.name',
+      alias: 'Queue',
+      groupBy: true,
+      ReportId: 48
+    }, {
+      field: 'report_chat_queue.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 48
+    }, {
+      field: 'COUNT(IF(reason=\'accepted\',1,NULL))',
+      alias: 'Accepted',
+      custom: true,
+      ReportId: 48
+    }, {
+      field: 'COUNT(IF(reason=\'timeout\',1,NULL))',
+      alias: 'Timeout',
+      custom: true,
+      ReportId: 48
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Hold Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 48
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)))',
+      alias: 'AVG Hold Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 48
+    }, {
+      field: 'mail_accounts.name',
+      alias: 'Email Account',
+      groupBy: true,
+      ReportId: 49
+    }, {
+      field: 'mail_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 49
+    }, {
+      field: 'COUNT(IF(closed=0,1,NULL))',
+      alias: 'Open',
+      custom: true,
+      ReportId: 49
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Closed',
+      custom: true,
+      ReportId: 49
+    }, {
+      field: 'mail_accounts.name',
+      alias: 'Email Account',
+      groupBy: true,
+      ReportId: 50
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(mail_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 50
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(mail_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 50
+    }, {
+      field: 'users.fullname',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 51
+    }, {
+      field: 'mail_interactions.closed',
+      alias: 'Closed',
+      function: 'SUM',
+      ReportId: 51
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(mail_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 51
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(mail_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 51
+    }, {
+      field: 'mail_interactions.createdAt',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: true,
+      custom: true,
+      ReportId: 52
+    }, {
+      field: 'mail_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 52
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Completed',
+      custom: true,
+      ReportId: 52
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1,1,NULL))/COUNT(id) *100,1)',
+      alias: 'Completed (%)',
+      custom: true,
+      ReportId: 52
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 52
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 52
+    }, {
+      field: 'mail_queues.name',
+      alias: 'Queue',
+      groupBy: true,
+      ReportId: 53
+    }, {
+      field: 'report_mail_queue.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 53
+    }, {
+      field: 'COUNT(IF(reason=\'accepted\',1,NULL))',
+      alias: 'Accepted',
+      custom: true,
+      ReportId: 53
+    }, {
+      field: 'COUNT(IF(reason=\'timeout\',1,NULL))',
+      alias: 'Timeout',
+      custom: true,
+      ReportId: 53
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Hold Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 53
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)))',
+      alias: 'AVG Hold Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 53
+    }, {
+      field: 'openchannel_accounts.name',
+      alias: 'Openchannel Account',
+      groupBy: true,
+      ReportId: 54
+    }, {
+      field: 'openchannel_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 54
+    }, {
+      field: 'COUNT(IF(closed=0,1,NULL))',
+      alias: 'Open',
+      custom: true,
+      ReportId: 54
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Closed',
+      custom: true,
+      ReportId: 54
+    }, {
+      field: 'openchannel_accounts.name',
+      alias: 'Openchannel Account',
+      groupBy: true,
+      ReportId: 55
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(openchannel_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 55
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(openchannel_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 55
+    }, {
+      field: 'users.fullname',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 56
+    }, {
+      field: 'openchannel_interactions.closed',
+      alias: 'Closed',
+      function: 'SUM',
+      ReportId: 56
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(openchannel_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 56
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(openchannel_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 56
+    }, {
+      field: 'openchannel_interactions.createdAt',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: true,
+      custom: true,
+      ReportId: 57
+    }, {
+      field: 'openchannel_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 57
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Completed',
+      custom: true,
+      ReportId: 57
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1,1,NULL))/COUNT(id) *100,1)',
+      alias: 'Completed (%)',
+      custom: true,
+      ReportId: 57
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 57
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 57
+    }, {
+      field: 'openchannel_queues.name',
+      alias: 'Queue',
+      groupBy: true,
+      ReportId: 58
+    }, {
+      field: 'report_openchannel_queue.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 58
+    }, {
+      field: 'COUNT(IF(reason=\'accepted\',1,NULL))',
+      alias: 'Accepted',
+      custom: true,
+      ReportId: 58
+    }, {
+      field: 'COUNT(IF(reason=\'timeout\',1,NULL))',
+      alias: 'Timeout',
+      custom: true,
+      ReportId: 58
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Hold Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 58
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)))',
+      alias: 'AVG Hold Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 58
+    }, {
+      field: 'sms_accounts.name',
+      alias: 'Sms Account',
+      groupBy: true,
+      ReportId: 59
+    }, {
+      field: 'sms_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 59
+    }, {
+      field: 'COUNT(IF(closed=0,1,NULL))',
+      alias: 'Open',
+      custom: true,
+      ReportId: 59
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Closed',
+      custom: true,
+      ReportId: 59
+    }, {
+      field: 'sms_accounts.name',
+      alias: 'Sms Account',
+      groupBy: true,
+      ReportId: 60
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(sms_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 60
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(sms_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 60
+    }, {
+      field: 'users.fullname',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 61
+    }, {
+      field: 'sms_interactions.closed',
+      alias: 'Closed',
+      function: 'SUM',
+      ReportId: 61
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(sms_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 61
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(sms_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 61
+    }, {
+      field: 'sms_interactions.createdAt',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: true,
+      custom: true,
+      ReportId: 62
+    }, {
+      field: 'sms_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 62
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Completed',
+      custom: true,
+      ReportId: 62
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1,1,NULL))/COUNT(id) *100,1)',
+      alias: 'Completed (%)',
+      custom: true,
+      ReportId: 62
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 62
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 62
+    }, {
+      field: 'sms_queues.name',
+      alias: 'Queue',
+      groupBy: true,
+      ReportId: 63
+    }, {
+      field: 'report_sms_queue.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 63
+    }, {
+      field: 'COUNT(IF(reason=\'accepted\',1,NULL))',
+      alias: 'Accepted',
+      custom: true,
+      ReportId: 63
+    }, {
+      field: 'COUNT(IF(reason=\'timeout\',1,NULL))',
+      alias: 'Timeout',
+      custom: true,
+      ReportId: 63
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Hold Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 63
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)))',
+      alias: 'AVG Hold Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 63
+    }, {
+      field: 'fax_queues.name',
+      alias: 'Queue',
+      groupBy: true,
+      ReportId: 68
+    }, {
+      field: 'report_fax_queue.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 68
+    }, {
+      field: 'COUNT(IF(reason=\'accepted\',1,NULL))',
+      alias: 'Accepted',
+      custom: true,
+      ReportId: 68
+    }, {
+      field: 'COUNT(IF(reason=\'timeout\',1,NULL))',
+      alias: 'Timeout',
+      custom: true,
+      ReportId: 68
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Hold Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 68
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)))',
+      alias: 'AVG Hold Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 68
+    }, {
+      field: 'fax_interactions.createdAt',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: true,
+      custom: true,
+      ReportId: 67
+    }, {
+      field: 'fax_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 67
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Completed',
+      custom: true,
+      ReportId: 67
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1,1,NULL))/COUNT(id) *100,1)',
+      alias: 'Completed (%)',
+      custom: true,
+      ReportId: 67
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 67
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 67
+    }, {
+      field: 'users.fullname',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 66
+    }, {
+      field: 'fax_interactions.closed',
+      alias: 'Closed',
+      function: 'SUM',
+      ReportId: 66
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(fax_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 66
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(fax_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 66
+    }, {
+      field: 'fax_accounts.name',
+      alias: 'Fax Account',
+      groupBy: true,
+      ReportId: 65
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(fax_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 65
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(fax_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 65
+    }, {
+      field: 'fax_accounts.name',
+      alias: 'Fax Account',
+      groupBy: true,
+      ReportId: 64
+    }, {
+      field: 'fax_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 64
+    }, {
+      field: 'COUNT(IF(closed=0,1,NULL))',
+      alias: 'Open',
+      custom: true,
+      ReportId: 64
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Closed',
+      custom: true,
+      ReportId: 64
+    }, {
+      field: 'voice_recordings.UserId',
+      alias: 'UserId',
+      groupBy: true,
+      custom: false,
+      ReportId: 74
+    }, {
+      field: 'users.fullname',
+      alias: 'Full Name',
+      groupBy: false,
+      custom: false,
+      ReportId: 74
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'POSITIVE\',1,NULL))',
+      alias: 'POSITIVE',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'NEGATIVE\',1,NULL))',
+      alias: 'NEGATIVE',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'NEUTRAL\',1,NULL))',
+      alias: 'NEUTRAL',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'MIXED\',1,NULL))',
+      alias: 'MIXED',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    }, {
+      field: 'voice_recordings.sentiment',
+      alias: 'TOT',
+      function: 'COUNT',
+      groupBy: false,
+      custom: false,
+      ReportId: 74
+    }, {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'POSITIVE\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Positive(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    },
+    {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'NEGATIVE\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Negative(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    },
+    {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'NEUTRAL\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Neutral(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    },
+    {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'MIXED\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Mixed(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 74
+    }, {
+      field: 'voice_recordings.sentiment',
+      alias: 'Sentiment TOT',
+      function: 'COUNT',
+      groupBy: false,
+      custom: false,
+      ReportId: 75
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'POSITIVE\',1,NULL))',
+      alias: 'POSITIVE',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'NEGATIVE\',1,NULL))',
+      alias: 'NEGATIVE',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'NEUTRAL\',1,NULL))',
+      alias: 'NEUTRAL',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    }, {
+      field: 'COUNT (IF(voice_recordings.sentiment = \'MIXED\',1,NULL))',
+      alias: 'MIXED',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    }, {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'POSITIVE\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Positive(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    },
+    {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'NEGATIVE\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Negative(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    },
+    {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'NEUTRAL\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Neutral(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    },
+    {
+      field: 'CONCAT(ROUND(( (SELECT COUNT(IF(voice_recordings.sentiment = \'MIXED\',1,NULL)))*100/ COUNT (voice_recordings.sentiment)),2),\'%\')',
+      alias: 'Mixed(%)',
+      groupBy: false,
+      custom: true,
+      ReportId: 75
+    }, {
+      field: 'whatsapp_accounts.name',
+      alias: 'Whatsapp Account',
+      groupBy: true,
+      ReportId: 69
+    }, {
+      field: 'whatsapp_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 69
+    }, {
+      field: 'COUNT(IF(closed=0,1,NULL))',
+      alias: 'Open',
+      custom: true,
+      ReportId: 69
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Closed',
+      custom: true,
+      ReportId: 69
+    }, {
+      field: 'whatsapp_accounts.name',
+      alias: 'Whatsapp Account',
+      groupBy: true,
+      ReportId: 70
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(whatsapp_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 70
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(whatsapp_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 70
+    }, {
+      field: 'users.fullname',
+      alias: 'Agent',
+      groupBy: true,
+      ReportId: 71
+    }, {
+      field: 'whatsapp_interactions.closed',
+      alias: 'Closed',
+      function: 'SUM',
+      ReportId: 71
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(whatsapp_interactions.createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 71
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(whatsapp_interactions.createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 71
+    }, {
+      field: 'whatsapp_interactions.createdAt',
+      alias: 'Date',
+      format: 'DATE',
+      groupBy: true,
+      custom: true,
+      ReportId: 72
+    }, {
+      field: 'whatsapp_interactions.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 72
+    }, {
+      field: 'COUNT(IF(closed=1,1,NULL))',
+      alias: 'Completed',
+      custom: true,
+      ReportId: 72
+    }, {
+      field: 'ROUND(COUNT(IF(closed=1,1,NULL))/COUNT(id) *100,1)',
+      alias: 'Completed (%)',
+      custom: true,
+      ReportId: 72
+    }, {
+      field: 'UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)',
+      alias: 'Interaction Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 72
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(closedAt)-UNIX_TIMESTAMP(createdAt)))',
+      alias: 'AVG Interaction Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 72
+    }, {
+      field: 'whatsapp_queues.name',
+      alias: 'Queue',
+      groupBy: true,
+      ReportId: 73
+    }, {
+      field: 'report_whatsapp_queue.id',
+      alias: 'Interactions',
+      function: 'COUNT',
+      ReportId: 73
+    }, {
+      field: 'COUNT(IF(reason=\'accepted\',1,NULL))',
+      alias: 'Accepted',
+      custom: true,
+      ReportId: 73
+    }, {
+      field: 'COUNT(IF(reason=\'timeout\',1,NULL))',
+      alias: 'Timeout',
+      custom: true,
+      ReportId: 73
+    }, {
+      field: 'UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)',
+      alias: 'Hold Time',
+      function: 'SUM',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 73
+    }, {
+      field: 'ROUND(AVG(UNIX_TIMESTAMP(leaveAt)-UNIX_TIMESTAMP(joinAt)))',
+      alias: 'AVG Hold Time',
+      format: 'SEC_TO_TIME',
+      custom: true,
+      ReportId: 73
+    }
+  ];
+
+  return _.groupBy(fields, 'ReportId');
+};
\ No newline at end of file
diff --git a/server/config/seedDB/report/index.js b/server/config/seedDB/report/index.js
new file mode 100644
index 0000000..07ba9c1
--- /dev/null
+++ b/server/config/seedDB/report/index.js
@@ -0,0 +1,6 @@
+'use strict';
+
+module.exports = {
+  default: require('./default'),
+  fields: require('./fields')
+};
\ No newline at end of file
diff --git a/server/config/seedDB/sounds.js b/server/config/seedDB/sounds.js
new file mode 100644
index 0000000..698457b
--- /dev/null
+++ b/server/config/seedDB/sounds.js
@@ -0,0 +1,118 @@
+'use strict';
+
+var _ = require('lodash');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var sounds = [{
+  id: 1,
+  name: 'Welcome Message',
+  save_name: 'welcome-acme',
+  display_name: 'Welcome Message',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 2,
+  name: 'Order Message',
+  save_name: 'order-number',
+  display_name: 'Order Message',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 3,
+  name: 'Order Shipped',
+  save_name: 'order-shipped',
+  display_name: 'Order Shipped',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 4,
+  name: 'Order Elaborated',
+  save_name: 'order-elaborated',
+  display_name: 'Order Elaborated',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 5,
+  name: 'Call Rating Message',
+  save_name: 'rate-call',
+  display_name: 'Call Rating Message',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 6,
+  name: 'Thank You',
+  save_name: 'thanx',
+  display_name: 'Thank You',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 7,
+  name: 'Agent Login',
+  save_name: 'agentmanagement-login',
+  display_name: 'Agent Login',
+  original_format: 'mp3',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 8,
+  name: 'Agent Logout',
+  save_name: 'agentmanagement-logout',
+  display_name: 'Agent Logout',
+  original_format: 'mp3',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 9,
+  name: 'Agent Menu',
+  save_name: 'agentmanagement-menu',
+  display_name: 'Agent Menu',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 10,
+  name: 'Agent Pause',
+  save_name: 'agentmanagement-pause',
+  display_name: 'Agent Pause',
+  original_format: 'mp3',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 11,
+  name: 'Agent End Pause',
+  save_name: 'agentmanagement-unpause',
+  display_name: 'Agent End Pause',
+  original_format: 'mp3',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}, {
+  id: 12,
+  name: 'Agent Action Failure',
+  save_name: 'agentmanagement-action-failure',
+  display_name: 'Agent Action Failure',
+  original_format: 'wav',
+  converted_format: 'wav',
+  description: 'auto generated sound'
+}];
+
+exports.create = function() {
+  return db.Sound
+    .bulkCreate(sounds, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Sounds have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Sounds');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/squareOdbc.js b/server/config/seedDB/squareOdbc.js
new file mode 100644
index 0000000..24d0a25
--- /dev/null
+++ b/server/config/seedDB/squareOdbc.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var odbc = [{
+  id: 1,
+  name: 'xcally-motion-database',
+  dsn: 'DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=xC@LL1234;DATABASE=motion2',
+  description: 'xcally motion db auto generated'
+}];
+
+exports.create = function() {
+  return db.SquareOdbc
+    .bulkCreate(odbc, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('ODBC have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create ODBC');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/squareProjects.js b/server/config/seedDB/squareProjects.js
new file mode 100644
index 0000000..0de0077
--- /dev/null
+++ b/server/config/seedDB/squareProjects.js
@@ -0,0 +1,59 @@
+'use strict';
+
+var fs = require('fs');
+var path = require('path');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var getXml = function(filename) {
+  return fs.readFileSync(path.join(__dirname, 'xml', filename + '.xml'), {
+    encoding: 'utf-8'
+  });
+};
+
+var squareProjects = [{
+  id: 1,
+  name: 'AutoAttendant',
+  description: 'Basic IVR sample auto generated',
+  preproduction: getXml('AutoAttendant'),
+  production: getXml('AutoAttendant')
+}, {
+  id: 2,
+  name: 'CSI',
+  description: 'Customer Satisfaction IVR sample auto generated',
+  preproduction: getXml('CSI'),
+  production: getXml('CSI')
+}, {
+  id: 3,
+  name: 'Orders',
+  description: 'Order DB IVR sample auto generated',
+  preproduction: getXml('Orders'),
+  production: getXml('Orders')
+}, {
+  id: 4,
+  name: 'Survey',
+  description: 'Survey IVR sample auto generated',
+  preproduction: getXml('Survey'),
+  production: getXml('Survey')
+}, {
+  id: 5,
+  name: 'AgentManagement',
+  description: 'Agent Management sample auto generated',
+  preproduction: getXml('AgentManagement'),
+  production: getXml('AgentManagement')
+}];
+
+exports.create = function() {
+  return db.SquareProject
+    .bulkCreate(squareProjects, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Square Projects have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Square Projects');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/tags.js b/server/config/seedDB/tags.js
new file mode 100644
index 0000000..47258e8
--- /dev/null
+++ b/server/config/seedDB/tags.js
@@ -0,0 +1,46 @@
+'use strict';
+
+var _ = require('lodash');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var tags = [{
+  id: 1,
+  name: 'forums',
+  description: 'tag forums auto generated'
+}, {
+  id: 2,
+  name: 'defective',
+  description: 'tag defective auto generated'
+}, {
+  id: 3,
+  name: 'faq',
+  description: 'tag faq auto generated'
+}, {
+  id: 4,
+  name: 'installation',
+  description: 'tag installation auto generated'
+}, {
+  id: 5,
+  name: 'about_sales',
+  description: 'tag about_sales auto generated'
+}];
+
+exports.create = function() {
+  return db.Tag
+    .bulkCreate(tags, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Tags have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Tags');
+    });
+};
+
+exports.getNames = function() {
+  return _.map(tags, 'name');
+};
\ No newline at end of file
diff --git a/server/config/seedDB/teams.js b/server/config/seedDB/teams.js
new file mode 100644
index 0000000..4dcad73
--- /dev/null
+++ b/server/config/seedDB/teams.js
@@ -0,0 +1,29 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var teams = [{
+  id: 1,
+  name: 'Demo Team',
+  description: 'demo team auto generated'
+}];
+
+exports.create = function() {
+  return db.Team
+    .bulkCreate(teams, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function(entities) {
+      for (var i = 0; i < entities.length; i += 1) {
+        entities[i].addAgents([2, 3]);
+      }
+    })
+    .then(function() {
+      logger.info('Teams have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Teams');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/tree/index.js b/server/config/seedDB/tree/index.js
new file mode 100644
index 0000000..6731138
--- /dev/null
+++ b/server/config/seedDB/tree/index.js
@@ -0,0 +1,128 @@
+'use strict';
+
+/* Expected format of the node (there are no required fields)
+{
+  id          : "string" // will be autogenerated if omitted
+  text        : "string" // node text
+  icon        : "string" // string for custom
+  state       : {
+    opened    : boolean  // is the node open
+    disabled  : boolean  // is the node disabled
+    selected  : boolean  // is the node selected
+  },
+  children    : []  // array of strings or objects
+}
+*/
+
+var getQueuesChildren = function(prefix) {
+  prefix += '_';
+  return [{
+    id: prefix + 'answered',
+    text: 'Answered'
+  }, {
+    id: prefix + 'unanswered',
+    text: 'Unanswered'
+  }, {
+    id: prefix + 'distribution',
+    text: 'Distribution'
+  }];
+};
+
+var getVoiceChildren = function(prefix) {
+  prefix += '_';
+  return [{
+    id: prefix + 'queues',
+    text: 'Queues',
+    icon: 'icon s20 icon-stackoverflow',
+    children: getQueuesChildren(prefix + 'queues')
+  }, {
+    id: prefix + 'calls',
+    text: 'Calls',
+    icon: 'icon s20 icon-phone-dots'
+  }, {
+    id: prefix + 'agents',
+    text: 'Agents',
+    icon: 'icon s20 icon-account-multiple'
+  }, {
+    id: prefix + 'callysquare',
+    text: 'Cally Square',
+    icon: 'icon s20 icon-sitemap'
+  }, {
+    id: prefix + 'recordings',
+    text: 'Recordings',
+    icon: 'icon s20 icon-microphone'
+  }];
+};
+
+var getBullChildren = function(prefix) {
+  prefix += '_';
+  return [{
+    id: prefix + 'queue_campaigns',
+    text: 'Queue Campaigns',
+    icon: 'icon s20 icon-stackoverflow'
+  }, {
+    id: prefix + 'ivr_campaigns',
+    text: 'IVR Campaigns',
+    icon: 'icon s20 icon-sitemap'
+  }];
+};
+
+
+var getMotionChildren = function(prefix) {
+  prefix += '_';
+  return [{
+    id: prefix + 'voice',
+    text: 'Voice',
+    icon: 'icon s20 icon-phone-log',
+    children: getVoiceChildren(prefix + 'voice')
+  }, {
+    id: prefix + 'bull',
+    text: 'Motion Bull',
+    icon: 'icon s20 icon-fire',
+    children: getBullChildren(prefix + 'bull')
+  }, {
+    id: prefix + 'chat',
+    text: 'Chat',
+    icon: 'icon s20 icon-hangouts'
+  }, {
+    id: prefix + 'mail',
+    text: 'Email',
+    icon: 'icon s20 icon-email'
+  }, {
+    id: prefix + 'openchannel',
+    text: 'Openchannel',
+    icon: 'icon s20 icon-google-earth'
+  }, {
+    id: prefix + 'sms',
+    text: 'Sms',
+    icon: 'icon s20 icon-message-text'
+  }, {
+    id: prefix + 'fax',
+    text: 'Fax',
+    icon: 'icon s20 icon-deskphone'
+  }, {
+    id: prefix + 'whatsapp',
+    text: 'WhatsApp Connector',
+    icon: 'icon s20 icon-whatsapp'
+  }, {
+    id: prefix + 'agents',
+    text: 'Agents',
+    icon: 'icon s20 icon-account-multiple'
+  }];
+};
+
+var getTree = function(custom) {
+  return [{
+    id: custom ? 'custom' : 'motion',
+    text: (custom ? 'Custom' : 'Motion') + ' Reports',
+    icon: 'icon s20 ' + (custom ? 'icon-laptop-chromebook' : 'icon-cloud'),
+    state: {
+      opened: true,
+      selected: true
+    },
+    children: getMotionChildren(custom ? 'custom' : 'motion')
+  }];
+};
+
+exports.motion = getTree(false);
+exports.custom = getTree(true);
\ No newline at end of file
diff --git a/server/config/seedDB/trunks.js b/server/config/seedDB/trunks.js
new file mode 100644
index 0000000..0007141
--- /dev/null
+++ b/server/config/seedDB/trunks.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var trunks = [{
+  id: 1,
+  name: 'demo',
+  secret: '55xcally55',
+  defaultuser: 'demo',
+  description: 'trunk demo auto generated'
+}];
+
+exports.create = function() {
+  return db.Trunk
+    .bulkCreate(trunks, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Trunks have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Trunks');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/userProfiles.js b/server/config/seedDB/userProfiles.js
new file mode 100644
index 0000000..d51efa6
--- /dev/null
+++ b/server/config/seedDB/userProfiles.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var userProfiles = [{
+  id: 1,
+  name: 'Default',
+  crudPermissions: ['r', 'e', 'd'],
+  description: 'Auto generated User Profile'
+}];
+
+exports.create = function() {
+  return db.UserProfile
+    .bulkCreate(userProfiles, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('User Profiles have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create User Profiles');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/users.js b/server/config/seedDB/users.js
new file mode 100644
index 0000000..2cbd239
--- /dev/null
+++ b/server/config/seedDB/users.js
@@ -0,0 +1,49 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var users = [{
+  id: 1,
+  role: 'admin',
+  name: 'admin',
+  password: 'password',
+  fullname: 'Administrator',
+  email: [email-masked]',
+  internal: 1000,
+  description: 'user auto generated'
+}, {
+  id: 2,
+  role: 'agent',
+  name: 'john.doe',
+  email: [email-masked]',
+  password: 'shuttle55',
+  fullname: 'John Doe',
+  internal: 1001,
+  permissions: '101,102,103,113,110,104,105,106,107,108,109,100,111,114'.split(','),
+  description: 'agent auto generated'
+}, {
+  id: 3,
+  role: 'agent',
+  name: 'jane.miller',
+  email: [email-masked]',
+  password: 'shuttle55',
+  fullname: 'Jane Miller',
+  internal: 1002,
+  permissions: '101,102,103,113,110,104,105,106,107,108,109,100,111,114'.split(','),
+  description: 'agent auto generated'
+}];
+
+exports.create = function() {
+  return db.User
+    .bulkCreate(users, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Users have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Users');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/variables.js b/server/config/seedDB/variables.js
new file mode 100644
index 0000000..20b57fe
--- /dev/null
+++ b/server/config/seedDB/variables.js
@@ -0,0 +1,108 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var variables = [{
+  id: 1,
+  name: 'CHOICE',
+  description: 'variable for menu auto generated'
+}, {
+  id: 2,
+  name: 'ORDERNUM',
+  description: 'variable for order auto generated'
+}, {
+  id: 3,
+  name: 'DBRESULT',
+  description: 'variable for db query result auto generated'
+}, {
+  id: 4,
+  name: 'RATE',
+  description: 'variable for rate call auto generated'
+}, {
+  id: 5,
+  name: 'CALLERID(dnid)',
+  description: 'variable dialed number identifier auto generated'
+}, {
+  id: 6,
+  name: 'CALLERID(name)',
+  description: 'variable name of the caller auto generated'
+}, {
+  id: 7,
+  name: 'CALLERID(num)',
+  description: 'variable number of the caller auto generated'
+}, {
+  id: 8,
+  name: 'CHANNEL(language)',
+  description: 'variable select a natural language file when available auto generated'
+}, {
+  id: 9,
+  name: 'COUNTER',
+  description: 'variable auto generated'
+}, {
+  id: 10,
+  name: 'EMAIL',
+  description: 'variable auto generated'
+}, {
+  id: 11,
+  name: 'EXTRAVAR',
+  description: 'variable useful for agent popup auto generated'
+}, {
+  id: 12,
+  name: 'FIRSTNAME',
+  description: 'variable auto generated'
+}, {
+  id: 13,
+  name: 'LASTNAME',
+  description: 'variable auto generated'
+}, {
+  id: 14,
+  name: 'INPUT',
+  description: 'variable auto generated'
+}, {
+  id: 15,
+  name: 'OPTION',
+  description: 'variable auto generated'
+}, {
+  id: 16,
+  name: 'ORDER',
+  description: 'variable auto generated'
+}, {
+  id: 17,
+  name: 'PHONE',
+  description: 'variable auto generated'
+}, {
+  id: 18,
+  name: 'RESULT',
+  description: 'variable auto generated'
+}, {
+  id: 19,
+  name: 'UNIQUEID',
+  description: 'variable current call unique identifier auto generated'
+}, {
+  id: 20,
+  name: 'VAR1',
+  description: 'generic variable auto generated'
+}, {
+  id: 21,
+  name: 'VAR2',
+  description: 'generic variable auto generated'
+}, {
+  id: 22,
+  name: 'VAR3',
+  description: 'generic variable auto generated'
+}];
+
+exports.create = function() {
+  return db.Variable
+    .bulkCreate(variables, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Variables have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Variables');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/voiceContexts.js b/server/config/seedDB/voiceContexts.js
new file mode 100644
index 0000000..023bd4a
--- /dev/null
+++ b/server/config/seedDB/voiceContexts.js
@@ -0,0 +1,51 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var voiceContexts = [{
+  name: 'from-sip',
+  description: 'default entry context (DO NOT DELETE)',
+  defaultEntry: true
+}, {
+  name: 'from-voip-provider',
+  description: 'default entry context (DO NOT DELETE)',
+  defaultEntry: true
+}, {
+  name: 'inbound-fax',
+  description: 'default entry context (DO NOT DELETE)',
+  defaultEntry: true
+}, {
+  name: 'outbound-fax',
+  description: 'default entry context (DO NOT DELETE)',
+  defaultEntry: true
+}, {
+  name: 'from-voicemail',
+  description: 'default entry context (DO NOT DELETE)',
+  defaultEntry: true
+}, {
+  name: 'xcally-mixmonitor-context',
+  description: 'default entry context (DO NOT DELETE)',
+  defaultEntry: true
+}];
+
+
+exports.create = function() {
+  voiceContexts.forEach(function(element) {
+    db.VoiceContext
+      .findOrCreate({
+        where: {
+          name: element.name
+        },
+        defaults: element
+      })
+      .spread(function(entity, created) {
+        if (created) {
+          logger.info('Context ' + element.name + ' have been created');
+        }
+      })
+      .catch(function(err) {
+        logger.error('Can\'t create ' + element.name + ' context');
+      });
+  });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/voiceExtensions.js b/server/config/seedDB/voiceExtensions.js
new file mode 100644
index 0000000..1d115d9
--- /dev/null
+++ b/server/config/seedDB/voiceExtensions.js
@@ -0,0 +1,444 @@
+'use strict';
+
+var _ = require('lodash');
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+var DBPromise = require('bluebird');
+
+var applications = {
+  '600': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'Answer'
+  }, {
+    app: 'Playback',
+    appdata: 'demo-echotest',
+    isApp: true
+  }, {
+    app: 'Echo',
+    isApp: true
+  }, {
+    app: 'Playback',
+    appdata: 'demo-echodone',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6000': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'Answer'
+  }, {
+    app: 'Queue',
+    appdata: 'Support,xX,,,300,,,,,',
+    appType: 'queue',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6001': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'Answer'
+  }, {
+    app: 'Queue',
+    appdata: 'Sales,xX,,,300,,,,,',
+    appType: 'queue',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6666': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'AGI',
+    appdata: 'agi://127.0.0.1/square,AutoAttendant',
+    appType: 'agi',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6667': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'AGI',
+    appdata: 'agi://127.0.0.1/square,Orders',
+    appType: 'agi',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6668': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'AGI',
+    appdata: 'agi://127.0.0.1/square,CSI',
+    appType: 'agi',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6669': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'AGI',
+    appdata: 'agi://127.0.0.1/square,Survey',
+    appType: 'agi',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '6670': [{
+    app: 'Set',
+    appdata: 'CDR(type)=internal'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'AGI',
+    appdata: 'agi://127.0.0.1/square,AgentManagement',
+    appType: 'agi',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  'xcally-motion-dialer': [{
+    app: 'Set',
+    appdata: 'CDR(type)=dialer'
+  }, {
+    app: 'Set',
+    appdata: 'CALLERID(all)=${XMD-CALLERID}'
+  }, {
+    app: 'GotoIf',
+    appdata: '$["${XMD-AMD}" != "NONE" ]?5:11'
+  }, {
+    app: 'Answer',
+    appdata: ''
+  }, {
+    app: 'Background',
+    appdata: 'silence/1'
+  }, {
+    app: 'AMD',
+    appdata: '${XMD-AMDINITIALSILENCE},${XMD-AMDGREETING},${XMD-AMDAFTERGREETINGSILENCE},${XMD-AMDTOTALANALYSISTIME},${XMD-AMDMINWORDLENGTH},${XMD-AMDBETWEENWORDSSILENCE},${XMD-AMDMAXIMUMNUMBEROFWORDS},${XMD-AMDSILENCETHRESHOLD},${XMD-AMDMAXIMUMWORDLENGTH}'
+  }, {
+    app: 'GotoIf',
+    appdata: '$["${AMDSTATUS}" == "HUMAN" ]?11:9'
+  }, {
+    app: 'GotoIf',
+    appdata: '$["${AMDSTATUS}" == "NOTSURE" ]?11:10'
+  }, {
+    app: 'GotoIf',
+    appdata: '$["${AMDSTATUS}" == "MACHINE" ]?14:11'
+  }, {
+    app: 'Execif',
+    appdata: '$["${XMD-AGI}" != "NONE" ]?AGI(${XMD-AGI})'
+  }, {
+    app: 'Execif',
+    appdata: '$["${XMD-QUEUE}" != "NONE" ]?QUEUE(${XMD-QUEUE})'
+  }, {
+    app: 'Execif',
+    appdata: '$["${XMD-AGIAFTER}" != "NONE" ]?AGI(${XMD-AGIAFTER})'
+  }, {
+    app: 'Hangup'
+  }],
+  'xcally-motion-fax': [{
+    app: 'Set',
+    appdata: 'CDR(type)=outbound-fax'
+  }, {
+    app: 'Wait',
+    appdata: '6'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(ecm)=${XMF-ECM}'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(headerinfo)=${XMF-HEADERINFO}'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(localstationid)=${XMF-LOCALSTATIONID}'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(maxrate)=${XMF-MAXRATE}'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(minrate)=${XMF-MINRATE}'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(modem)=${XMF-MODEM}'
+  }, {
+    app: 'Set',
+    appdata: 'FAXOPT(t38timeout)=${XMF-T38TIMEOUT}'
+  }, {
+    app: 'SendFax',
+    appdata: '${XMF-PATH},d'
+  }],
+  'xcally-motion-preview': [{
+    app: 'Set',
+    appdata: 'CDR(type)=dialer'
+  }, {
+    app: 'Set',
+    appdata: 'CALLERID(all)=${XMD-CALLERID}'
+  }, {
+    app: 'Execif',
+    appdata: '$["${XMD-AGI}" != "NONE" ]?AGI(${XMD-AGI})'
+  }, {
+    app: 'Dial',
+    appdata: '${XMD-DIALCHANNEL},${XMD-DIALTIMEOUT},${XMD-DIALOPTIONS},${XMD-DIALURL}'
+  }, {
+    app: 'Execif',
+    appdata: '$["${XMD-AGIAFTER}" != "NONE" ]?AGI(${XMD-AGIAFTER})'
+  }, {
+    app: 'Hangup'
+  }],
+  '_.': [{
+    app: 'Set',
+    appdata: 'CDR(type)=outbound'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'Set',
+    appdata: 'XCALLY-MOTION-ANSWER=0'
+  }, {
+    app: 'Set',
+    appdata: 'XCALLY-MOTION-PROGRESS=0'
+  }, {
+    app: 'Set',
+    appdata: 'MONITOR_OPTIONS=ab'
+  }, {
+    app: 'Set',
+    outboundrouteid: true
+  }, {
+    app: 'Set',
+    appdata: '_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'
+  }, {
+    app: 'Set',
+    appdata: '_XCALLY_MIXMONITOR_FORMAT=wav'
+  }, {
+    app: 'Playback',
+    appdata: 'demo-congrats',
+    appType: 'custom',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  '_X.': [{
+    app: 'Set',
+    appdata: 'CDR(type)=inbound'
+  }, {
+    app: 'NoOp',
+    appdata: 'No alias set'
+  }, {
+    app: 'Answer'
+  }, {
+    app: 'Playback',
+    appdata: 'demo-congrats',
+    isApp: true
+  }, {
+    app: 'Hangup'
+  }],
+  'h': [{
+    app: 'Hangup'
+  }],
+  'failed': [{
+    app: 'Hangup'
+  }],
+};
+
+var voiceExtensions = [{
+  type: 'internal',
+  context: 'from-sip',
+  exten: '600',
+  description: 'echo test demo auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6000',
+  description: 'forward to Support queue auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6001',
+  description: 'forward to Sales queue auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6666',
+  description: 'forward to Auto Attendant IVR auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6667',
+  description: 'forward to Orders IVR auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6668',
+  description: 'forward to CSI IVR auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6669',
+  description: 'forward to Survey IVR auto generated'
+}, {
+  type: 'internal',
+  context: 'from-sip',
+  exten: '6670',
+  description: 'forward to Agent Management IVR auto generated'
+}, {
+  type: 'system',
+  context: 'from-sip',
+  exten: 'xcally-motion-dialer',
+  description: 'dialer extensions auto generated'
+}, {
+  type: 'system',
+  context: 'from-sip',
+  exten: 'xcally-motion-fax',
+  description: 'fax extensions auto generated'
+}, {
+  type: 'system',
+  context: 'from-sip',
+  exten: 'xcally-motion-preview',
+  description: 'dialer extensions auto generated'
+}, {
+  type: 'outbound',
+  context: 'from-sip',
+  exten: '_.',
+  description: 'demo outbound calls auto generated'
+}, {
+  type: 'inbound',
+  context: 'from-voip-provider',
+  exten: '_X.',
+  description: 'catch all inbound calls auto generated'
+}, {
+  type: 'system',
+  context: 'from-sip',
+  exten: 'h',
+  description: 'catch hangup event auto generated'
+}, {
+  type: 'system',
+  context: 'from-sip',
+  exten: 'failed',
+  description: 'catch failed event auto generated'
+}];
+
+var applicationsAlways = {
+  's': [{
+    app: 'MixMonitor',
+    appdata: '${XCALLY_MIXMONITOR_UNIQUEID}.${XCALLY_MIXMONITOR_FORMAT},ab'
+  }, {
+    app: 'Return'
+  }],
+  '_[x][c][a][l][l][y][Q][u][e][u][e][E][x][t][e][n][s][i][o][n].': [{
+      app: 'Progress'
+    },
+    {
+      app: 'Set',
+      appdata: 'CDR(type)=internal'
+    },
+    {
+      app: 'Queue',
+      appdata: '${EXTEN:20},xX'
+    }
+  ]
+};
+
+var voiceExtensionsAlways = [{
+  type: 'system',
+  context: 'xcally-mixmonitor-context',
+  exten: 's'
+}, {
+  type: 'system',
+  context: 'from-sip',
+  exten: '_[x][c][a][l][l][y][Q][u][e][u][e][E][x][t][e][n][s][i][o][n].'
+}];
+
+function createExtensions(voiceExtensions, applications) {
+  return db.VoiceExtension
+    .bulkCreate(voiceExtensions, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function(entities) {
+      for (var i = 0; i < entities.length; i += 1) {
+        if (applications[entities[i].exten]) {
+          for (var j = 0; j < applications[entities[i].exten].length; j += 1) {
+
+            // NOTE: only for outbound route with outboundrouteid
+            if (applications[entities[i].exten][j].outboundrouteid) {
+              applications[entities[i].exten][j].appdata = 'outboundrouteid=' + entities[i].id;
+              delete applications[entities[i].exten][j].outboundrouteid;
+            }
+
+            applications[entities[i].exten][j] = _.defaults(applications[entities[i].exten][j], {
+              isApp: false,
+              appType: 'custom',
+              type: entities[i].type,
+              context: entities[i].context,
+              exten: entities[i].exten,
+              priority: parseInt(entities[i].priority, 10) + 1 + j,
+              description: entities[i].description,
+              VoiceExtensionId: entities[i].id
+            });
+
+            db.VoiceExtension.create(applications[entities[i].exten][j]);
+          }
+        }
+
+      }
+    })
+    .then(function() {
+      logger.info('Voice Extensions have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Voice Extensions', err);
+    });
+}
+
+exports.create = function() {
+  createExtensions(voiceExtensions, applications);
+};
+
+exports.createAlways = function() {
+  return db.VoiceExtension
+    .destroy({
+      where: {
+        $or: voiceExtensionsAlways
+      }
+    })
+    .then(function() {
+      createExtensions(voiceExtensionsAlways, applicationsAlways);
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Voice Extensions', err);
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/voiceMusicOnHold.js b/server/config/seedDB/voiceMusicOnHold.js
new file mode 100644
index 0000000..2dbb2ad
--- /dev/null
+++ b/server/config/seedDB/voiceMusicOnHold.js
@@ -0,0 +1,47 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var voiceMusicOnHold = [{
+  id: 1,
+  name: 'default',
+  directory: '/var/lib/asterisk/moh/',
+  mode: 'files',
+  sort: 'random',
+  format: 'wav',
+  defaultEntry: true,
+  description: 'default moh auto generated'
+}, {
+  id: 2,
+  name: 'noice',
+  directory: '/var/opt/motion2/server/files/moh/noice/',
+  mode: 'files',
+  sort: 'random',
+  format: 'wav',
+  defaultEntry: true,
+  description: 'noice moh auto generated'
+}, {
+  id: 3,
+  name: 'wait',
+  directory: '/var/opt/motion2/server/files/moh/wait/',
+  mode: 'files',
+  sort: 'random',
+  format: 'wav',
+  defaultEntry: true,
+  description: 'wait moh auto generated'
+}];
+
+exports.create = function() {
+  return db.VoiceMusicOnHold
+    .bulkCreate(voiceMusicOnHold, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function() {
+      logger.info('Music on hold have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Music on hold');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/voiceQueues.js b/server/config/seedDB/voiceQueues.js
new file mode 100644
index 0000000..c1991c2
--- /dev/null
+++ b/server/config/seedDB/voiceQueues.js
@@ -0,0 +1,98 @@
+'use strict';
+
+var db = require('../../mysqldb').db;
+var logger = require('../logger')('app');
+
+var voiceQueues = [{
+  id: 1,
+  type: 'inbound',
+  name: 'Support',
+  strategy: 'ringall',
+  musiconhold: 'wait',
+  description: 'inbound voice queue auto generated'
+}, {
+  id: 2,
+  type: 'inbound',
+  name: 'Sales',
+  strategy: 'ringall',
+  musiconhold: 'wait',
+  description: 'inbound voice queue auto generated'
+}, {
+  id: 3,
+  type: 'outbound',
+  name: 'Survey',
+  strategy: 'rrmemory',
+  TrunkId: 1,
+  IntervalId: 1,
+  musiconhold: 'noice',
+  description: 'outbound voice queue campaign auto generated'
+}, {
+  id: 4,
+  type: 'outbound',
+  name: 'Telemarketing',
+  strategy: 'rrmemory',
+  TrunkId: 1,
+  IntervalId: 1,
+  musiconhold: 'noice',
+  description: 'outbound voice queue campaign auto generated'
+}, {
+  id: 5,
+  type: 'outbound',
+  name: 'CallbackCampaign',
+  strategy: 'rrmemory',
+  TrunkId: 1,
+  IntervalId: 1,
+  musiconhold: 'noice',
+  description: 'outbound voice queue campaign auto generated'
+}];
+
+exports.create = function() {
+  return db.VoiceQueue
+    .bulkCreate(voiceQueues, {
+      ignoreDuplicates: true,
+      individualHooks: true
+    })
+    .then(function(entities) {
+      for (var i = 0; i < entities.length; i += 1) {
+        // add agents on all queues
+        entities[i].addAgents([2, 3], {
+          ignoreDuplicates: true,
+          individualHooks: true
+        });
+
+        // add agents on all queues
+        entities[i].addTeams([1], {
+          ignoreDuplicates: true,
+          individualHooks: true
+        });
+
+        if (entities[i].type === 'outbound' && entities[i].id !== 5) {
+          // add lists only for outbound queue
+          entities[i].addLists([1], {
+            ignoreDuplicates: true,
+            individualHooks: true
+          });
+          // add black lists only for outbound queue
+          entities[i].addBlackLists([2], {
+            ignoreDuplicates: true,
+            individualHooks: true
+          });
+        }
+
+        if (entities[i].id === 5) {
+          // add lists only for outbound queue
+          entities[i].addLists([3], {
+            ignoreDuplicates: true,
+            individualHooks: true
+          });
+        }
+      }
+      return entities;
+    })
+    .then(function() {
+      logger.info('Voice Queues have been created');
+    })
+    .catch(function(err) {
+      logger.error('Can\'t create Voice Queues');
+    });
+};
\ No newline at end of file
diff --git a/server/config/seedDB/xml/AgentManagement.xml b/server/config/seedDB/xml/AgentManagement.xml
new file mode 100644
index 0000000..4145ec5
--- /dev/null
+++ b/server/config/seedDB/xml/AgentManagement.xml
@@ -0,0 +1,136 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+  <root>
+    <mxCell id="0"/>
+    <mxCell id="1" parent="0"/>
+    <start label="Start" answer="yes" id="9">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/entry/start_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="40" y="238" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </start>
+    <menu label="Menu" file_id="9" response="5" digit="1" retry="1" variable_id="0" id="16">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="170" y="238" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </menu>
+    <login label="Login" findBy="internal" id="39">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/agent_management/login_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="320" y="12" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </login>
+    <pause label="Pause" findBy="internal" pause_id="" id="40">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/agent_management/pause_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="320" y="344" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </pause>
+    <unpause label="Unpause" findBy="internal" id="41">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/agent_management/unpause_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="320" y="464" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </unpause>
+    <logout label="Logout" findBy="internal" id="42">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/agent_management/logout_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="320" y="132" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </logout>
+    <mxCell id="43" value="1" parent="1" source="16" target="39" edge="1">
+      <mxGeometry relative="1" as="geometry">
+        <Array as="points">
+          <mxPoint x="210" y="142"/>
+        </Array>
+      </mxGeometry>
+    </mxCell>
+    <mxCell id="44" value="2" parent="1" source="16" target="42" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="45" value="3" parent="1" source="16" target="40" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="46" value="4" parent="1" source="16" target="41" edge="1">
+      <mxGeometry relative="1" as="geometry">
+        <Array as="points">
+          <mxPoint x="210" y="414"/>
+        </Array>
+      </mxGeometry>
+    </mxCell>
+    <mxCell id="47" parent="1" source="9" target="16" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <playback label="Playback" file_id="12" opts="" id="48">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="450" y="238" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </playback>
+    <mxCell id="50" value="failure" parent="1" source="42" target="48" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="51" value="failure" parent="1" source="40" target="48" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <hangup label="Hangup" id="53">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/call_management/hangup_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="750" y="238" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </hangup>
+    <mxCell id="54" parent="1" source="48" target="53" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="55" value="failure" parent="1" source="39" target="48" edge="1">
+      <mxGeometry relative="1" as="geometry">
+        <Array as="points">
+          <mxPoint x="490" y="170"/>
+        </Array>
+      </mxGeometry>
+    </mxCell>
+    <mxCell id="56" value="failure" parent="1" source="41" target="48" edge="1">
+      <mxGeometry relative="1" as="geometry">
+        <Array as="points">
+          <mxPoint x="490" y="390"/>
+        </Array>
+      </mxGeometry>
+    </mxCell>
+    <playback label="Playback" file_id="8" opts="" id="57">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="600" y="132" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </playback>
+    <playback label="Playback" file_id="7" opts="" id="58">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="600" y="12" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </playback>
+    <playback label="Playback" file_id="10" opts="" id="59">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="600" y="344" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </playback>
+    <playback label="Playback" file_id="11" opts="" id="60">
+      <mxCell style="image;html=1;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+        <mxGeometry x="600" y="464" width="80" height="80" as="geometry"/>
+      </mxCell>
+    </playback>
+    <mxCell id="61" value="success" parent="1" source="39" target="58" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="62" value="success" parent="1" source="42" target="57" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="63" value="success" parent="1" source="40" target="59" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="64" value="success" parent="1" source="41" target="60" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="65" parent="1" source="58" target="53" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="66" parent="1" source="57" target="53" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="67" parent="1" source="59" target="53" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+    <mxCell id="68" parent="1" source="60" target="53" edge="1">
+      <mxGeometry relative="1" as="geometry"/>
+    </mxCell>
+  </root>
+</mxGraphModel>
diff --git a/server/config/seedDB/xml/AutoAttendant.xml b/server/config/seedDB/xml/AutoAttendant.xml
new file mode 100644
index 0000000..c22b142
--- /dev/null
+++ b/server/config/seedDB/xml/AutoAttendant.xml
@@ -0,0 +1,65 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <menu label="Menu" file_id="1" response="5" digit="1" retry="2" variable_id="1" id="3">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="130" y="150" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </menu>
+  <queue label="Queue Sales" queue_id="2" opts="" url="" file_id="0" timeout="300" agi="" macro="" gosub="" position="" id="5">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/queue_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="470" y="9.999999999999993" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </queue>
+  <queue label="Queue Support" queue_id="1" opts="" url="" file_id="0" timeout="300" agi="" macro="" gosub="" position="" id="6">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/queue_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="540" y="149.99999999999997" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </queue>
+  <dial label="Internal Dial John Doe" sip_id="2" timeout="60" opts="" url="" id="7">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/dial_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="470" y="310" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </dial>
+  <mxCell id="8" value="1" parent="1" source="3" target="5" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="9" value="2" parent="1" source="3" target="6" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <noop label="NoOp choice view" output="Choice: {CHOICE}" id="11">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/noop_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="300" y="310" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </noop>
+  <end label="End" id="15">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/end_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="720" y="150" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </end>
+  <mxCell id="16" value="3" parent="1" source="3" target="11" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="17" parent="1" source="5" target="15" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="18" parent="1" source="6" target="15" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="19" parent="1" source="7" target="15" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="20" parent="1" source="11" target="7" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <start label="Start" answer="yes" id="21">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="30" y="150" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <mxCell id="22" edge="1" parent="1" source="21" target="3">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedDB/xml/CSI.xml b/server/config/seedDB/xml/CSI.xml
new file mode 100644
index 0000000..5f33a96
--- /dev/null
+++ b/server/config/seedDB/xml/CSI.xml
@@ -0,0 +1,35 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <queue label="Queue OPTION C to continue" queue_id="1" opts="c" url="" file_id="0" timeout="10" agi="" macro="" gosub="" position="" id="3">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/queue_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="260" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </queue>
+  <subproject label="SubProject Survey" project_id="4" id="5">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/subproject_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="430" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </subproject>
+  <mxCell id="6" parent="1" source="3" target="5" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <end label="End" id="7">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/end_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="600" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </end>
+  <mxCell id="8" parent="1" source="5" target="7" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <start label="Start" answer="yes" id="10">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="90" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <mxCell id="11" edge="1" parent="1" source="10" target="3">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedDB/xml/Orders.xml b/server/config/seedDB/xml/Orders.xml
new file mode 100644
index 0000000..91fff6f
--- /dev/null
+++ b/server/config/seedDB/xml/Orders.xml
@@ -0,0 +1,70 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <menu label="Menu" file_id="2" response="5" digit="5" retry="1" variable_id="2" id="4">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="250" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </menu>
+  <noop label="NoOp Debug ORDERNUM" output="ORDER NUMBER: {ORDERNUM}" id="6">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/noop_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="400" y="109.56782713085232" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </noop>
+  <mxCell id="7" value="-" parent="1" source="4" target="6" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <gotoif label="GotoIf" condition="{DBRESULT} == 1" id="10">
+    <mxCell style="image;image=/assets/plugins/square/stencils/callflow/gotoif_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="730" y="109.56782713085231" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </gotoif>
+  <playback label="Playback Order shipped" file_id="3" opts="" id="12">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="1010" y="50" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </playback>
+  <mxCell id="13" value="true" parent="1" source="10" target="12" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <playback label="Playback Order on elaboration" file_id="4" opts="" id="14">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="1010" y="189.56782713085232" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </playback>
+  <mxCell id="15" value="false" parent="1" source="10" target="14" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <hangup label="Hangup" id="16">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/hangup_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="1180" y="109.5678271308523" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </hangup>
+  <mxCell id="17" parent="1" source="12" target="16" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="18" parent="1" source="14" target="16" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <start label="Start" answer="yes" id="19">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="100" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <mxCell id="20" parent="1" source="19" target="4" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <database label="Database query EXAMPLE" odbc_id="1" query="SELECT status from orders WHERE id={ORDERNUM}" variable_id="3" id="21">
+    <mxCell style="image;image=/assets/plugins/square/stencils/integration_server/database_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="560" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </database>
+  <mxCell id="22" edge="1" parent="1" source="6" target="21">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="23" edge="1" parent="1" source="21" target="10">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedDB/xml/Survey.xml b/server/config/seedDB/xml/Survey.xml
new file mode 100644
index 0000000..c58f340
--- /dev/null
+++ b/server/config/seedDB/xml/Survey.xml
@@ -0,0 +1,51 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <start label="Start" answer="yes" id="2">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="70" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <menu label="Menu" file_id="5" response="5" digit="1" retry="1" variable_id="4" id="3">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="222" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </menu>
+  <mxCell id="4" parent="1" source="2" target="3" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <noop label="NoOp rate view" output="Rate: {RATE}" id="5">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/noop_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="378.99999999999994" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </noop>
+  <mxCell id="6" value="1,2,3,4,5" parent="1" source="3" target="5" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <hangup label="Hangup" id="10">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/hangup_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="838" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </hangup>
+  <playback label="Playback Thank you" file_id="6" opts="" id="13">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="520" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </playback>
+  <mxCell id="14" parent="1" source="5" target="13" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <database label="Database" odbc_id="1" query="INSERT INTO survey (agent, queue, result)&#xa;VALUES ({MEMBERINTERFACE}, {QUEUENAME}, {RATE})" variable_id="3" id="15">
+    <mxCell style="image;image=/assets/plugins/square/stencils/integration_server/database_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="680" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </database>
+  <mxCell id="16" edge="1" parent="1" source="13" target="15">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="17" edge="1" parent="1" source="15" target="10">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedUsers.js b/server/config/seedUsers.js
new file mode 100644
index 0000000..65f9636
--- /dev/null
+++ b/server/config/seedUsers.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/socketio.js b/server/config/socketio.js
new file mode 100644
index 0000000..8c76f64
--- /dev/null
+++ b/server/config/socketio.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/triggers/index.js b/server/config/triggers/index.js
new file mode 100644
index 0000000..a08cb27
--- /dev/null
+++ b/server/config/triggers/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/config/utils.js b/server/config/utils.js
new file mode 100644
index 0000000..cafe59c
--- /dev/null
+++ b/server/config/utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/errors/api.js b/server/errors/api.js
new file mode 100644
index 0000000..1cd471e
--- /dev/null
+++ b/server/errors/api.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/errors/index.js b/server/errors/index.js
new file mode 100644
index 0000000..cbae4d6
--- /dev/null
+++ b/server/errors/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/files/attachments/README.md b/server/files/attachments/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/chat/iframe.ejs b/server/files/chat/iframe.ejs
new file mode 100644
index 0000000..220645c
--- /dev/null
+++ b/server/files/chat/iframe.ejs
@@ -0,0 +1,390 @@
+(function() {
+    'use strict';
+    const chatWebsiteAddressOrigin = '{{{chatWebsiteAddressOrigin}}}'
+    if(chatWebsiteAddressOrigin !== window.location.origin){
+        alert(`The current location does not match ${chatWebsiteAddressOrigin}. Please check your website domain in the current XCALLY Chat Website settings.`)
+    }
+    else
+    {
+        // Init all URLs
+        const remoteURL = new URL('{{{remote}}}')
+        const chatOrigin = remoteURL.origin
+        const chatPath = '/snippet/'
+        const chatStylesPath = chatPath + 'styles/'
+        const chatVersion = '{{{chatVersion}}}'
+
+        // Style setttings
+        const divColor = '<%=div_color%>'
+        const textColor = '<%=text_color%>'
+        const buttonColor = '<%=button_color%>'
+        const backgroungColor = '<%=background_color%>'
+        let alignment = "<%=alignment%>";
+        let verticalAlignment = "<%=verticalAlignment%>";
+
+        // iframe URL settings
+        const iframeId = 'motion-chat-iframe'
+        const iframeSrcURL = new URL(chatPath, chatOrigin)
+        const iframeSearchParams = new URLSearchParams('{{{query}}}')
+        iframeSearchParams.append('version', chatVersion)
+        iframeSearchParams.append('location', btoa(window.location.host))
+        iframeSrcURL.search = iframeSearchParams
+
+        // Style URL settings
+        const linkURL =  new URL(chatStylesPath + 'mobile.css', chatOrigin)
+        linkURL.search = new URLSearchParams({ version: chatVersion })
+        const linkMobile = document.createElement('link');
+        linkMobile.type = "text/css";
+        linkMobile.rel='stylesheet';
+        linkMobile.href = linkURL.toString()
+
+        // Iframe localstorage whitelisting
+        const allowedOrigins = [chatOrigin]
+
+        function remoteLocalStorageEventHandler(event){
+            if (allowedOrigins.includes(event.origin)) {
+                const { action, key, value } = event.data
+                const localStorage = window.localStorage
+                switch(action){
+                    case 'setItem':
+                        {
+                            localStorage.setItem(key, JSON.stringify(value))
+                            event.source.postMessage(
+                                {
+                                action: 'setItemResult',
+                                key
+                                }, event.origin)
+                        }
+                        break
+                    case 'getItem':
+                        {
+                            let item = localStorage.getItem(key)
+                            if(item){
+                                try {
+                                    item = JSON.parse(item)
+                                } catch (error) {
+                                    console.error('Cannot read data from localstorage', error)
+                                }
+                            }
+                            event.source.postMessage(
+                                {
+                                action: 'getItemResult',
+                                key,
+                                item
+                                }, event.origin)
+                        }
+                        break
+                    case 'removeItem':
+                        {   
+                            localStorage.removeItem(key)
+                            event.source.postMessage(
+                                {
+                                action: 'removeItemResult',
+                                key
+                                }, event.origin)
+                        }
+                        break
+                    default:
+                        typeof action === 'string' && console.debug('Unsupported action', action)
+                    break;
+                }
+            }
+        }
+
+        // DOM Manipulation
+        let iframe = document.createElement('iframe');
+        // Attributes
+        iframe['id'] = iframeId;
+        iframe['src'] = iframeSrcURL.toString()
+
+        let  iframe_status = false;
+
+        document.documentElement.style.setProperty('--xc-ws-div-color', divColor);
+        document.documentElement.style.setProperty('--xc-ws-text-color', textColor);
+        document.documentElement.style.setProperty('--xc-ws-button-color', buttonColor);
+        document.documentElement.style.setProperty('--xc-ws-background-color', backgroungColor);
+    
+        document.head.appendChild(linkMobile);
+
+        <% if (alignment == 'bottom_right') { -%> // Bottom, right
+            iframe.className = 'motion-chat-iframe-bottom_right';
+            verticalAlignment = 0;
+            document.body.appendChild(iframe);
+
+        <% } else if (alignment == 'right') { -%> // Right
+            iframe.className = 'motion-chat-iframe-right';
+            iframe.style['top'] = verticalAlignment+'%';
+            let  iframe_h = topIframe_calc();
+            topIframe_set(iframe_h);
+            let  div_tab = document.createElement('div');
+            div_tab['id'] = 'motion-chat-iframe-tab';
+            div_tab.className = 'motion-chat-div-right';
+            let  tab_status=0;
+
+        <% } else if (alignment == 'left') { -%> // Left   
+            iframe.className = 'motion-chat-iframe-left';
+            iframe.style['top'] = verticalAlignment+'%';
+            let  iframe_h = topIframe_calc();
+            topIframe_set(iframe_h);
+            let  div_tab = document.createElement('div');
+            div_tab.className = 'motion-chat-div-left';
+            div_tab['id'] ='motion-chat-iframe-tab';
+            let  tab_status=0;
+
+        <% } -%>   
+
+        <% if (alignment == 'right') { -%> // Right
+            topChat_set(iframe_h, verticalAlignment);
+            document.body.appendChild(div_tab);
+            let  html = '<div id="chat_tab_arrow"> <strong><</strong> </div> <span id="chat_tab_text" style="writing-mode: tb-rl; transform: rotate(-180deg);" flex><strong><%=labelText%></strong></span>';
+            div_tab.innerHTML = html;
+            
+            div_tab.style.backgroundColor = divColor;
+            document.getElementById("chat_tab_text").style.color = textColor; 
+            document.getElementById("chat_tab_arrow").style.color = divColor 
+            document.getElementById("chat_tab_arrow").style.backgroundColor = textColor; 
+            document.getElementById("motion-chat-iframe-tab").style.display = "flex";
+            
+            function appendLink(){
+                if(iframe_status == false){
+                    document.body.appendChild(iframe);
+                    iframe_status=true;
+                }      
+            }
+
+            function expandChatRight(){
+                appendLink()
+                div_tab.style.right = '295px';
+                iframe.style.right = '0px';
+                document.getElementById("chat_tab_arrow").innerHTML = "<strong> > </strong>";
+                let iframeEl = document.getElementById('motion-chat-iframe');
+                iframeEl.contentWindow?.postMessage({"evt":"show"}, '*');
+            }
+
+            function collapseChatRight(){
+                appendLink()
+                div_tab.style.right = '0px';
+                iframe.style.right = '-312px';
+                document.getElementById("chat_tab_arrow").innerHTML = "<strong> < </strong>";
+                let iframeEl = document.getElementById('motion-chat-iframe');
+                iframeEl.contentWindow?.postMessage({"evt":"hide"}, '*');
+            }
+
+            function toggleChatExpandedRight(){    
+                if(tab_status % 2 === 0) {
+                    expandChatRight()
+                }
+                else {
+                    collapseChatRight()
+                }
+                tab_status++;
+            }
+
+            document.getElementById("motion-chat-iframe-tab").addEventListener("click", toggleChatExpandedRight);
+        <% } else if (alignment == 'left') { -%> 
+            topChat_set(iframe_h, verticalAlignment);
+            document.body.appendChild(div_tab);
+            let  html='<div id="chat_tab_arrow"> <strong>></strong> </div><span id="chat_tab_text" style="writing-mode: tb-rl; transform: rotate(-180deg);" flex><strong><%=labelText%></strong></span>';
+            div_tab.innerHTML=html;
+
+            div_tab.style.backgroundColor = divColor;
+            document.getElementById("chat_tab_text").style.color = textColor; 
+            document.getElementById("chat_tab_arrow").style.color = divColor; 
+            document.getElementById("chat_tab_arrow").style.backgroundColor = textColor; 
+            document.getElementById("motion-chat-iframe-tab").style.display="flex";
+
+            function appendLink(){
+                if(iframe_status == false){
+                    document.body.appendChild(iframe);
+                    iframe_status=true;
+                }   
+            }
+
+            function expandChatLeft(){
+                appendLink()
+                div_tab.style.left = '295px';
+                iframe.style.left = '0px';
+                document.getElementById("chat_tab_arrow").innerHTML = "<strong> < </strong>";
+                let iframeEl = document.getElementById('motion-chat-iframe');
+                iframeEl.contentWindow?.postMessage({"evt":"show"}, '*');
+            }
+
+            function collapseChatLeft(){
+                appendLink()
+                div_tab.style.left = '0px';
+                iframe.style.left = '-312px';
+                document.getElementById("chat_tab_arrow").innerHTML = "<strong> > </strong>";
+                let iframeEl = document.getElementById('motion-chat-iframe');
+                iframeEl.contentWindow?.postMessage({"evt":"hide"}, '*');
+            }
+
+            function toggleChatExpandedLeft(){
+                if(tab_status % 2 === 0) {
+                    expandChatLeft()
+                }   
+                else {
+                    collapseChatLeft()
+                }   
+                tab_status++;
+            }
+
+            document.getElementById("motion-chat-iframe-tab").addEventListener("click", toggleChatExpandedLeft); 
+
+            <% } -%>    
+
+        // START Events management
+        window.addEventListener('message', function(evt) {
+            remoteLocalStorageEventHandler(evt)
+            switch (evt.data.cmd) {
+                case 'show':
+                    <% if (alignment == 'bottom_right') { -%> // Bottom, right
+                        iframe.style.top = 'auto';
+                        iframe.style.bottom = '0px';
+                    <% } else if (alignment == 'right') { -%> // Right
+                        iframe.style.right = '0px';
+                        div_tab.style.right = '295px';
+                    <% } else if (alignment == 'left') { -%> // Left
+                        iframe.style.left = '0px';
+                        div_tab.style.left = '295px';
+                    // Left    
+                    <% } -%>                break;
+                case 'hide':
+                    <% if (alignment == 'bottom_right') { -%> // Bottom, right
+                    iframe.style.top = 'calc(100% - 50px)';
+                    <% } else if (alignment == 'right') { -%> // Right
+                        iframe.style.right = '-312px';
+                        div_tab.style['right'] = '0px';
+                    <% } else if (alignment == 'left') { -%> // Left
+                        iframe.style.left = '-312px';
+                        div_tab.style.left = '0px';
+                    <% } -%>                break;
+                case "init": 
+                    <% if (alignment == 'right' || alignment == 'left') { -%> // Bottom, right
+                        div_tab.style.backgroundColor = textColor;
+                        document.getElementById("chat_tab_text").style.color = textColor; 
+                        document.getElementById("chat_tab_arrow").style.color = textColor; 
+                        document.getElementById("chat_tab_arrow").style.backgroundColor = textColor; 
+                        document.getElementById("motion-chat-iframe-tab").style.display = "flex";
+                    <% } -%>                break;
+                case "offline": 
+                    <% if (alignment == 'right' || alignment == 'left') { -%> // Bottom, right
+                        document.getElementById("motion-chat-iframe-tab").style.display = "none";
+                    <% } -%>                break;
+                default:
+            }
+
+        }, false);
+        // END Events management
+
+        // START Proactive action management
+        <% proactiveActions.forEach(function(action, index) { -%>
+            <% if (action.type == 'timeout') { -%>        
+            setTimeout(function() {
+                <% if (alignment == 'right') { -%>
+                expandChatRight();
+                tab_status++;
+                <% } else if (alignment == 'left') { -%> 
+                expandChatLeft();
+                tab_status++;
+                <% } else { -%> 
+                iframe.style.bottom = '0px';
+                iframe.contentWindow?.postMessage({
+                    evt: 'show'
+                }, '*');
+                <% } -%> 
+            }, <%- action.timeout %> * 1000);
+        <% } -%>
+        <% if (action.type == 'mouseOver') { -%>
+        let  elements<%- index %> = document.querySelectorAll("<%- action.selector %>");
+        for (let  i = 0; i < elements<%- index %>.length; i++) {
+            elements<%- index %>[i].onmouseover = function() {
+                <% if (alignment == 'right') { -%>
+                expandChatRight();
+                tab_status++;
+                <% } else if (alignment == 'left') { -%> 
+                expandChatLeft();
+                tab_status++;
+                <% } else { -%> 
+                iframe.style.bottom = '0px';
+                iframe.contentWindow?.postMessage({
+                    evt: 'show'
+                }, '*');
+                <% } -%> 
+            }
+        }
+        <% } -%>    <% }); -%>
+        // END Proactive action management
+        
+
+        if (window.DeviceOrientationEvent) {
+            window.addEventListener('orientationchange', function() {
+            if (alignment == 'right'){
+                document.getElementById("chat_tab_arrow").innerHTML = "<strong> < </strong>";
+                let  iframeEl = document.getElementById('motion-chat-iframe');
+                iframeEl.contentWindow?.postMessage({"evt":"hide"}, '*');
+                tab_status = 0;
+                iframe_h = topIframe_calc();
+                topIframe_set(iframe_h);
+                if(typeof div_tab != "undefined") topChat_set(iframe_h, verticalAlignment);
+            }
+            else if (alignment == 'left'){
+                document.getElementById("chat_tab_arrow").innerHTML = "<strong> > </strong>";
+                let  iframeEl = document.getElementById('motion-chat-iframe');
+                iframeEl.contentWindow?.postMessage({"evt":"hide"}, '*');
+                tab_status = 0;
+                iframe_h = topIframe_calc();
+                topIframe_set(iframe_h);
+                if(typeof div_tab != "undefined") topChat_set(iframe_h, verticalAlignment);
+            } }, false);
+        }
+
+        window.addEventListener("resize", function(event) {
+        let  iframe_h = topIframe_calc();
+        topIframe_set(iframe_h);
+        if(typeof div_tab != "undefined") topChat_set(iframe_h, verticalAlignment);
+        });
+
+        function topIframe_calc(){
+        let height_iframe
+        let  heightD = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+        let  iframeT = ((heightD/100)*verticalAlignment) + 450;
+        if (heightD < iframeT) {
+            height_iframe = 450 - (iframeT - heightD);
+        }
+        else { height_iframe = 450; }
+        return height_iframe;
+        }
+
+        function topIframe_set(height_iframe){
+            if( height_iframe > 340){
+            iframe.style['height'] = height_iframe +'px';
+            if (alignment == "right" || alignment == "left" )
+            { iframe.style['top'] = verticalAlignment + "%"; }
+            else{ iframe.style['bottom'] = "0%"; }
+
+            }
+            else {
+            iframe.style['height'] = '340px';
+            if (alignment == "right" || alignment == "left" )
+            { iframe.style['top'] = "calc(100% - 340px)"; }
+            else{ iframe.style['bottom'] = "0%"; }
+
+            }
+        }
+    
+        function topChat_set(height_iframe, verticalAlignment){
+    
+        if( height_iframe > 340){
+            div_tab.style['top'] = "calc("+ verticalAlignment +"% + " + (height_iframe - 100) + "px)";
+        }
+        else {
+            div_tab.style['top'] = "auto";
+            div_tab.style['bottom'] = "0px";
+        }
+        }
+
+        // hide chat
+        <% if (hideWhenOffline && intervalId != null) { -%> // hide template
+            document.getElementById("motion-chat-iframe-tab").style.display = "none";
+        <% } -%>
+    }
+}()); 
\ No newline at end of file
diff --git a/server/files/chat/upload/README.md b/server/files/chat/upload/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/conf/README.md b/server/files/conf/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/images/README.md b/server/files/images/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/images/avatars/README.md b/server/files/images/avatars/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/images/avatars/customer_avatar.png b/server/files/images/avatars/customer_avatar.png
new file mode 100644
index 0000000..a83b87c
Binary files /dev/null and b/server/files/images/avatars/customer_avatar.png differ
diff --git a/server/files/images/avatars/default_avatar.png b/server/files/images/avatars/default_avatar.png
new file mode 100644
index 0000000..1a4c242
Binary files /dev/null and b/server/files/images/avatars/default_avatar.png differ
diff --git a/server/files/images/avatars/system_avatar.png b/server/files/images/avatars/system_avatar.png
new file mode 100644
index 0000000..98f057e
Binary files /dev/null and b/server/files/images/avatars/system_avatar.png differ
diff --git a/server/files/images/logos/README.md b/server/files/images/logos/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/images/logos/default_favicon.ico b/server/files/images/logos/default_favicon.ico
new file mode 100644
index 0000000..e596f84
Binary files /dev/null and b/server/files/images/logos/default_favicon.ico differ
diff --git a/server/files/images/logos/default_loginlogo.svg b/server/files/images/logos/default_loginlogo.svg
new file mode 100644
index 0000000..60b1eb2
--- /dev/null
+++ b/server/files/images/logos/default_loginlogo.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 320 84" style="enable-background:new 0 0 320 84;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#373A3A;}
+	.st1{fill:#FFFFFF;}
+	.st2{fill:#00D7CC;}
+	.st3{fill:#00D9D5;}
+	.st4{fill:#3F3F3F;}
+</style>
+<g>
+	<path class="st0" d="M160.8,47.6c-1.5,1.6-3.6,2.6-5.9,2.6c-4.4,0-8.1-3.6-8.1-8.1c0-4.4,3.6-8.1,8.1-8.1c2.3,0,4.4,1,5.9,2.6
+		c0.7-2.5,1.8-4.9,3.3-7c-2.6-1.9-5.7-3-9.1-3c-8.5,0-15.5,6.9-15.5,15.5c0,8.5,6.9,15.5,15.5,15.5c3.4,0,6.6-1.1,9.1-3
+		C162.6,52.5,161.4,50.2,160.8,47.6"/>
+	<polygon class="st0" points="129.6,57.6 123.1,47.6 116.7,57.6 107.7,57.6 118.2,41.7 108.2,26.7 117.2,26.7 123.1,36.3 
+		129.1,26.7 138.1,26.7 128.1,41.7 138.6,57.6 	"/>
+	<rect x="203.7" y="14.9" class="st0" width="7.7" height="42.7"/>
+	<rect x="219.2" y="14.9" class="st0" width="7.7" height="42.7"/>
+	<path class="st0" d="M181.6,26.7c-8.5,0-15.5,6.9-15.5,15.5c0,8.5,6.9,15.5,15.5,15.5c0.3,0,0.6,0,0.8,0l0,0h14.7V42.9l0,0
+		c0-0.3,0-0.6,0-0.8C197.1,33.6,190.2,26.7,181.6,26.7"/>
+	<polygon class="st0" points="263.6,26.7 245.8,71.6 237.5,71.6 243.4,57.3 230,26.7 238.7,26.7 247.1,48.2 254.8,26.7 	"/>
+	<path class="st1" d="M181.6,50.2L181.6,50.2L181.6,50.2h3h5l-2.4-2.4c1.8-1.8,2.7-4.3,2.2-7.1c-0.5-3.2-3.1-5.9-6.3-6.5
+		c-6.6-1.3-12.1,5.4-8.7,12C175.9,48.9,178.7,50.3,181.6,50.2"/>
+	<g>
+		<path class="st2" d="M97.3,40.4c0,17.4-14.1,31.4-31.4,31.4c-17.4,0-31.4-14.1-31.4-31.4C34.5,23.1,48.6,9,65.9,9
+			C83.3,9,97.3,23.1,97.3,40.4"/>
+	</g>
+	<path class="st1" d="M66.1,59.5v-4.3c8.1,0,14.7-6.6,14.7-14.7c0-8.1-6.6-14.7-14.7-14.7c-8.1,0-14.7,6.6-14.7,14.7h-4.3
+		c0-10.5,8.5-19,19-19c10.5,0,19,8.5,19,19C85.1,50.9,76.6,59.5,66.1,59.5"/>
+	<path class="st3" d="M53.7,40.4c0,2.5-2,4.5-4.5,4.5c-2.5,0-4.5-2-4.5-4.5c0-2.5,2-4.5,4.5-4.5C51.7,36,53.7,38,53.7,40.4"/>
+	<path class="st1" d="M49.2,47c-3.6,0-6.6-3-6.6-6.6c0-3.6,3-6.6,6.6-6.6c3.6,0,6.6,3,6.6,6.6C55.8,44.1,52.9,47,49.2,47 M49.2,38.1
+		c-1.3,0-2.3,1-2.3,2.3c0,1.3,1,2.3,2.3,2.3c1.3,0,2.3-1,2.3-2.3C51.6,39.2,50.5,38.1,49.2,38.1"/>
+	<path class="st3" d="M87.4,40.4c0,2.5-2,4.5-4.5,4.5c-2.5,0-4.5-2-4.5-4.5c0-2.5,2-4.5,4.5-4.5C85.4,36,87.4,38,87.4,40.4"/>
+	<path class="st1" d="M83,47c-3.6,0-6.6-3-6.6-6.6c0-3.6,3-6.6,6.6-6.6c3.6,0,6.6,3,6.6,6.6C89.6,44.1,86.6,47,83,47 M83,38.1
+		c-1.3,0-2.3,1-2.3,2.3c0,1.3,1,2.3,2.3,2.3c1.3,0,2.3-1,2.3-2.3C85.3,39.2,84.3,38.1,83,38.1"/>
+	<path class="st3" d="M70.6,57.3c0,2.5-2,4.5-4.5,4.5c-2.5,0-4.5-2-4.5-4.5c0-2.5,2-4.5,4.5-4.5C68.6,52.9,70.6,54.9,70.6,57.3"/>
+	<path class="st1" d="M66.1,63.9c-3.6,0-6.6-3-6.6-6.6c0-3.6,3-6.6,6.6-6.6c3.6,0,6.6,3,6.6,6.6C72.7,61,69.7,63.9,66.1,63.9
+		 M66.1,55c-1.3,0-2.3,1-2.3,2.3c0,1.3,1,2.3,2.3,2.3c1.3,0,2.3-1,2.3-2.3C68.4,56,67.4,55,66.1,55"/>
+	<polygon class="st4" points="271.7,24.2 270,24.2 270,16.4 267.1,16.4 267.1,14.9 274.6,14.9 274.6,16.4 271.7,16.4 	"/>
+	<polygon class="st4" points="280.9,21.9 280.9,21.9 278,17.6 278,24.2 276.3,24.2 276.3,14.9 278.1,14.9 280.9,19.3 283.8,14.9 
+		285.5,14.9 285.5,24.2 283.9,24.2 283.9,17.5 	"/>
+	<g>
+		<path class="st0" d="M167.6,65.4h1.3l3.2,4.1l3.2-4.1h1.3v6.9H175V68c0-0.1,0-0.2,0-0.3c0-0.1,0-0.3,0-0.4
+			c-0.1,0.2-0.1,0.3-0.2,0.4c-0.1,0.1-0.1,0.2-0.2,0.3l-2.6,3.4h-0.3l-2.6-3.4c-0.1-0.1-0.2-0.2-0.2-0.3c-0.1-0.1-0.1-0.2-0.2-0.4
+			c0,0.3,0,0.5,0,0.7v4.2h-1.3V65.4z"/>
+	</g>
+	<g>
+		<path class="st0" d="M197.6,72.3H196v-5.6h-3.2v-1.2h7.9v1.2h-3.2V72.3z"/>
+		<path class="st0" d="M202.7,65.4h1.6v6.9h-1.6V65.4z"/>
+		<path class="st0" d="M207.7,67c0-0.3,0-0.6,0.1-0.8c0.1-0.2,0.2-0.4,0.3-0.5c0.1-0.1,0.3-0.2,0.5-0.3c0.2,0,0.5-0.1,0.8-0.1h5.1
+			c0.3,0,0.6,0,0.8,0.1c0.2,0,0.4,0.1,0.5,0.3c0.1,0.1,0.2,0.3,0.3,0.5c0.1,0.2,0.1,0.5,0.1,0.8v3.6c0,0.3,0,0.6-0.1,0.8
+			c-0.1,0.2-0.2,0.4-0.3,0.5c-0.1,0.1-0.3,0.2-0.5,0.3c-0.2,0-0.5,0.1-0.8,0.1h-5.1c-0.3,0-0.6,0-0.8-0.1c-0.2,0-0.4-0.1-0.5-0.3
+			c-0.1-0.1-0.2-0.3-0.3-0.5c-0.1-0.2-0.1-0.5-0.1-0.8V67z M214.6,71v-4.3h-5.3V71H214.6z"/>
+		<path class="st0" d="M219.5,65.4h1.1l4.8,4c0.1,0.1,0.3,0.2,0.4,0.4c0.1,0.1,0.3,0.3,0.4,0.4c0-0.3,0-0.5,0-0.7c0-0.2,0-0.4,0-0.5
+			v-3.6h1.4v6.9h-1.1l-5-4.2c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.2-0.2-0.3-0.3c0,0.3,0,0.5,0.1,0.7c0,0.2,0,0.3,0,0.4v3.7h-1.4
+			V65.4z"/>
+	</g>
+	<g>
+		<g>
+			<path class="st2" d="M188.7,63.7C188.7,63.8,188.8,63.8,188.7,63.7c0.2,0.3,0.3,0.4,0.5,0.6c1,1.2,1.6,2.6,1.5,4.2
+				c-0.1,1.2-0.5,2.3-1.4,3.2c-0.6,0.7-1.4,1.1-2.3,1.3c-1.3,0.3-2.5,0.1-3.6-0.7c-0.8-0.6-1.2-1.4-1.4-2.3
+				c-0.1-0.7-0.1-1.3,0.2-1.9c0.2-0.5,0.6-0.9,1-1.2c0.2-0.1,0.3-0.2,0.5-0.4c0.5-0.4,0.8-0.9,0.7-1.6c0-0.4-0.2-0.7-0.4-0.9
+				c-0.5-0.5-1.4-0.9-2.2-0.4c-0.4,0.2-0.7,0.5-1,0.8c-0.6,0.7-1.1,1.5-1.4,2.3c-0.2,0.6-0.3,1.2-0.3,1.8c0,1.7,0.5,3.1,1.6,4.3
+				c0.7,0.8,1.5,1.3,2.5,1.7c0.5,0.2,1,0.3,1.6,0.3c0.8,0.1,1.5,0,2.3-0.2c0.9-0.3,1.8-0.8,2.5-1.5c1-0.9,1.6-2.1,1.8-3.5
+				c0.1-0.6,0.1-1.1,0.1-1.7c-0.1-0.9-0.4-1.8-0.9-2.5c-0.4-0.6-0.8-1.2-1.4-1.7c-0.1-0.1-0.1-0.1-0.2-0.1
+				C188.9,63.7,188.8,63.7,188.7,63.7C188.7,63.7,188.7,63.7,188.7,63.7z"/>
+		</g>
+	</g>
+</g>
+</svg>
diff --git a/server/files/images/logos/default_logo.svg b/server/files/images/logos/default_logo.svg
new file mode 100644
index 0000000..31574d0
--- /dev/null
+++ b/server/files/images/logos/default_logo.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 300 300" style="enable-background:new 0 0 300 300;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#00D7CC;}
+	.st1{fill:#FFFFFF;}
+	.st2{fill:#00D9D5;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M292,150c0,78.4-63.6,142-142,142C71.6,292,8,228.4,8,150C8,71.6,71.6,8,150,8C228.4,8,292,71.6,292,150"/>
+	</g>
+	<path class="st1" d="M150.8,235.9v-19.3c36.7,0,66.6-29.9,66.6-66.6c0-36.7-29.9-66.6-66.6-66.6c-36.7,0-66.6,29.9-66.6,66.6H65
+		c0-47.4,38.5-85.9,85.9-85.9c47.4,0,85.9,38.5,85.9,85.9C236.7,197.4,198.2,235.9,150.8,235.9"/>
+	<path class="st2" d="M94.8,150c0,11.1-9,20.2-20.2,20.2c-11.1,0-20.2-9-20.2-20.2c0-11.1,9-20.2,20.2-20.2
+		C85.8,129.8,94.8,138.9,94.8,150"/>
+	<path class="st1" d="M74.6,179.8c-16.4,0-29.8-13.4-29.8-29.8c0-16.4,13.4-29.8,29.8-29.8c16.4,0,29.8,13.4,29.8,29.8
+		C104.4,166.4,91.1,179.8,74.6,179.8 M74.6,139.5c-5.8,0-10.5,4.7-10.5,10.5c0,5.8,4.7,10.5,10.5,10.5c5.8,0,10.5-4.7,10.5-10.5
+		C85.1,144.2,80.4,139.5,74.6,139.5"/>
+	<path class="st2" d="M247.3,150c0,11.1-9,20.2-20.2,20.2c-11.1,0-20.2-9-20.2-20.2c0-11.1,9-20.2,20.2-20.2
+		C238.2,129.8,247.3,138.9,247.3,150"/>
+	<path class="st1" d="M227.1,179.8c-16.4,0-29.8-13.4-29.8-29.8c0-16.4,13.4-29.8,29.8-29.8c16.4,0,29.8,13.4,29.8,29.8
+		C256.9,166.4,243.5,179.8,227.1,179.8 M227.1,139.5c-5.8,0-10.5,4.7-10.5,10.5c0,5.8,4.7,10.5,10.5,10.5c5.8,0,10.5-4.7,10.5-10.5
+		C237.6,144.2,232.9,139.5,227.1,139.5"/>
+	<path class="st2" d="M171,226.2c0,11.1-9,20.2-20.2,20.2c-11.1,0-20.2-9-20.2-20.2c0-11.1,9-20.2,20.2-20.2
+		C162,206.1,171,215.1,171,226.2"/>
+	<path class="st1" d="M150.8,256.1c-16.4,0-29.8-13.4-29.8-29.8c0-16.4,13.4-29.8,29.8-29.8c16.4,0,29.8,13.4,29.8,29.8
+		C180.7,242.7,167.3,256.1,150.8,256.1 M150.8,215.7c-5.8,0-10.5,4.7-10.5,10.5c0,5.8,4.7,10.5,10.5,10.5c5.8,0,10.5-4.7,10.5-10.5
+		C161.4,220.4,156.7,215.7,150.8,215.7"/>
+</g>
+</svg>
diff --git a/server/files/images/logos/default_preferred.png b/server/files/images/logos/default_preferred.png
new file mode 100644
index 0000000..80c9b33
Binary files /dev/null and b/server/files/images/logos/default_preferred.png differ
diff --git a/server/files/images/logos/default_profile.png b/server/files/images/logos/default_profile.png
new file mode 100644
index 0000000..9b96eee
Binary files /dev/null and b/server/files/images/logos/default_profile.png differ
diff --git a/server/files/moh/README.md b/server/files/moh/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/moh/noice/noice.wav b/server/files/moh/noice/noice.wav
new file mode 100644
index 0000000..c38ad4e
Binary files /dev/null and b/server/files/moh/noice/noice.wav differ
diff --git a/server/files/moh/wait/wait.wav b/server/files/moh/wait/wait.wav
new file mode 100644
index 0000000..07c6f87
Binary files /dev/null and b/server/files/moh/wait/wait.wav differ
diff --git a/server/files/plugins/README.md b/server/files/plugins/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/recordings/README.md b/server/files/recordings/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/reports/README.md b/server/files/reports/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/screen_recordings/README.md b/server/files/screen_recordings/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/sounds/README.md b/server/files/sounds/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/sounds/converted/README.md b/server/files/sounds/converted/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/sounds/converted/agentmanagement-action-failure.wav b/server/files/sounds/converted/agentmanagement-action-failure.wav
new file mode 100644
index 0000000..aedcb88
Binary files /dev/null and b/server/files/sounds/converted/agentmanagement-action-failure.wav differ
diff --git a/server/files/sounds/converted/agentmanagement-login.wav b/server/files/sounds/converted/agentmanagement-login.wav
new file mode 100644
index 0000000..d17b40d
Binary files /dev/null and b/server/files/sounds/converted/agentmanagement-login.wav differ
diff --git a/server/files/sounds/converted/agentmanagement-logout.wav b/server/files/sounds/converted/agentmanagement-logout.wav
new file mode 100644
index 0000000..2cf8c29
Binary files /dev/null and b/server/files/sounds/converted/agentmanagement-logout.wav differ
diff --git a/server/files/sounds/converted/agentmanagement-menu.wav b/server/files/sounds/converted/agentmanagement-menu.wav
new file mode 100644
index 0000000..1f8f5be
Binary files /dev/null and b/server/files/sounds/converted/agentmanagement-menu.wav differ
diff --git a/server/files/sounds/converted/agentmanagement-pause.wav b/server/files/sounds/converted/agentmanagement-pause.wav
new file mode 100644
index 0000000..895fb65
Binary files /dev/null and b/server/files/sounds/converted/agentmanagement-pause.wav differ
diff --git a/server/files/sounds/converted/agentmanagement-unpause.wav b/server/files/sounds/converted/agentmanagement-unpause.wav
new file mode 100644
index 0000000..fa23193
Binary files /dev/null and b/server/files/sounds/converted/agentmanagement-unpause.wav differ
diff --git a/server/files/sounds/converted/order-elaborated.wav b/server/files/sounds/converted/order-elaborated.wav
new file mode 100644
index 0000000..f02a863
Binary files /dev/null and b/server/files/sounds/converted/order-elaborated.wav differ
diff --git a/server/files/sounds/converted/order-number.wav b/server/files/sounds/converted/order-number.wav
new file mode 100644
index 0000000..91a8290
Binary files /dev/null and b/server/files/sounds/converted/order-number.wav differ
diff --git a/server/files/sounds/converted/order-shipped.wav b/server/files/sounds/converted/order-shipped.wav
new file mode 100644
index 0000000..d88744d
Binary files /dev/null and b/server/files/sounds/converted/order-shipped.wav differ
diff --git a/server/files/sounds/converted/rate-call.wav b/server/files/sounds/converted/rate-call.wav
new file mode 100644
index 0000000..5949011
Binary files /dev/null and b/server/files/sounds/converted/rate-call.wav differ
diff --git a/server/files/sounds/converted/thanx.wav b/server/files/sounds/converted/thanx.wav
new file mode 100644
index 0000000..68f91b6
Binary files /dev/null and b/server/files/sounds/converted/thanx.wav differ
diff --git a/server/files/sounds/converted/welcome-acme.wav b/server/files/sounds/converted/welcome-acme.wav
new file mode 100644
index 0000000..e5b8b9a
Binary files /dev/null and b/server/files/sounds/converted/welcome-acme.wav differ
diff --git a/server/files/sounds/original/README.md b/server/files/sounds/original/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/sounds/original/agentmanagement-action-failure.wav b/server/files/sounds/original/agentmanagement-action-failure.wav
new file mode 100644
index 0000000..aedcb88
Binary files /dev/null and b/server/files/sounds/original/agentmanagement-action-failure.wav differ
diff --git a/server/files/sounds/original/agentmanagement-login.mp3 b/server/files/sounds/original/agentmanagement-login.mp3
new file mode 100644
index 0000000..01a24b7
Binary files /dev/null and b/server/files/sounds/original/agentmanagement-login.mp3 differ
diff --git a/server/files/sounds/original/agentmanagement-logout.mp3 b/server/files/sounds/original/agentmanagement-logout.mp3
new file mode 100644
index 0000000..41c7843
Binary files /dev/null and b/server/files/sounds/original/agentmanagement-logout.mp3 differ
diff --git a/server/files/sounds/original/agentmanagement-menu.wav b/server/files/sounds/original/agentmanagement-menu.wav
new file mode 100644
index 0000000..1f8f5be
Binary files /dev/null and b/server/files/sounds/original/agentmanagement-menu.wav differ
diff --git a/server/files/sounds/original/agentmanagement-pause.mp3 b/server/files/sounds/original/agentmanagement-pause.mp3
new file mode 100644
index 0000000..9a44123
Binary files /dev/null and b/server/files/sounds/original/agentmanagement-pause.mp3 differ
diff --git a/server/files/sounds/original/agentmanagement-unpause.mp3 b/server/files/sounds/original/agentmanagement-unpause.mp3
new file mode 100644
index 0000000..99d03ed
Binary files /dev/null and b/server/files/sounds/original/agentmanagement-unpause.mp3 differ
diff --git a/server/files/sounds/original/order-elaborated.wav b/server/files/sounds/original/order-elaborated.wav
new file mode 100644
index 0000000..f02a863
Binary files /dev/null and b/server/files/sounds/original/order-elaborated.wav differ
diff --git a/server/files/sounds/original/order-number.wav b/server/files/sounds/original/order-number.wav
new file mode 100644
index 0000000..91a8290
Binary files /dev/null and b/server/files/sounds/original/order-number.wav differ
diff --git a/server/files/sounds/original/order-shipped.wav b/server/files/sounds/original/order-shipped.wav
new file mode 100644
index 0000000..d88744d
Binary files /dev/null and b/server/files/sounds/original/order-shipped.wav differ
diff --git a/server/files/sounds/original/rate-call.wav b/server/files/sounds/original/rate-call.wav
new file mode 100644
index 0000000..5949011
Binary files /dev/null and b/server/files/sounds/original/rate-call.wav differ
diff --git a/server/files/sounds/original/thanx.wav b/server/files/sounds/original/thanx.wav
new file mode 100644
index 0000000..68f91b6
Binary files /dev/null and b/server/files/sounds/original/thanx.wav differ
diff --git a/server/files/sounds/original/welcome-acme.wav b/server/files/sounds/original/welcome-acme.wav
new file mode 100644
index 0000000..e5b8b9a
Binary files /dev/null and b/server/files/sounds/original/welcome-acme.wav differ
diff --git a/server/files/templates/chatOfflineMessage.ejs b/server/files/templates/chatOfflineMessage.ejs
new file mode 100644
index 0000000..80cbf5b
--- /dev/null
+++ b/server/files/templates/chatOfflineMessage.ejs
@@ -0,0 +1,16 @@
+<!doctype html>
+<html lang="en">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+    <p>
+        <%- bodyTitle %>
+    </p>
+        <% body.forEach(function(data) { -%>
+            <span>
+                <%= data[0] %>: <%= data[1] %>
+            </span><br >
+            <% }); -%>
+</body>
+</html>
\ No newline at end of file
diff --git a/server/files/templates/context.ejs b/server/files/templates/context.ejs
new file mode 100644
index 0000000..c69d531
--- /dev/null
+++ b/server/files/templates/context.ejs
@@ -0,0 +1,5 @@
+<% contexts.forEach(function(context) { -%>
+[<%- context.name %>]
+include => <%- context.name %>-custom
+switch => Realtime
+<% }); %>
diff --git a/server/files/templates/network.ejs b/server/files/templates/network.ejs
new file mode 100644
index 0000000..a4bd2ce
--- /dev/null
+++ b/server/files/templates/network.ejs
@@ -0,0 +1,3 @@
+<% networks.forEach(function(network) { -%>
+<%- network.type.toLowerCase() %> = <%- network.value %>
+<% }); %>
diff --git a/server/files/templates/registry.ejs b/server/files/templates/registry.ejs
new file mode 100644
index 0000000..33c1342
--- /dev/null
+++ b/server/files/templates/registry.ejs
@@ -0,0 +1,5 @@
+<% trunks.forEach(function(trunk) { -%>
+<% if (trunk.active && trunk.registry) { -%>
+register => <%- trunk.registry %>
+<% } -%>
+<% }); %>
diff --git a/server/files/templates/stun_multiple.ejs b/server/files/templates/stun_multiple.ejs
new file mode 100644
index 0000000..594a229
--- /dev/null
+++ b/server/files/templates/stun_multiple.ejs
@@ -0,0 +1,8 @@
+; STUN server list
+
+<% networks.forEach(function(network) { -%>
+<% if (network.value) { -%>
+stunaddr=<%- network.value %>   
+<% } -%>
+;-------------------------------------------
+<% }); %>
diff --git a/server/files/templates/trunk.ejs b/server/files/templates/trunk.ejs
new file mode 100644
index 0000000..337b56f
--- /dev/null
+++ b/server/files/templates/trunk.ejs
@@ -0,0 +1,30 @@
+<% trunks.forEach(function(trunk) { -%>
+<% if (trunk.active) { -%>
+[<%- trunk.name %>]
+<% for (var key in trunk) { -%>
+<% if (trunk[key]) { -%>
+<% switch(key) {
+case 'allow': -%>
+<% trunk[key].split(';').forEach(function(codec) { -%>
+allow=<%- codec %>
+<% }); -%>
+<% break; -%>
+<% case 'id':
+case 'active':
+case 'createdAt':
+case 'updatedAt':
+case 'registry':
+case 'status':
+case 'otherFields':
+break; -%>
+<% default: -%>
+<%- key %>=<%- trunk[key] %>
+<% } -%>
+<% } -%>
+<% } -%>
+<% if (trunk.otherFields) { -%>
+<%- trunk.otherFields %>
+<% } -%>
+<% } -%>
+
+<% }); %>
diff --git a/server/files/templates/turn_multiple.ejs b/server/files/templates/turn_multiple.ejs
new file mode 100644
index 0000000..67ef834
--- /dev/null
+++ b/server/files/templates/turn_multiple.ejs
@@ -0,0 +1,14 @@
+; TURN server list
+
+<% networks.forEach(function(network) { -%>
+<% if (network.value) { -%>
+turnaddr=<%- network.value %>
+<% } -%>
+<% if (network.username) { -%>
+turnusername=<%- network.username %>
+<% } -%>
+<% if (network.password) { -%>
+turnpassword=<%- network.password %>
+<% } -%>
+;-------------------------------------------
+<% }); %>
\ No newline at end of file
diff --git a/server/files/tmp/README.md b/server/files/tmp/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/files/transcribes/README.md b/server/files/transcribes/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/server/migrations/2.0.12.js b/server/migrations/2.0.12.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.12.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.13.js b/server/migrations/2.0.13.js
new file mode 100644
index 0000000..89b9a84
--- /dev/null
+++ b/server/migrations/2.0.13.js
@@ -0,0 +1,70 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  return this.queryInterface
+    .removeColumn(table, column)
+    .then(function(res) {
+      logger.info('Removed column %s from %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  return this.queryInterface
+    .renameColumn(table, oldColumn, newColumn)
+    .then(function(res) {
+      logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+    migration.addColumn('cm_hopper_final', 'deletedat', {
+      type: Sequelize.DATE
+    });
+    migration.addColumn('users', 'phoneBarRingInUse', {
+      type: Sequelize.BOOLEAN,
+      defaultValue: false
+    });
+    migration.addColumn('cm_hopper_final', 'deleted', {
+      type: Sequelize.STRING,
+      defaultValue: null
+    });
+    migration.renameColumn('cm_hopper_final', 'reschedule', 'rescheduled');
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface, Sequelize);
+    migration.removeColumn('users', 'phoneBarRingInUse');
+    migration.removeColumn('cm_hopper_final', 'deletedat');
+    migration.removeColumn('cm_hopper_final', 'deleted');
+    migration.renameColumn('cm_hopper_final', 'rescheduled', 'reschedule');
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.14.js b/server/migrations/2.0.14.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.14.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.15.js b/server/migrations/2.0.15.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.15.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.16.js b/server/migrations/2.0.16.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.16.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.17.js b/server/migrations/2.0.17.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.17.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.18.js b/server/migrations/2.0.18.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.18.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.19.js b/server/migrations/2.0.19.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.19.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.20.js b/server/migrations/2.0.20.js
new file mode 100644
index 0000000..668a157
--- /dev/null
+++ b/server/migrations/2.0.20.js
@@ -0,0 +1,70 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  return this.queryInterface
+    .removeColumn(table, column)
+    .then(function(res) {
+      logger.info('Removed column %s from %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  return this.queryInterface
+    .renameColumn(table, oldColumn, newColumn)
+    .then(function(res) {
+      logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+Migration.prototype.dropTable = function(table) {
+  return this.queryInterface
+    .dropTable(table)
+    .then(function(res) {
+      logger.info('table dropped %s', table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.dropTable('jscripty_projects');
+    migration.dropTable('report_jscripty_inputs');
+    migration.dropTable('report_jscripty_questions');
+    migration.dropTable('report_jscripty_sessions');
+  },
+
+  down: function(queryInterface, Sequelize) {
+
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.21.js b/server/migrations/2.0.21.js
new file mode 100644
index 0000000..600583d
--- /dev/null
+++ b/server/migrations/2.0.21.js
@@ -0,0 +1,81 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  return this.queryInterface
+    .removeColumn(table, column)
+    .then(function(res) {
+      logger.info('Removed column %s from %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  return this.queryInterface
+    .renameColumn(table, oldColumn, newColumn)
+    .then(function(res) {
+      logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+Migration.prototype.dropTable = function(table) {
+  return this.queryInterface
+    .dropTable(table)
+    .then(function(res) {
+      logger.info('table dropped %s', table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.dropTable('jscripty_projects', {
+      force: true
+    });
+
+    migration.dropTable('report_jscripty_inputs', {
+      force: true
+    });
+
+    migration.dropTable('report_jscripty_questions', {
+      force: true
+    });
+
+    migration.dropTable('report_jscripty_sessions', {
+      force: true
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.22.js b/server/migrations/2.0.22.js
new file mode 100644
index 0000000..6892d1b
--- /dev/null
+++ b/server/migrations/2.0.22.js
@@ -0,0 +1,78 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  return this.queryInterface
+    .removeColumn(table, column)
+    .then(function(res) {
+      logger.info('Removed column %s from %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  return this.queryInterface
+    .renameColumn(table, oldColumn, newColumn)
+    .then(function(res) {
+      logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+Migration.prototype.dropTable = function(table) {
+  return this.queryInterface
+    .dropTable(table)
+    .then(function(res) {
+      logger.info('table dropped %s', table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.dropTable('report_jscripty_answers', {
+      force: true
+    });
+
+    migration.dropTable('report_jscripty_questions', {
+      force: true
+    });
+
+    migration.dropTable('report_jscripty_sessions', {
+      force: true
+    });
+
+  },
+
+  down: function(queryInterface, Sequelize) {
+
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.23.js b/server/migrations/2.0.23.js
new file mode 100644
index 0000000..26f02f4
--- /dev/null
+++ b/server/migrations/2.0.23.js
@@ -0,0 +1,97 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  return this.queryInterface
+    .removeColumn(table, column)
+    .then(function(res) {
+      logger.info('Removed column %s from %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  return this.queryInterface
+    .renameColumn(table, oldColumn, newColumn)
+    .then(function(res) {
+      logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+Migration.prototype.dropTable = function(table) {
+  return this.queryInterface
+    .dropTable(table)
+    .then(function(res) {
+      logger.info('table dropped %s', table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.addColumn('int_salesforce_accounts', 'type', {
+      type: Sequelize.ENUM('integrationTab', 'newTab'),
+      defaultValue: 'integrationTab'
+    });
+
+    migration.addColumn('int_zendesk_accounts', 'type', {
+      type: Sequelize.ENUM('integrationTab', 'newTab'),
+      defaultValue: 'integrationTab'
+    });
+
+    migration.dropTable('user_has_openchannel_rooms', {
+      force: true
+    });
+
+    migration.dropTable('openchannel_messages', {
+      force: true
+    });
+
+    migration.dropTable('openchannel_rooms', {
+      force: true
+    });
+
+    migration.dropTable('openchannel_applications', {
+      force: true
+    });
+
+    migration.dropTable('openchannel_accounts', {
+      force: true
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+    migration.removeColumn('int_salesforce_accounts', 'type');
+    migration.removeColumn('int_zendesk_accounts', 'type');
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.24.js b/server/migrations/2.0.24.js
new file mode 100644
index 0000000..de48944
--- /dev/null
+++ b/server/migrations/2.0.24.js
@@ -0,0 +1,69 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  return this.queryInterface
+    .removeColumn(table, column)
+    .then(function(res) {
+      logger.info('Removed column %s from %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  return this.queryInterface
+    .renameColumn(table, oldColumn, newColumn)
+    .then(function(res) {
+      logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+Migration.prototype.dropTable = function(table) {
+  return this.queryInterface
+    .dropTable(table)
+    .then(function(res) {
+      logger.info('table dropped %s', table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.dropTable('tools_schedules', {
+      force: true
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.25.js b/server/migrations/2.0.25.js
new file mode 100644
index 0000000..a9f3c66
--- /dev/null
+++ b/server/migrations/2.0.25.js
@@ -0,0 +1,76 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.insertExtension = function(query) {
+  return this.queryInterface.sequelize.query(query)
+    .then(function(res) {
+      logger.info('Insert new row in voice_extensions');
+    })
+    .catch(function(err) {
+      logger.info(util.inspect(err, {
+        showHidden: false,
+        depth: null
+      }));
+    });
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  return this.queryInterface
+    .changeColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Changed column %s in table %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(util.inspect(err, {
+        showHidden: false,
+        depth: null
+      }));
+    });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.insertExtension("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `appType`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'failed', '1', 'NoOp', 'system', 'catch failed event auto generated', 'custom', NOW(), NOW());");
+    migration.insertExtension("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `appType`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'failed', '2', 'Hangup', 'system', 'catch failed event auto generated', 'custom', NOW(), NOW());");
+    migration.changeColumn('users', 'allow', {
+      type: Sequelize.STRING,
+      defaultValue: 'ulaw;gsm'
+    });
+
+    migration.changeColumn('tools_trunks', 'allow', {
+      type: Sequelize.STRING,
+      defaultValue: 'ulaw;gsm;alaw'
+    });
+
+    migration.addColumn('voice_queues', 'dialPrefix', {
+      type: Sequelize.STRING,
+      defaultValue: null
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.26.js b/server/migrations/2.0.26.js
new file mode 100644
index 0000000..96330f7
--- /dev/null
+++ b/server/migrations/2.0.26.js
@@ -0,0 +1,92 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  return this.queryInterface
+    .changeColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Changed column %s in table %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(util.inspect(err, {
+        showHidden: false,
+        depth: null
+      }));
+    });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  return this.queryInterface
+    .addColumn(table, column, type)
+    .then(function(res) {
+      logger.info('Added column %s to %s', column, table);
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+
+    migration.changeColumn('tools_trunks', 'sendrpid', {
+      type: Sequelize.ENUM('yes', 'no', 'pai'),
+      defaultValue: 'no'
+    });
+
+    migration.addColumn('mail_servers_out', 'authentication', {
+      type: Sequelize.BOOLEAN,
+      defaultValue: true
+    });
+
+    migration.changeColumn('voice_queues', 'timeout', {
+      type: Sequelize.INTEGER(11),
+      defaultValue: 15
+    });
+
+    migration.changeColumn('voice_queues', 'retry', {
+      type: Sequelize.INTEGER(11),
+      defaultValue: 2
+    });
+
+    migration.changeColumn('users', 'allow', {
+      type: Sequelize.STRING,
+      allowNull: false,
+      defaultValue: 'ulaw;alaw;gsm'
+    });
+
+    migration.changeColumn('tools_trunks', 'allow', {
+      type: Sequelize.STRING,
+      allowNull: false,
+      defaultValue: 'ulaw;alaw;gsm'
+    });
+
+    migration.addColumn('voice_queues', 'dialCheckDuplicateType', {
+      type: Sequelize.ENUM('always', 'never', 'onlyIfOpen'),
+      defaultValue: 'always'
+    });
+
+    migration.addColumn('campaigns', 'dialCheckDuplicateType', {
+      type: Sequelize.ENUM('always', 'never', 'onlyIfOpen'),
+      defaultValue: 'always'
+    });
+
+    migration.addColumn('mail_accounts', 'email', {
+      type: Sequelize.STRING
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.27.js b/server/migrations/2.0.27.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.27.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.28.js b/server/migrations/2.0.28.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.28.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.29.js b/server/migrations/2.0.29.js
new file mode 100644
index 0000000..e9eed3f
--- /dev/null
+++ b/server/migrations/2.0.29.js
@@ -0,0 +1,380 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START CHAT
+      migration.dropTable('user_has_chat_rooms');
+      migration.dropTable('chat_enquiries');
+      migration.dropTable('chat_messages');
+      migration.dropTable('chat_proactive_actions');
+      migration.dropTable('chat_dispositions');
+      migration.dropTable('chat_applications');
+      migration.dropTable('user_has_chat_interactions');
+      migration.dropTable('chat_interactions');
+      migration.dropTable('team_has_chat_queues');
+      migration.dropTable('user_has_chat_queues');
+      migration.dropTable('chat_queues');
+      migration.dropTable('chat_websites');
+      // END CHAT
+
+      // START OPENCHANNEL
+      migration.dropTable('openchannel_messages');
+      migration.dropTable('user_has_openchannel_interactions');
+      migration.dropTable('openchannel_interactions');
+      // END OPENCHANNEL
+
+      migration.addIndex('cm_hopper', ['phone'], 'phone');
+
+      migration.addIndex('cm_hopper_final', ['calleridnum'], 'calleridnum');
+
+      migration.addColumn('users', 'phoneBarUnconditionalNumber', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('users', 'phoneBarNoReplyNumber', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('users', 'phoneBarBusyNumber', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('users', 'phoneBarUnconditional', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('users', 'phoneBarNoReply', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('users', 'phoneBarBusy', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('users', 'phoneBarDnd', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.changeColumn('campaigns', 'dialQueueTimeout', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 3,
+        validate: {
+          min: 1,
+          max: 999
+        },
+        comment: 'Queue Timeout Seconds (min:1, max:999)'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDActive', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: 0,
+        comment: 'Active/Disactive AMD'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDInitialSilence', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 2500,
+        comment: '#AMD Initial Silence'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDGreeting', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 1500,
+        comment: '#AMD Greeting'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDAfterGreetingSilence', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 800,
+        comment: '#AMD After Greeting Silence'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDTotalAnalysisTime', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 5000,
+        comment: '#AMD Total Analysis Time'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDMinWordLength', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 100,
+        comment: '#AMD Min Word Length'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDBetweenWordsSilence', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 50,
+        comment: '#AMD Between Words Silence'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDMaximumNumberOfWords', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 3,
+        comment: '#AMD Maximum Number Of Words'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDSilenceThreshold', {
+        type: Sequelize.INTEGER(5).UNSIGNED,
+        validate: {
+          min: 0,
+          max: 32767
+        },
+        defaultValue: 256,
+        comment: '#AMD Silence Threshold (min:0, max:32767)'
+      });
+
+      migration.addColumn('voice_queues', 'dialAMDMaximumWordLength', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 5000,
+        comment: '#AMD Maximum Word Length'
+      });
+
+
+      migration.addColumn('campaigns', 'dialAMDActive', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: 0,
+        comment: 'Active/Disactive AMD'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDInitialSilence', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 2500,
+        comment: '#AMD Initial Silence'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDGreeting', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 1500,
+        comment: '#AMD Greeting'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDAfterGreetingSilence', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 800,
+        comment: '#AMD After Greeting Silence'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDTotalAnalysisTime', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 5000,
+        comment: '#AMD Total Analysis Time'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDMinWordLength', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 100,
+        comment: '#AMD Min Word Length'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDBetweenWordsSilence', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 50,
+        comment: '#AMD Between Words Silence'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDMaximumNumberOfWords', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 3,
+        comment: '#AMD Maximum Number Of Words'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDSilenceThreshold', {
+        type: Sequelize.INTEGER(5).UNSIGNED,
+        validate: {
+          min: 0,
+          max: 32767
+        },
+        defaultValue: 256,
+        comment: '#AMD Silence Threshold (min:0, max:32767)'
+      });
+
+      migration.addColumn('campaigns', 'dialAMDMaximumWordLength', {
+        type: Sequelize.INTEGER(9).UNSIGNED,
+        validate: {
+          min: 0
+        },
+        defaultValue: 5000,
+        comment: '#AMD Maximum Word Length'
+      });
+
+      migration.query("DELETE FROM `voice_extensions` WHERE exten = 'xcally-motion-dialer';");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '1', 'NoOp', '', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '2', 'set', 'CDR(type)=dialer', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '3', 'set', 'CALLERID(all)=${XMD-CALLERID}', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '4', 'gotoif', '$[\"${XMD-AMD}\" != \"NONE\" ]?5:9', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '6', 'gotoif', '$[\"${AMDSTATUS}\" == \"HUMAN\" ]?9:7', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`,`createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '7', 'gotoif', '$[\"${AMDSTATUS}\" == \"NOTSURE\" ]?9:8', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`,`createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '8', 'gotoif', '$[\"${AMDSTATUS}\" == \"MACHINE\" ]?11:9', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '9', 'execif', '$[\"${XMD-AGI}\" != \"NONE\" ]?AGI(${XMD-AGI})', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '10', 'execif', '$[\"${XMD-QUEUE}\" != \"NONE\" ]?QUEUE(${XMD-QUEUE})', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '11', 'hangup', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.30.js b/server/migrations/2.0.30.js
new file mode 100644
index 0000000..1d69e33
--- /dev/null
+++ b/server/migrations/2.0.30.js
@@ -0,0 +1,141 @@
+'use strict';
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START CHAT
+      migration.dropTable('user_has_chat_rooms');
+      migration.dropTable('chat_enquiries');
+      migration.dropTable('chat_messages');
+      migration.dropTable('chat_proactive_actions');
+      migration.dropTable('chat_dispositions');
+      migration.dropTable('chat_applications');
+      migration.dropTable('user_has_chat_interactions');
+      migration.dropTable('chat_interactions');
+      migration.dropTable('team_has_chat_queues');
+      migration.dropTable('user_has_chat_queues');
+      migration.dropTable('chat_queues');
+      migration.dropTable('chat_visitors');
+      migration.dropTable('chat_websites_fields');
+      migration.dropTable('chat_websites');
+      // END CHAT
+
+      migration.changeColumn('voice_queues', 'dialQueueTimeout', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 3,
+        validate: {
+          min: 1,
+          max: 999
+        },
+        comment: 'Queue Timeout Seconds (min:1, max:999)'
+      });
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+
+    });
+
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.31.js b/server/migrations/2.0.31.js
new file mode 100644
index 0000000..bddb9b9
--- /dev/null
+++ b/server/migrations/2.0.31.js
@@ -0,0 +1,194 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SMS
+      migration.dropTable('sms_messages');
+      migration.dropTable('sms_dispositions');
+      migration.dropTable('sms_applications');
+      migration.dropTable('user_has_sms_interactions');
+      migration.dropTable('sms_interactions');
+      migration.dropTable('team_has_sms_queues');
+      migration.dropTable('user_has_sms_queues');
+      migration.dropTable('sms_queues');
+      migration.dropTable('sms_accounts');
+      // END SMS
+
+      // START CM CONTACTS
+      migration.addColumn('cm_contacts', 'facebook', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('cm_contacts', 'twitter', {
+        type: Sequelize.STRING
+      });
+      // END CM CONTACTS
+
+      // START CHAT WEBSITES
+      migration.query('ALTER TABLE chat_websites DROP FOREIGN KEY chat_websites_ibfk_2');
+      migration.query('ALTER TABLE chat_websites DROP COLUMN OfflineTemplateId');
+      migration.addColumn('chat_websites', 'timezone', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_websites', 'token', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_websites', 'IntervalId', {
+        type: Sequelize.INTEGER(11)
+      });
+      migration.query('ALTER TABLE chat_websites ADD CONSTRAINT chat_websites_ibfk_2 FOREIGN KEY (IntervalId) REFERENCES tools_intervals(id) ON UPDATE CASCADE ON DELETE SET NULL');
+      // END CHAT WEBSITES
+
+      // START TRANSFER
+      migration.addColumn('report_queue', 'transfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('report_queue', 'transfertype', {
+        type: Sequelize.STRING,
+        comment: 'FORWARD, BLIND, ATTENDED'
+      });
+      migration.addColumn('report_queue', 'transferexten', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('report_queue', 'transferuniqueid', {
+        type: Sequelize.STRING
+      });
+      // END TRANSFER
+
+      //START JSCRIPTY
+      migration.addColumn('report_jscripty_answers', 'questionId', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('report_jscripty_questions', 'questionId', {
+        type: Sequelize.STRING
+      });
+      //END JSCRIPTY
+
+      // START USER PHONEBAR
+      migration.addColumn('users', 'phoneBarUnansweredCallBadge', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END USER PHONEBAR
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '1', 'NoOp', '', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '2', 'set', 'CDR(type)=dialer', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '3', 'set', 'CALLERID(all)=${XMD-CALLERID}', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '4', 'dial', '${XMD-DIALCHANNEL},${XMD-DIALTIMEOUT},${XMD-DIALOPTIONS},${XMD-DIALURL}', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '5', 'hangup', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+      // END EXTENSION DIALER
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.32.js b/server/migrations/2.0.32.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.32.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.33.js b/server/migrations/2.0.33.js
new file mode 100644
index 0000000..5379c35
--- /dev/null
+++ b/server/migrations/2.0.33.js
@@ -0,0 +1,243 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START CHATWEBSITE
+      migration.addColumn('chat_websites', 'agentAlias', {
+        type: Sequelize.STRING,
+        defaultValue: 'Agent'
+      });
+      migration.addColumn('chat_websites', 'mapKeyOffline', {
+        type: Sequelize.STRING,
+        defaultValue: 'email'
+      });
+      migration.addColumn('chat_websites', 'sitepic', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('chat_websites', 'closingMessage', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('chat_websites', 'closingMessageButton', {
+        type: Sequelize.STRING,
+        defaultValue: 'Send'
+      });
+      migration.addColumn('chat_websites', 'enableRating', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'ratingType', {
+        type: Sequelize.ENUM('star', 'thumb'),
+        defaultValue: 'star'
+      });
+      migration.addColumn('chat_websites', 'ratingStarsNumber', {
+        type: Sequelize.INTEGER,
+        defaultValue: 5
+      });
+      migration.addColumn('chat_interactions', 'ratingValue', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('chat_interactions', 'ratingMessage', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('chat_interactions', 'pathTranscript', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('chat_interactions', 'mailTranscript', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_websites', 'forwardTranscript', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'forwardOffline', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'forwardOfflineAddress', {
+        type: Sequelize.STRING,
+        validate: {
+          isEmail: true
+        }
+      });
+      migration.changeColumn('chat_websites', 'color', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#9f946a'
+      });
+      migration.changeColumn('chat_websites', 'color_button', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#9f946a'
+      });
+      // END CHATWEBSITE
+
+      // START FAX
+      migration.dropTable('fax_attachments');
+      migration.dropTable('user_has_fax_rooms');
+      migration.dropTable('fax_rooms');
+      migration.dropTable('fax_messages');
+      migration.dropTable('fax_dispositions');
+      migration.dropTable('fax_applications');
+      migration.dropTable('user_has_fax_interactions');
+      migration.dropTable('fax_interactions');
+      migration.dropTable('team_has_fax_queues');
+      migration.dropTable('user_has_fax_queues');
+      migration.dropTable('fax_queues');
+      migration.removeColumn('fax_accounts', 'fidelity');
+      migration.removeColumn('fax_accounts', 'timeout');
+      migration.removeColumn('fax_accounts', 'acceptUrl');
+      migration.removeColumn('fax_accounts', 'rejectUrl');
+      migration.removeColumn('fax_accounts', 'acceptMethod');
+      migration.removeColumn('fax_accounts', 'rejectMethod');
+      migration.removeColumn('fax_accounts', 'actions');
+      migration.removeColumn('fax_accounts', 'closeUrl');
+      migration.removeColumn('fax_accounts', 'closeMethod');
+      // END FAX
+
+      //START USER_HAS_CHAT_QUEUES
+      migration.removeColumn('user_has_chat_queues', 'assigned');
+      migration.removeColumn('user_has_chat_queues', 'queue');
+      //END USER_HAS_CHAT_QUEUES
+
+      //START USER_HAS_OPENCHANNEL_QUEUES
+      migration.removeColumn('user_has_openchannel_queues', 'assigned');
+      migration.removeColumn('user_has_openchannel_queues', 'queue');
+      //END USER_HAS_OPENCHANNEL_QUEUES
+
+      //START Priority
+      migration.addColumn('cm_hopper', 'priority', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 2
+      });
+      migration.addIndex('cm_hopper', ['priority'], 'priority');
+      //END Priority
+
+      //START sms_messages
+      migration.dropTable('sms_messages');
+      //START sms_messages
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.34.js b/server/migrations/2.0.34.js
new file mode 100644
index 0000000..64da570
--- /dev/null
+++ b/server/migrations/2.0.34.js
@@ -0,0 +1,412 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START CHATWEBSITE
+      migration.addColumn('chat_websites', 'key', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.addColumn('chat_websites', 'forwardTranscriptMessage', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_websites', 'skipMessageButton', {
+        type: Sequelize.STRING,
+        defaultValue: 'Skip'
+      });
+      migration.addColumn('chat_websites', 'enableFeedback', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'enableCustomerWriting', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'conditionAgreement', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'waitingTitle', {
+        type: Sequelize.STRING,
+        defaultValue: 'All of our agents are busy at this time. Your chat is very important to us.'
+      });
+      migration.addColumn('chat_websites', 'waitingMessage', {
+        type: Sequelize.STRING,
+        defaultValue: 'Please hold and we will answer your request as soon as possible.'
+      });
+      migration.addColumn('chat_websites', 'autoclose', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('chat_websites', 'unmanagedMessage', {
+        type: Sequelize.STRING,
+        defaultValue: 'Your request has not been processed.'
+      });
+      migration.addColumn('chat_websites', 'enableUnmanagedNote', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('chat_websites', 'sendUnmanaged', {
+        type: Sequelize.STRING,
+        defaultValue: 'Send'
+      });
+      migration.addColumn('chat_websites', 'skipUnmanaged', {
+        type: Sequelize.STRING,
+        defaultValue: 'Skip'
+      });
+      migration.changeColumn('chat_websites', 'closingMessage', {
+        type: Sequelize.STRING,
+        defaultValue: 'Thanks you for your time!'
+      });
+      // END CHATWEBSITE
+
+      // START CHATINTERACTION
+      migration.addColumn('chat_interactions', 'browserName', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'browserVersion', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'osName', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'osVersion', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'deviceModel', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'deviceVendor', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'deviceType', {
+        type: Sequelize.STRING
+      });
+      // END CHATINTERACTION
+
+      // START CHATMESSAGES
+      migration.addColumn('chat_messages', 'AttachmentId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE `chat_messages` \
+            ADD CONSTRAINT `chat_messages_ibfk_5` \
+            FOREIGN KEY (`AttachmentId`) \
+            REFERENCES attachments(`id`) \
+            ON UPDATE CASCADE \
+            ON DELETE SET NULL');
+      // END CHATMESSAGES
+
+      // START RECALLME
+      migration.addColumn('voice_queues', 'dialRecallMeTimeout', {
+        type: Sequelize.INTEGER(5).UNSIGNED,
+        defaultValue: 30
+      });
+      migration.addColumn('voice_queues', 'dialRecallInQueue', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('cm_hopper', 'recallme', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('cm_hopper_final', 'recallme', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('cm_hopper_history', 'recallme', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // STOP RECALLME
+
+      // START RECORDINGS
+      migration.addColumn('voice_recordings', 'userDisposition', {
+        type: Sequelize.STRING
+      });
+      // STOP RECORDINGS
+
+      // START EMAIL
+      migration.dropTable('user_has_mail_rooms');
+
+      migration.query('ALTER TABLE mail_rooms DROP FOREIGN KEY mail_rooms_ibfk_1');
+      migration.query('ALTER TABLE mail_rooms DROP COLUMN MailAccountId');
+      migration.dropTable('mail_rooms');
+
+      migration.query('ALTER TABLE analytics_extracted_reports DROP FOREIGN KEY analytics_extracted_reports_ibfk_1');
+      migration.query('ALTER TABLE mail_messages DROP COLUMN MailMessageId');
+
+      migration.query('ALTER TABLE mail_messages DROP FOREIGN KEY mail_messages_ibfk_1');
+      migration.query('ALTER TABLE mail_messages DROP COLUMN MailRoomId');
+      migration.query('ALTER TABLE mail_messages DROP FOREIGN KEY mail_messages_ibfk_2');
+      migration.query('ALTER TABLE mail_messages DROP COLUMN UserId');
+      migration.dropTable('mail_messages');
+
+      migration.dropTable('mail_attachments');
+      migration.dropTable('mail_dispositions');
+      migration.dropTable('mail_applications');
+      migration.dropTable('user_has_mail_interactions');
+      migration.dropTable('mail_interactions');
+      migration.dropTable('team_has_mail_queues');
+      migration.dropTable('user_has_mail_queues');
+      migration.dropTable('mail_queues');
+
+      migration.removeColumn('mail_accounts', 'fidelity');
+      migration.removeColumn('mail_accounts', 'timeout');
+      migration.removeColumn('mail_accounts', 'whiteLabel');
+      migration.removeColumn('mail_accounts', 'acceptUrl');
+      migration.removeColumn('mail_accounts', 'rejectUrl');
+      migration.removeColumn('mail_accounts', 'acceptMethod');
+      migration.removeColumn('mail_accounts', 'rejectMethod');
+      migration.removeColumn('mail_accounts', 'actions');
+      migration.removeColumn('mail_accounts', 'closeUrl');
+      migration.removeColumn('mail_accounts', 'closeMethod');
+      migration.removeColumn('mail_accounts', 'signature');
+      migration.removeColumn('mail_accounts', 'custom');
+
+      migration.addColumn('mail_accounts', 'active', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.removeColumn('mail_servers_out', 'state');
+
+      migration.dropTable('mail_servers_in');
+
+      migration.query("CREATE TABLE `mail_interactions` ( \
+      `id` int(11) NOT NULL AUTO_INCREMENT, \
+      `closed` tinyint(1) DEFAULT '0', \
+      `closedAt` datetime DEFAULT NULL, \
+      `disposition` varchar(255) DEFAULT NULL, \
+      `note` varchar(255) DEFAULT NULL, \
+      `inReplyTo` varchar(190) DEFAULT NULL, \
+      `to` varchar(255) DEFAULT NULL, \
+      `cc` longtext, \
+      `subject` text, \
+      `createdAt` datetime NOT NULL, \
+      `updatedAt` datetime NOT NULL, \
+      `UserId` int(11) DEFAULT NULL, \
+      `MailAccountId` int(11) DEFAULT NULL, \
+      `ContactId` int(11) DEFAULT NULL, \
+      PRIMARY KEY (`id`), \
+      KEY `UserId` (`UserId`), \
+      KEY `MailAccountId` (`MailAccountId`), \
+      KEY `ContactId` (`ContactId`), \
+      CONSTRAINT `mail_interactions_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, \
+      CONSTRAINT `mail_interactions_ibfk_2` FOREIGN KEY (`MailAccountId`) REFERENCES `mail_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, \
+      CONSTRAINT `mail_interactions_ibfk_3` FOREIGN KEY (`ContactId`) REFERENCES `cm_contacts` (`id`) ON UPDATE CASCADE \
+    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
+
+      migration.query("CREATE TABLE `mail_messages` ( \
+              `id` int(11) NOT NULL AUTO_INCREMENT, \
+              `body` longtext COLLATE utf8mb4_unicode_ci NOT NULL, \
+              `read` tinyint(1) DEFAULT '0', \
+              `direction` enum('in','out') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'out', \
+              `messageId` varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL, \
+              `from` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, \
+              `to` longtext COLLATE utf8mb4_unicode_ci, \
+              `cc` longtext COLLATE utf8mb4_unicode_ci, \
+              `bcc` longtext COLLATE utf8mb4_unicode_ci, \
+              `subject` text COLLATE utf8mb4_unicode_ci, \
+              `sentAt` datetime DEFAULT NULL, \
+              `createdAt` datetime NOT NULL, \
+              `updatedAt` datetime NOT NULL, \
+              `MailAccountId` int(11) DEFAULT NULL, \
+              `MailInteractionId` int(11) DEFAULT NULL, \
+              `UserId` int(11) DEFAULT NULL, \
+              `ContactId` int(11) DEFAULT NULL, \
+              PRIMARY KEY (`id`), \
+              KEY `MailAccountId` (`MailAccountId`), \
+              KEY `MailInteractionId` (`MailInteractionId`), \
+              KEY `UserId` (`UserId`), \
+              KEY `ContactId` (`ContactId`), \
+              KEY `messageId` (`messageId`), \
+              CONSTRAINT `mail_messages_ibfk_1` FOREIGN KEY (`MailAccountId`) REFERENCES `mail_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, \
+              CONSTRAINT `mail_messages_ibfk_2` FOREIGN KEY (`MailInteractionId`) REFERENCES `mail_interactions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+              CONSTRAINT `mail_messages_ibfk_3` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, \
+              CONSTRAINT `mail_messages_ibfk_4` FOREIGN KEY (`ContactId`) REFERENCES `cm_contacts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+          ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;");
+      // STOP EMAIL
+
+      // START ATTACHMENTS
+      migration.query('CREATE TABLE `attachments` ( \
+        `id` int(11) NOT NULL AUTO_INCREMENT, \
+        `name` varchar(255) DEFAULT NULL, \
+        `basename` varchar(255) DEFAULT NULL, \
+        `type` varchar(255) DEFAULT NULL, \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `MailMessageId` int(11) DEFAULT NULL, \
+        PRIMARY KEY (`id`), \
+        KEY `MailMessageId` (`MailMessageId`), \
+        CONSTRAINT `attachments_ibfk_1` FOREIGN KEY (`MailMessageId`) REFERENCES `mail_messages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;');
+
+      migration.dropTable('fax_attachments');
+      // END ATTACHMENTS
+
+      // START SMS ACCOUNT
+      migration.addColumn('sms_accounts', 'phone', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'accountSid', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'authToken', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'key', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      // END SMS ACCOUNT
+
+      // START COLLATE CHANGE
+      migration.query('ALTER TABLE users CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;');
+      // migration.query('ALTER TABLE voice_extensions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;');
+      //END COLLATE CHANGE
+
+      //START OPENCHANNEL
+      migration.addColumn('openchannel_accounts', 'key', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      //END OPENCHANNEL
+
+      //START FAX
+      migration.addColumn('fax_accounts', 'key', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      //END FAX
+
+      //START MAIL
+      migration.addColumn('mail_accounts', 'key', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      //END MAIL
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.35.js b/server/migrations/2.0.35.js
new file mode 100644
index 0000000..49b46d4
--- /dev/null
+++ b/server/migrations/2.0.35.js
@@ -0,0 +1,326 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START REPORT
+      migration.addColumn('analytics_custom_reports', 'joins', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('analytics_default_reports', 'joins', {
+        type: Sequelize.TEXT
+      });
+      // END REPORT
+
+      // START CHAT MESSAGES
+      migration.query('ALTER TABLE `chat_messages` \
+        ADD CONSTRAINT `chat_messages_ibfk_5` \
+        FOREIGN KEY (`AttachmentId`) \
+        REFERENCES attachments(`id`) \
+        ON UPDATE CASCADE \
+        ON DELETE SET NULL');
+      // END CHAT MESSAGES
+
+      // START CHAT WEBSITE
+      migration.addColumn('chat_websites', 'offline_chat_button', {
+        type: Sequelize.STRING,
+        defaultValue: 'Send'
+      });
+      migration.addColumn('chat_websites', 'enableCustomerAttachment', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END CHAT WEBSITE
+
+      // START CHAT INTERACTION
+      migration.addColumn('chat_interactions', 'referer', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'customerIp', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('chat_interactions', 'ratingType', {
+        type: Sequelize.ENUM('star', 'thumb'),
+        defaultValue: 'star'
+      });
+      migration.query('ALTER TABLE chat_interactions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
+      // END CHAT INTERACTION
+
+      // START EMAIL
+      migration.addColumn('mail_messages', 'body', {
+        type: Sequelize.TEXT('long'),
+        allowNull: false
+      });
+      migration.addColumn('mail_messages', 'read', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('mail_messages', 'direction', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'out',
+        allowNull: false
+      });
+      migration.changeColumn('mail_messages', 'messageId', {
+        type: Sequelize.STRING(190)
+      });
+      migration.removeColumn('mail_messages', 'inReplyTo');
+      migration.changeColumn('mail_messages', 'to', {
+        type: Sequelize.TEXT('long')
+      });
+      migration.changeColumn('mail_messages', 'cc', {
+        type: Sequelize.TEXT('long')
+      });
+      migration.changeColumn('mail_messages', 'bcc', {
+        type: Sequelize.TEXT('long')
+      });
+      migration.changeColumn('mail_messages', 'subject', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('mail_messages', 'sentAt', {
+        type: Sequelize.DATE
+      });
+      migration.addColumn('mail_messages', 'attach', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.removeColumn('mail_messages', 'fromId');
+      migration.removeColumn('mail_messages', 'attachment');
+      migration.removeColumn('mail_messages', 'text');
+      migration.removeColumn('mail_messages', 'html');
+      migration.removeColumn('mail_messages', 'reason');
+      migration.removeColumn('mail_messages', 'auto');
+      migration.removeColumn('mail_messages', 'status');
+      migration.removeColumn('mail_messages', 'retry');
+      migration.removeColumn('mail_messages', 'voiceSource');
+      migration.removeColumn('mail_messages', 'userName');
+      migration.removeColumn('mail_messages', 'userFullname');
+      migration.removeColumn('mail_messages', 'accountId');
+      migration.removeColumn('mail_messages', 'accountName');
+      migration.removeColumn('mail_messages', 'MailInteractionId');
+
+      migration.addColumn('mail_messages', 'MailAccountId', {
+        type: Sequelize.INTEGER,
+      });
+      migration.query('ALTER TABLE `mail_messages` \
+            ADD CONSTRAINT `mail_messages_ibfk_1` \
+            FOREIGN KEY (`MailAccountId`) \
+            REFERENCES mail_accounts(`id`) \
+            ON UPDATE CASCADE \
+            ON DELETE SET NULL');
+
+      migration.addColumn('mail_messages', 'MailInteractionId', {
+        type: Sequelize.INTEGER,
+      });
+      migration.query('ALTER TABLE `mail_messages` \
+            ADD CONSTRAINT `mail_messages_ibfk_2` \
+            FOREIGN KEY (`MailInteractionId`) \
+            REFERENCES mail_interactions(`id`) \
+            ON UPDATE CASCADE \
+            ON DELETE CASCADE');
+
+      migration.addColumn('mail_messages', 'UserId', {
+        type: Sequelize.INTEGER,
+      });
+      migration.query('ALTER TABLE `mail_messages` \
+            ADD CONSTRAINT `mail_messages_ibfk_3` \
+            FOREIGN KEY (`UserId`) \
+            REFERENCES users(`id`) \
+            ON UPDATE CASCADE \
+            ON DELETE SET NULL');
+
+      migration.addColumn('mail_messages', 'ContactId', {
+        type: Sequelize.INTEGER,
+      });
+      migration.query('ALTER TABLE `mail_messages` \
+            ADD CONSTRAINT `mail_messages_ibfk_4` \
+            FOREIGN KEY (`ContactId`) \
+            REFERENCES cm_contacts(`id`) \
+            ON UPDATE CASCADE \
+            ON DELETE CASCADE');
+
+      migration.query('ALTER TABLE mail_messages CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
+
+      migration.addColumn('mail_interactions', 'attach', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('mail_accounts', 'signature', {
+        type: Sequelize.TEXT
+      });
+      // END MAIL
+
+      // START TEMPLATE
+      migration.removeColumn('tools_templates', 'subject');
+      // END TEMPLATE
+
+      // START USER
+      migration.addColumn('users', 'phoneBarEnableDtmfTone', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'phoneBarAutoAnswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      // END USER
+
+      // START REPORT QUEUE MULTICHANNEL
+      migration.dropTable('report_openchannel');
+      migration.dropTable('report_openchannel_session');
+      migration.dropTable('report_chat');
+      migration.dropTable('report_chat_session');
+      migration.dropTable('report_fax');
+      migration.dropTable('report_fax_session');
+      migration.dropTable('report_mail');
+      migration.dropTable('report_mail_session');
+      migration.dropTable('report_sms');
+      migration.dropTable('report_sms_session');
+      // END REPORT QUEUE MULTICHANNEL
+
+      // START EDIT HOPPER
+      migration.addColumn('cm_hopper_history', 'editedat', {
+        type: Sequelize.DATE
+      });
+      migration.addColumn('cm_hopper_history', 'edited', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END EDIT HOPPER
+
+      // START EDIT VOICE QUEUE / CAMPAIGN
+      migration.addColumn('voice_queues', 'dialOrderByScheduledAt', {
+        type: Sequelize.ENUM('DESC', 'ASC'),
+        defaultValue: 'DESC'
+      });
+      migration.addColumn('campaigns', 'dialOrderByScheduledAt', {
+        type: Sequelize.ENUM('DESC', 'ASC'),
+        defaultValue: 'DESC'
+      });
+      // END EDIT VOICE QUEUE
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.36.js b/server/migrations/2.0.36.js
new file mode 100644
index 0000000..efdd6e4
--- /dev/null
+++ b/server/migrations/2.0.36.js
@@ -0,0 +1,140 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      //START OPENCHANNEL MESSAGES
+      migration.addColumn('openchannel_messages', 'AttachmentId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE `openchannel_messages` \
+              ADD CONSTRAINT `openchannel_messages_ibfk_5` \
+              FOREIGN KEY (`AttachmentId`) \
+              REFERENCES attachments(`id`) \
+              ON UPDATE CASCADE \
+              ON DELETE SET NULL');
+      //END OPENCHANNEL MESSAGES
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.37.js b/server/migrations/2.0.37.js
new file mode 100644
index 0000000..eb00133
--- /dev/null
+++ b/server/migrations/2.0.37.js
@@ -0,0 +1,149 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      //START JSCRIPTY
+      migration.addColumn('jscripty_projects', 'enableUncompleteSave', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('report_jscripty_sessions', 'completed', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.query('UPDATE report_jscripty_sessions SET completed = true');
+      //END JSCRIPTY
+
+      //START SMS
+      migration.addColumn('sms_interactions', 'phone', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_messages', 'phone', {
+        type: Sequelize.STRING
+      });
+      //END SMS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.38.js b/server/migrations/2.0.38.js
new file mode 100644
index 0000000..1acfdb3
--- /dev/null
+++ b/server/migrations/2.0.38.js
@@ -0,0 +1,171 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+var exec = require('child_process').exec;
+var cmd = 'chown motion:asterisk /var/opt/motion2/server/files/attachments';
+var ls = 'ls -la /var/opt/motion2/server/files';
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START SMS
+      migration.addColumn('sms_accounts', 'remote', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'token', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_messages', 'messageId', {
+        type: Sequelize.STRING
+      });
+      // END SMS
+
+      // START FAX
+
+      exec(cmd, function(err, stdout, stderr) {
+        logger.info('Exec chmod', ' Error :', JSON.stringify(err), stdout, stderr);
+        exec(ls, function(err, stdout, stderr) {
+          logger.info('Ls :', ' Error :', JSON.stringify(err), stdout, stderr);
+        });
+      });
+
+      migration.dropTable('fax_applications');
+
+      migration.addColumn('fax_messages', 'AttachmentId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE `fax_messages` \
+             ADD CONSTRAINT `fax_messages_ibfk_5` \
+             FOREIGN KEY (`AttachmentId`) \
+             REFERENCES attachments(`id`) \
+             ON UPDATE CASCADE \
+             ON DELETE SET NULL');
+
+      migration.addColumn('tools_trunks', 't38pt_udptl', {
+        type: Sequelize.STRING,
+        defaultValue: 'no'
+      });
+      // END FAX
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.39.js b/server/migrations/2.0.39.js
new file mode 100644
index 0000000..ed00d6a
--- /dev/null
+++ b/server/migrations/2.0.39.js
@@ -0,0 +1,236 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+var ejs = require('ejs');
+var fs = require('fs');
+var path = require('path');
+var exec = require('child_process').exec;
+
+var config = require('../config/environment');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.checkVoiceContexts = function() {
+  var _this = this;
+  var VoiceContext = _this.queryInterface.sequelize.import(path.join(config.root, 'server/api/voiceContext/voiceContext.model'));
+  this.sequence.enqueue(function() {
+    return VoiceContext.findOrCreate({
+        where: {
+          name: 'xcally-mixmonitor-context'
+        },
+        defaults: {
+          name: 'xcally-mixmonitor-context',
+          description: 'default entry context (DO NOT DELETE)',
+          defaultEntry: true
+        }
+      })
+      .spread(function(entity, created) {
+        return VoiceContext
+          .findAll({
+            raw: true
+          });
+      })
+      .then(function(contexts) {
+        var templateContext = fs.readFileSync(path.join(config.root, 'server/files/templates/context.ejs'), 'utf8');
+
+        var contextsFile = ejs.render(templateContext, {
+          contexts: contexts || []
+        });
+
+        fs.writeFileSync('/etc/asterisk/extensions_xcally_contexts.conf', contextsFile);
+
+        exec('asterisk -rx "reload chan_sip.so"', function(err, stdout, stderr) {
+          logger.info('Exec chmod', ' Error :', JSON.stringify(err), stdout, stderr);
+        });
+
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+      // START SETTINGS
+      migration.addColumn('settings', 'defaultPageTitle', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('settings', 'pageTitle', {
+        type: Sequelize.STRING
+      });
+      // END SETTINGS
+
+      // START VOICECONTEXT
+      migration.checkVoiceContexts();
+      // END VOICECONTEXT
+
+      // START SALESFORCE CONF
+      migration.addColumn('int_salesforce_configurations', 'moduleSearch', {
+        type: Sequelize.ENUM('contact_lead', 'contact', 'lead'),
+        defaultValue: 'contact_lead'
+      });
+      migration.addColumn('int_salesforce_configurations', 'moduleCreate', {
+        type: Sequelize.ENUM('nothing', 'contact', 'lead'),
+        defaultValue: 'lead'
+      });
+      // END SALESFORCE CONF
+
+      // START FAX
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '1', 'NoOp', '', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '2', 'Set', 'CDR(type)=outbound-fax', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '3', 'Wait', '6', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '4', 'Set', 'FAXOPT(ecm)=${XMF-ECM}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '5', 'Set', 'FAXOPT(headerinfo)=${XMF-HEADERINFO}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '6', 'Set', 'FAXOPT(localstationid)=${XMF-LOCALSTATIONID}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '7', 'Set', 'FAXOPT(maxrate)=${XMF-MAXRATE}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '8', 'Set', 'FAXOPT(minrate)=${XMF-MINRATE}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '9', 'Set', 'FAXOPT(modem)=${XMF-MODEM}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '10', 'Set', 'FAXOPT(t38timeout)=${XMF-T38TIMEOUT}', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-fax', '11', 'SendFax', '${XMF-PATH},d', 'system', 'Fax extensions auto generated', NOW(), NOW());");
+
+      exec('chmod 775 /var/opt/motion2/server/files/attachments', function(err, stdout, stderr) {
+        logger.info('Exec chmod', ' Error :', JSON.stringify(err), stdout, stderr);
+        exec('ls -la /var/opt/motion2/server/files', function(err, stdout, stderr) {
+          logger.info('Ls :', ' Error :', JSON.stringify(err), stdout, stderr);
+        });
+      });
+      // END FAX
+
+      // START CONTACT
+      migration.addColumn('cm_contacts', 'deletedAt', {
+        type: Sequelize.DATE,
+        defaultValue: null
+      });
+      // END CONTACT
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.40.js b/server/migrations/2.0.40.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.40.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.41.js b/server/migrations/2.0.41.js
new file mode 100644
index 0000000..557ad72
--- /dev/null
+++ b/server/migrations/2.0.41.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+var exec = require('child_process').exec;
+var cmd = 'chown motion:asterisk /var/opt/motion2/server/files/attachments';
+var ls = 'ls -la /var/opt/motion2/server/files';
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START DESK ACCOUNTS
+      migration.addColumn('int_desk_accounts', 'serverUrl', {
+        type: Sequelize.STRING
+      });
+      // END DESK ACCOUNTS
+
+      // START CHAT INTERACTIONS
+      migration.addColumn('chat_interactions', 'formData', {
+        type: Sequelize.TEXT('long')
+      });
+      // END CHAT INTERACTIONS
+
+      // START CHAT MESSAGES
+      migration.addColumn('chat_messages', 'secret', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END CHAT MESSAGES
+
+      // START CHAT WEBSITES
+      migration.addColumn('chat_websites', 'agentAvatar', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('chat_websites', 'showAgentAvatar', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END CHAT WEBSITES
+
+      //START CUSTOM FIELDS
+      migration.changeColumn('cm_custom_fields', 'values', {
+        type: Sequelize.TEXT('long')
+      });
+      //END CUSTOM FIELDS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.42.js b/server/migrations/2.0.42.js
new file mode 100644
index 0000000..260d26a
--- /dev/null
+++ b/server/migrations/2.0.42.js
@@ -0,0 +1,192 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+var path = require('path');
+var config = require('../config/environment');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.getCustomFields = function() {
+  var _this = this;
+  var CmCustomField = _this.queryInterface.sequelize.import(path.join(config.root, 'server/api/cmCustomField/cmCustomField.model'));
+  return CmCustomField.findAll({
+      where: {
+        type: {
+          $notIn: ['number', 'switch']
+        }
+      },
+      attributes: ['id']
+    })
+    .then(function(entities) {
+      return entities;
+    })
+    .catch(function(err) {
+      logger.info(JSON.stringify(err));
+    });
+};
+
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START TOOLS TAGS
+      migration.addColumn('tools_tags', 'color', {
+        type: Sequelize.STRING,
+        defaultValue: '#0091EA'
+      });
+      // END TOOLS TAGS
+
+      // START OPENCHANNEL MESSAGES
+      migration.addColumn('openchannel_messages', 'secret', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END OPENCHANNEL MESSAGES
+
+      //START CONTACTS
+      migration.getCustomFields()
+        .then(function(entities) {
+          if (entities) {
+            for (var i = 0, length = entities.length; i < length; i++) {
+              migration.changeColumn('cm_contacts', 'cf_' + entities[i].id, {
+                type: Sequelize.TEXT
+              });
+            }
+          }
+        });
+      //END CONTACTS
+
+      // START FAX
+      migration.addColumn('fax_messages', 'failMessage', {
+        type: Sequelize.TEXT
+      });
+
+      // END FAX
+
+      // START USER
+      migration.addColumn('users', 'extensionMonitor', {
+        type: Sequelize.STRING,
+        defaultValue: ''
+      });
+
+      // END USER
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.43.js b/server/migrations/2.0.43.js
new file mode 100644
index 0000000..4c2d1d1
--- /dev/null
+++ b/server/migrations/2.0.43.js
@@ -0,0 +1,135 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START MAIL MESSAGES
+      migration.addColumn('mail_messages', 'secret', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END MAIL MESSAGES
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.44.js b/server/migrations/2.0.44.js
new file mode 100644
index 0000000..09546ae
--- /dev/null
+++ b/server/migrations/2.0.44.js
@@ -0,0 +1,247 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START CHATWEBSITE
+      migration.addColumn('chat_websites', 'closingQuestion', {
+        type: Sequelize.STRING,
+        defaultValue: 'Do you want to close the interaction?'
+      });
+      // END CHATWEBSITE
+
+      // START CHAT INTERACTIONS
+      migration.addColumn('chat_interactions', 'read1stAt', {
+        type: Sequelize.DATE
+      });
+      // END CHAT INTERACTIONS
+
+      // START CHAT MESSAGES
+      migration.addColumn('chat_messages', 'readAt', {
+        type: Sequelize.DATE
+      });
+      // END CHAT MESSAGES
+
+      // START FAX INTERACTIONS
+      migration.addColumn('fax_interactions', 'read1stAt', {
+        type: Sequelize.DATE
+      });
+      // END FAX INTERACTIONS
+
+      // START FAX MESSAGES
+      migration.addColumn('fax_messages', 'readAt', {
+        type: Sequelize.DATE
+      });
+      // END FAX MESSAGES
+
+      // START OPENCHANNEL INTERACTIONS
+      migration.addColumn('openchannel_interactions', 'read1stAt', {
+        type: Sequelize.DATE
+      });
+      migration.addColumn('openchannel_interactions', 'threadId', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('openchannel_interactions', 'externalUrl', {
+        type: Sequelize.STRING
+      });
+      // END OPENCHANNEL INTERACTIONS
+
+      // START OPENCHANNEL MESSAGES
+      migration.addColumn('openchannel_messages', 'readAt', {
+        type: Sequelize.DATE
+      });
+      // END OPENCHANNEL MESSAGES
+
+      // START MAIL INTERACTIONS
+      migration.addColumn('mail_interactions', 'read1stAt', {
+        type: Sequelize.DATE
+      });
+      migration.addColumn('mail_interactions', 'substatus', {
+        type: Sequelize.STRING(60)
+      });
+      migration.addColumn('mail_interactions', 'substatusAt', {
+        type: Sequelize.DATE
+      });
+      // END MAIL INTERACTIONS
+
+      // START MAIL MESSAGES
+      migration.addColumn('mail_messages', 'readAt', {
+        type: Sequelize.DATE
+      });
+      // END MAIL MESSAGES
+
+      // START SMS INTERACTIONS
+      migration.addColumn('sms_interactions', 'read1stAt', {
+        type: Sequelize.DATE
+      });
+      // END SMS INTERACTIONS
+
+      // START SMS MESSAGES
+      migration.addColumn('sms_messages', 'readAt', {
+        type: Sequelize.DATE
+      });
+      // END SMS MESSAGES
+
+      // START DISPOSITIONS
+      migration.changeColumn('chat_dispositions', 'name', {
+        type: Sequelize.STRING,
+        unique: 'nameAndAccount',
+        allowNull: false
+      });
+      migration.changeColumn('fax_dispositions', 'name', {
+        type: Sequelize.STRING,
+        unique: 'nameAndAccount',
+        allowNull: false
+      });
+      migration.changeColumn('openchannel_dispositions', 'name', {
+        type: Sequelize.STRING,
+        unique: 'nameAndAccount',
+        allowNull: false
+      });
+      migration.changeColumn('sms_dispositions', 'name', {
+        type: Sequelize.STRING,
+        unique: 'nameAndAccount',
+        allowNull: false
+      });
+      migration.changeColumn('voice_dispositions', 'name', {
+        type: Sequelize.STRING,
+        unique: 'nameAndAccount',
+        allowNull: false
+      });
+      migration.query('ALTER TABLE chat_dispositions add UNIQUE INDEX nameAndAccount (name, ChatAccountId)');
+      migration.query('ALTER TABLE fax_dispositions add UNIQUE INDEX nameAndAccount (name, FaxAccountId)');
+      migration.query('ALTER TABLE openchannel_dispositions add UNIQUE INDEX nameAndAccount (name, OpenchannelAccountId)');
+      migration.query('ALTER TABLE sms_dispositions add UNIQUE INDEX nameAndAccount (name, SmsAccountId)');
+      migration.query('ALTER TABLE voice_dispositions add UNIQUE INDEX nameAndAccount (name, ListId)');
+      migration.changeColumn('mail_dispositions', 'name', {
+        type: Sequelize.STRING,
+        unique: 'nameAndAccount',
+        allowNull: false
+      });
+      migration.query('ALTER TABLE mail_dispositions DROP INDEX name');
+      migration.query('ALTER TABLE mail_dispositions add UNIQUE INDEX nameAndAccount (name, MailAccountId)');
+      // END DISPOSITIONS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.45.js b/server/migrations/2.0.45.js
new file mode 100644
index 0000000..c8d1ee2
--- /dev/null
+++ b/server/migrations/2.0.45.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+
+  },
+  down: function(queryInterface, Sequelize) {}
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.46.js b/server/migrations/2.0.46.js
new file mode 100644
index 0000000..411f55f
--- /dev/null
+++ b/server/migrations/2.0.46.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START USER
+      migration.changeColumn('users', 'showWebBar', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      // END USER
+
+      // START USER
+      // UPDATE AGENT COLUMN PERMISSION
+      migration.query("UPDATE users SET permissions='101,102,103,104,105,106,107,108,109,100' WHERE role='agent' AND (permissions IS NULL OR permissions = '')");
+
+      migration.addColumn('users', 'crudPermissions', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      //END USER
+
+      // START CHATWEBSITE
+      migration.addColumn('chat_websites', 'noteTitle', {
+        type: Sequelize.STRING,
+        defaultValue: 'Note'
+      });
+
+      migration.addColumn('chat_websites', 'placeholderMessage', {
+        type: Sequelize.STRING,
+        defaultValue: 'Type a message'
+      });
+      // END CHATWEBSITE
+
+      // START Fax Interaction
+      migration.addColumn('fax_interactions', 'fax', {
+        type: Sequelize.STRING
+      });
+      migration.query("UPDATE fax_interactions as t1 JOIN cm_contacts AS t2 ON t1.ContactId = t2.id SET t1.fax = t2.fax");
+
+      // END Fax Interaction
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.47.js b/server/migrations/2.0.47.js
new file mode 100644
index 0000000..0e7884d
--- /dev/null
+++ b/server/migrations/2.0.47.js
@@ -0,0 +1,176 @@
+'use strict';
+
+var BPromise = require('bluebird');
+
+var logger = require('../config/logger')('migration');
+var util = require('util');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+      var migration = new Migration(queryInterface);
+
+      // START DASHBOARD
+      migration.query("DELETE FROM dashboards");
+
+      migration.removeColumn('dashboards', 'interval');
+
+
+      migration.changeColumn('dashboard_items', 'type', {
+        type: Sequelize.STRING(20),
+        allowNull: false,
+        validate: {
+          len: [1, 20]
+        }
+      });
+      migration.removeColumn('dashboard_items', 'query');
+      migration.removeColumn('dashboard_items', 'data');
+
+      migration.addColumn('dashboard_items', 'title', {
+        type: Sequelize.STRING(20),
+        validate: {
+          len: [0, 20]
+        }
+      });
+
+      migration.addColumn('dashboard_items', 'attrs', {
+        type: Sequelize.TEXT('long')
+      });
+      // END DASHBOARD
+
+      // START SMS MESSAGES
+      migration.addColumn('sms_messages', 'secret', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END SMS MESSAGES
+
+      // START CHATWEBSITE
+      migration.addColumn('chat_websites', 'formSubmitSuccessMessage', {
+        type: Sequelize.STRING,
+        defaultValue: 'Form properly submitted'
+      });
+
+      migration.addColumn('chat_websites', 'formSubmitFailureMessage', {
+        type: Sequelize.STRING,
+        defaultValue: 'Form submission error'
+      });
+      // END CHATWEBSITE
+
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.48.js b/server/migrations/2.0.48.js
new file mode 100644
index 0000000..a6106d8
--- /dev/null
+++ b/server/migrations/2.0.48.js
@@ -0,0 +1,211 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SETTINGS
+      migration.addColumn('settings', 'turnaddr', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('settings', 'turnusername', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('settings', 'turnpassword', {
+        type: Sequelize.STRING
+      });
+      // END SETTINGS
+
+      // START USERS
+      migration.addColumn('users', 'rtcp_mux', {
+        type: Sequelize.ENUM('yes', 'no'),
+        defaultValue: 'no'
+      });
+
+      migration.query('UPDATE users SET rtcp_mux=\'yes\' WHERE showWebBar=2');
+      // END USERS
+
+      // START SMS INTERACTIONS
+      migration.addColumn('sms_interactions', 'firstMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+
+      // Update the firstMsgDirection column with correct value (direction of the first message for each interactions)
+      migration.query("UPDATE sms_interactions t1, (SELECT SmsInteractionId, MIN(id) AS messageid, ANY_VALUE(direction) AS direction FROM sms_messages WHERE SmsInteractionId IS NOT NULL GROUP BY SmsInteractionId) t2 SET t1.firstMsgDirection = t2.direction WHERE t1.id = t2.SmsInteractionId;");
+      // END SMS INTERACTIONS
+
+      // START MAIL INTERACTIONS
+      migration.addColumn('mail_interactions', 'firstMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+
+      // Update the firstMsgDirection column with correct value (direction of the first message for each interactions)
+      migration.query("UPDATE mail_interactions t1, (SELECT MailInteractionId, MIN(id) AS messageid, ANY_VALUE(direction) AS direction FROM mail_messages WHERE MailInteractionId IS NOT NULL GROUP BY MailInteractionId) t2 SET t1.firstMsgDirection = t2.direction WHERE t1.id = t2.MailInteractionId;");
+      // END MAIL INTERACTIONS
+
+      // START FAX INTERACTIONS
+      migration.addColumn('fax_interactions', 'firstMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+
+      // Update the firstMsgDirection column with correct value (direction of the first message for each interactions)
+      migration.query("UPDATE fax_interactions t1, (SELECT FaxInteractionId, MIN(id) AS messageid, ANY_VALUE(direction) AS direction FROM fax_messages WHERE FaxInteractionId IS NOT NULL GROUP BY FaxInteractionId) t2 SET t1.firstMsgDirection = t2.direction WHERE t1.id = t2.FaxInteractionId;");
+      // END FAX INTERACTIONS
+
+      // START rtp.conf
+      try {
+        fs.writeFileSync('/etc/asterisk/stun_xcally.conf', '; STUN server list\n', {
+          encoding: 'utf8'
+        });
+        fs.writeFileSync('/etc/asterisk/turn_xcally.conf', '; TURN server list\n', {
+          encoding: 'utf8'
+        });
+
+        var lines = fs.readFileSync('/etc/asterisk/rtp.conf', {
+          encoding: 'utf8'
+        });
+
+        lines = _.replace(lines, '[ice_host_candidates]', '#include "stun_xcally.conf"\n#include "turn_xcally.conf"\n[ice_host_candidates]');
+
+        fs.writeFileSync('/etc/asterisk/rtp.conf', lines, {
+          encoding: 'utf8'
+        });
+        fs.appendFileSync('/etc/asterisk/res_stun_monitor.conf', '#include "stun_xcally.conf"', {
+          encoding: 'utf8'
+        });
+      } catch (err) {
+        logger.info(JSON.stringify(err));
+      }
+      // END rtp.conf
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.49.js b/server/migrations/2.0.49.js
new file mode 100644
index 0000000..16a38af
--- /dev/null
+++ b/server/migrations/2.0.49.js
@@ -0,0 +1,210 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SMS
+      migration.addColumn('sms_accounts', 'smsMethod', {
+        type: Sequelize.ENUM('basic', 'classic', 'classic+')
+      });
+      migration.addColumn('sms_accounts', 'username', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'password', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'senderString', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('sms_accounts', 'deliveryReport', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END SMS
+
+      // START USERS
+      migration.addColumn('users', 'allowmessenger', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('users', 'phoneBarOutboundProxy', {
+        type: Sequelize.STRING
+      });
+      //END USERS
+
+      // START CHATWEBSITE
+      migration.addColumn('chat_websites', 'offlineMessageSubject', {
+        type: Sequelize.STRING,
+        defaultValue: 'New offline message from websiteName'
+      });
+
+      migration.addColumn('chat_websites', 'offlineMessageBody', {
+        type: Sequelize.STRING,
+        defaultValue: 'You received a new offline message from websiteName. Here you can find the details of the request:'
+      });
+      // END CHATWEBSITE
+
+      // START AGI AFTER
+      migration.addColumn('voice_queues', 'dialQueueProject2', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('voice_queues', 'dialAgiAfterHangupClient', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('voice_queues', 'dialAgiAfterHangupAgent', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.query("DELETE FROM `voice_extensions` WHERE `exten`='xcally-motion-dialer' AND `priority`= 11");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '11', 'Execif', '$[\"${XMD-AGIAFTER}\" != \"NONE\" ]?AGI(${XMD-AGIAFTER})', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '12', 'Hangup', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("DELETE FROM `voice_extensions` WHERE `exten`='xcally-motion-preview' AND `priority`= 4");
+
+      migration.query("DELETE FROM `voice_extensions` WHERE `exten`='xcally-motion-preview' AND `priority`= 5");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '4', 'Execif', '$[\"${XMD-AGI}\" != \"NONE\" ]?AGI(${XMD-AGI})', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '5', 'dial', '${XMD-DIALCHANNEL},${XMD-DIALTIMEOUT},${XMD-DIALOPTIONS},${XMD-DIALURL}', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '6', 'hangup', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.addColumn('cm_hopper_final', 'agiafterat', {
+        type: Sequelize.DATE
+      });
+
+      // END AGI AFTER
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.50.js b/server/migrations/2.0.50.js
new file mode 100644
index 0000000..5a08644
--- /dev/null
+++ b/server/migrations/2.0.50.js
@@ -0,0 +1,154 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SMS
+      migration.changeColumn('sms_messages', 'messageId', {
+        type: Sequelize.STRING(190),
+      });
+
+      migration.addIndex('sms_messages', ['messageId'], 'messageId');
+      // END SMS
+
+      // START BOOKED PROGRESSIVE
+      migration.changeColumn('voice_queues', 'dialMethod', {
+        type: Sequelize.ENUM('preview', 'progressive', 'power', 'predictive', 'booked'),
+        defaultValue: 'progressive'
+      });
+      // END BOOKED PROGRESSIVE
+
+      // START AGI AFTER PREVIEW
+      migration.query("DELETE FROM `voice_extensions` WHERE `exten`='xcally-motion-preview' AND `priority`= 6");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '6', 'Execif', '$[\"${XMD-AGIAFTER}\" != \"NONE\" ]?AGI(${XMD-AGIAFTER})', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-preview', '7', 'hangup', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+      // END AGI AFTER PREVIEW
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.51.js b/server/migrations/2.0.51.js
new file mode 100644
index 0000000..0be8b1a
--- /dev/null
+++ b/server/migrations/2.0.51.js
@@ -0,0 +1,276 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      //START CHAT INTERNAL MESSAGES
+      migration.addColumn('chat_internal_messages', 'ChatInternalMessageId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('chat_internal_messages', 'ChatGroupId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE `chat_internal_messages` \
+                ADD CONSTRAINT `chat_internal_messages_ibfk_3` \
+                FOREIGN KEY (`ChatGroupId`) \
+                REFERENCES chat_groups(`id`) \
+                ON UPDATE CASCADE \
+                ON DELETE CASCADE');
+      //END CHAT INTERNAL MESSAGES
+
+      // START CHAT INTERACTIONS
+      migration.addColumn('chat_interactions', 'lastMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+      migration.addColumn('chat_interactions', 'lastMsgAt', {
+        type: Sequelize.DATE
+      });
+      // END CHAT INTERACTIONS
+
+      // START MAIL INTERACTIONS
+      migration.addColumn('mail_interactions', 'lastMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+      migration.addColumn('mail_interactions', 'lastMsgAt', {
+        type: Sequelize.DATE
+      });
+      // END MAIL INTERACTIONS
+
+      // START SMS INTERACTIONS
+      migration.addColumn('sms_interactions', 'lastMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+      migration.addColumn('sms_interactions', 'lastMsgAt', {
+        type: Sequelize.DATE
+      });
+      // END SMS INTERACTIONS
+
+      // START OPENCHANNEL INTERACTIONS
+      migration.addColumn('openchannel_interactions', 'lastMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+      migration.addColumn('openchannel_interactions', 'lastMsgAt', {
+        type: Sequelize.DATE
+      });
+      // END OPENCHANNEL INTERACTIONS
+
+      // START FAX INTERACTIONS
+      migration.addColumn('fax_interactions', 'lastMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+      migration.addColumn('fax_interactions', 'lastMsgAt', {
+        type: Sequelize.DATE
+      });
+      // END FAX INTERACTIONS
+
+      var channels = ['Chat', 'Mail', 'Sms', 'Openchannel'];
+      for (var i = 0; i < channels.length; i++) {
+        migration.query('UPDATE ' + channels[i].toLowerCase() + '_interactions t1, (SELECT ' + channels[i] + 'InteractionId, MAX(id) AS messageid, ANY_VALUE(direction) AS direction, ANY_VALUE(createdAt) AS createdAt \
+                  FROM ' + channels[i].toLowerCase() + '_messages \
+                  WHERE ' + channels[i] + 'InteractionId IS NOT NULL AND (direction=\'in\' OR (direction=\'out\' AND secret=0 AND UserId IS NOT NULL)) \
+                  GROUP BY ' + channels[i] + 'InteractionId) t2 SET t1.lastMsgDirection = t2.direction, t1.lastMsgAt = t2.createdAt WHERE t1.id = t2.' + channels[i] + 'InteractionId;');
+      }
+
+      migration.query('UPDATE fax_interactions t1, (SELECT FaxInteractionId, MAX(id) AS messageid, ANY_VALUE(direction) AS direction, ANY_VALUE(createdAt) AS createdAt \
+                FROM fax_messages \
+                WHERE FaxInteractionId IS NOT NULL \
+                GROUP BY FaxInteractionId) t2 SET t1.lastMsgDirection = t2.direction, t1.lastMsgAt = t2.createdAt WHERE t1.id = t2.FaxInteractionId;');
+
+      // START SMS
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel')
+      });
+      // END SMS
+
+      // START VOICECALLREPORT
+      migration.addColumn('report_call', 'note', {
+        type: Sequelize.STRING
+      });
+      // END VOICECALLREPORT
+
+      // START CM
+      migration.addIndex('cm_contacts', ['phone'], 'phone');
+      migration.addIndex('cm_hopper_final', ['uniqueid'], 'uniqueid');
+      migration.addIndex('cm_hopper_history', ['uniqueid'], 'uniqueid');
+      // END CM
+
+      //START VOICERECORDINGS
+      migration.addIndex('voice_recordings', ['uniqueid'], 'uniqueid');
+      //END VOICERECORDINGS
+
+      //START REPORTMEMBER
+      migration.addIndex('report_member', ['membername', 'interface'], 'membername_interface');
+      //END REPORTMEMBER
+
+      //START USERS
+      migration.query('UPDATE users SET permissions=\'101,102,103,110,104,105,106,107,108,109,100\' WHERE permissions=\'101,102,103,104,105,106,107,108,109,100\'');
+      //END USERS
+
+      // START DIALER
+      migration.query("DELETE FROM `voice_extensions` WHERE exten = 'xcally-motion-dialer';");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '1', 'NoOp', '', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '2', 'set', 'CDR(type)=dialer', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '3', 'set', 'CALLERID(all)=${XMD-CALLERID}', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '4', 'gotoif', '$[\"${XMD-AMD}\" != \"NONE\" ]?5:11', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '5', 'answer', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '6', 'background', 'silence/1', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '8', 'gotoif', '$[\"${AMDSTATUS}\" == \"HUMAN\" ]?11:9', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`,`createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '9', 'gotoif', '$[\"${AMDSTATUS}\" == \"NOTSURE\" ]?11:10', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`,`createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '10', 'gotoif', '$[\"${AMDSTATUS}\" == \"MACHINE\" ]?14:11', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '11', 'execif', '$[\"${XMD-AGI}\" != \"NONE\" ]?AGI(${XMD-AGI})', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '12', 'execif', '$[\"${XMD-QUEUE}\" != \"NONE\" ]?QUEUE(${XMD-QUEUE})', 'system', 'Dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `appdata`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '13', 'Execif', '$[\"${XMD-AGIAFTER}\" != \"NONE\" ]?AGI(${XMD-AGIAFTER})', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+
+      migration.query("INSERT INTO `voice_extensions` (`context`, `exten`, `priority`, `app`, `type`, `description`, `createdAt`, `updatedAt`) VALUES ('from-sip', 'xcally-motion-dialer', '14', 'hangup', 'system', 'dialer extensions auto generated', NOW(), NOW());");
+      //END DIALER
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.52.js b/server/migrations/2.0.52.js
new file mode 100644
index 0000000..19face4
--- /dev/null
+++ b/server/migrations/2.0.52.js
@@ -0,0 +1,243 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      //START SETTINGS
+      migration.addColumn('settings', 'callRecordingEncryption', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('settings', 'passwordExpiresDays', {
+        type: Sequelize.INTEGER(11),
+        defaultValue: 90
+      });
+      migration.query('UPDATE settings SET securePassword=false WHERE id=1');
+      //END SETTINGS
+
+      //START CANNED ANSWERS
+      migration.addColumn('tools_canned_answers', 'MailAccountId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('tools_canned_answers', 'FaxAccountId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('tools_canned_answers', 'SmsAccountId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('tools_canned_answers', 'OpenchannelAccountId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('tools_canned_answers', 'ChatWebsiteId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query('ALTER TABLE `tools_canned_answers` \
+        ADD CONSTRAINT `tools_canned_answers_ibfk_1` \
+        FOREIGN KEY (`MailAccountId`) \
+        REFERENCES mail_accounts(`id`) \
+        ON UPDATE CASCADE \
+        ON DELETE CASCADE');
+      migration.query('ALTER TABLE `tools_canned_answers` \
+        ADD CONSTRAINT `tools_canned_answers_ibfk_2` \
+        FOREIGN KEY (`FaxAccountId`) \
+        REFERENCES fax_accounts(`id`) \
+        ON UPDATE CASCADE \
+        ON DELETE CASCADE');
+      migration.query('ALTER TABLE `tools_canned_answers` \
+        ADD CONSTRAINT `tools_canned_answers_ibfk_3` \
+        FOREIGN KEY (`SmsAccountId`) \
+        REFERENCES sms_accounts(`id`) \
+        ON UPDATE CASCADE \
+        ON DELETE CASCADE');
+      migration.query('ALTER TABLE `tools_canned_answers` \
+        ADD CONSTRAINT `tools_canned_answers_ibfk_4` \
+        FOREIGN KEY (`OpenchannelAccountId`) \
+        REFERENCES openchannel_accounts(`id`) \
+        ON UPDATE CASCADE \
+        ON DELETE CASCADE');
+
+      migration.query('ALTER TABLE `tools_canned_answers` \
+        ADD CONSTRAINT `tools_canned_answers_ibfk_5` \
+        FOREIGN KEY (`ChatWebsiteId`) \
+        REFERENCES chat_websites(`id`) \
+        ON UPDATE CASCADE \
+        ON DELETE CASCADE');
+      //START CANNED ANSWERS
+
+      //START USERS
+      migration.addColumn('users', 'passwordResetAt', {
+        type: Sequelize.DATE,
+        defaultValue: null
+      });
+      migration.query('UPDATE users SET passwordResetAt=NOW()');
+      //END USERS
+
+      //START USERS
+      migration.addColumn('report_dial', 'duration', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('report_dial', 'holdtime', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('report_dial', 'billableseconds', {
+        type: Sequelize.INTEGER
+      });
+      //END USERS
+
+      // START SMS
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend')
+      });
+      // END SMS
+
+      //START CUSTOM DASHBOARDS
+      migration.addColumn('dashboard_items', 'background', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#ffffff',
+        validate: {
+          notEmpty: true
+        }
+      });
+
+      migration.addColumn('dashboard_items', 'foreground', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#2196f3',
+        validate: {
+          notEmpty: true
+        }
+      });
+
+      migration.addColumn('dashboard_items', 'link', {
+        type: Sequelize.STRING
+      });
+      //END CUSTOM DASHBOARDS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.53.js b/server/migrations/2.0.53.js
new file mode 100644
index 0000000..12e9a27
--- /dev/null
+++ b/server/migrations/2.0.53.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START CONTACTS
+      migration.changeColumn('cm_contacts', 'description', {
+        type: Sequelize.TEXT
+      });
+      // END CONTACTS
+
+      // START SMS
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend', 'plivo')
+      });
+      // END SMS
+
+      // START EXTRACTED REPORTS
+      migration.changeColumn('analytics_extracted_reports', 'output', {
+        type: Sequelize.ENUM('csv', 'pdf', 'xls', 'xlsx'),
+        allowNull: false,
+        defaultValue: 'csv'
+      });
+      migration.query('UPDATE analytics_extracted_reports SET output=\'xlsx\' WHERE output=\'xls\'');
+      migration.changeColumn('analytics_extracted_reports', 'output', {
+        type: Sequelize.ENUM('csv', 'pdf', 'xlsx'),
+        allowNull: false,
+        defaultValue: 'csv'
+      });
+      // END EXTRACTED REPORTS
+
+      // START USERS
+      migration.query('UPDATE users SET insecure=NULL WHERE insecure=\'port,invite\'');
+      migration.changeColumn('users', 'insecure', {
+        type: Sequelize.STRING,
+        allowNull: true
+      });
+      // END USERS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.54.js b/server/migrations/2.0.54.js
new file mode 100644
index 0000000..bcb52c7
--- /dev/null
+++ b/server/migrations/2.0.54.js
@@ -0,0 +1,209 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function(res) {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START CHAT WEBSITES
+      migration.addColumn('chat_websites', 'textColor', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#ffffff',
+        validate: {
+          notEmpty: true
+        }
+      });
+      migration.addColumn('chat_websites', 'fontSize', {
+        type: Sequelize.INTEGER,
+        defaultValue: 15
+      });
+      migration.addColumn('chat_websites', 'timezone', {
+        type: Sequelize.STRING
+      });
+      // END CHAT WEBSITES
+
+      // START USERS
+      migration.query('UPDATE users SET nat=\'force_rport,comedia\' WHERE nat IS NULL');
+      migration.query('UPDATE users SET transport=\'udp\' WHERE avpf IS NULL AND transport IS NULL');
+      migration.query('UPDATE users SET transport=\'wss\' WHERE avpf IS NOT NULL');
+      // STOP USERS
+
+      // START SCHEDULED REPORTS
+      migration.changeColumn('tools_schedules', 'output', {
+        type: Sequelize.ENUM('csv', 'pdf', 'xls', 'xlsx'),
+        allowNull: false,
+        defaultValue: 'csv'
+      });
+      migration.query('UPDATE tools_schedules SET output=\'xlsx\' WHERE output=\'xls\'');
+      migration.changeColumn('tools_schedules', 'output', {
+        type: Sequelize.ENUM('csv', 'pdf', 'xlsx'),
+        allowNull: false,
+        defaultValue: 'csv'
+      });
+      // END SCHEDULED REPORTS
+
+      // START MAIL ACCOUNT
+      migration.addColumn('mail_accounts', 'markAsUnread', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('mail_accounts', 'fontFamily', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: 'Arial,Helvetica,sans-serif'
+      });
+
+      migration.addColumn('mail_accounts', 'fontSize', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 13,
+        validate: {
+          min: 8,
+          max: 72
+        }
+      });
+
+      migration.renameColumn('mail_accounts', 'signature', 'template');
+      // END MAIL ACCOUNT
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.55.js b/server/migrations/2.0.55.js
new file mode 100644
index 0000000..81ff2e3
--- /dev/null
+++ b/server/migrations/2.0.55.js
@@ -0,0 +1,166 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function(res) {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SMS ACCOUNT
+      migration.addColumn('sms_accounts', 'authId', {
+        type: Sequelize.STRING
+      });
+      // END SMS ACCOUNT
+
+      // START MAIL SUBSTATUS
+      migration.query('CREATE TABLE `mail_substatuses` ( \
+        `id` int(11) NOT NULL AUTO_INCREMENT, \
+        `name` varchar(255) NOT NULL, \
+        `description` varchar(255) DEFAULT NULL, \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        PRIMARY KEY (`id`), \
+        UNIQUE KEY `name` (`name`) \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      migration.query('INSERT INTO `mail_substatuses` (`name`, `description`, `createdAt`, `updatedAt`) VALUES (\'pending\', \'Pending status for mail interaction\', NOW(), NOW());');
+      // END MAIL SUBSTATUS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.56.js b/server/migrations/2.0.56.js
new file mode 100644
index 0000000..b8ea415
--- /dev/null
+++ b/server/migrations/2.0.56.js
@@ -0,0 +1,240 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function(res) {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START BOOKED
+      migration.changeColumn('voice_queues', 'strategy', {
+        type: Sequelize.ENUM('roundrobin', 'ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered'),
+        allowNull: false,
+        defaultValue: 'ringall'
+      });
+      // END BOOKED
+
+      // START EXTRACTED REPORT
+      migration.addColumn('analytics_extracted_reports', 'basename', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      // END EXTRACTED REPORT
+
+      // START MAIL ACCOUNT
+      migration.addColumn('mail_accounts', 'notificationTemplate', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('mail_accounts', 'notificationSound', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('mail_accounts', 'notificationShake', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END MAIL ACCOUNT
+
+      // START CHAT ACCOUNT
+      migration.addColumn('chat_websites', 'notificationTemplate', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('chat_websites', 'notificationSound', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('chat_websites', 'notificationShake', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END CHAT ACCOUNT
+
+      // START FAX ACCOUNT
+      migration.addColumn('fax_accounts', 'notificationTemplate', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('fax_accounts', 'notificationSound', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('fax_accounts', 'notificationShake', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END FAX ACCOUNT
+
+      // START SMS ACCOUNT
+      migration.addColumn('sms_accounts', 'notificationTemplate', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('sms_accounts', 'notificationSound', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('sms_accounts', 'notificationShake', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END SMS ACCOUNT
+
+      // START OPENCHANNEL ACCOUNT
+      migration.addColumn('openchannel_accounts', 'notificationTemplate', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('openchannel_accounts', 'notificationSound', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('openchannel_accounts', 'notificationShake', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END OPENCHANNEL ACCOUNT
+
+      // START ACCOUNTS UPDATE
+      migration.query('UPDATE chat_websites SET notificationTemplate=\'Account: {{account.name}}<br/>{{#queue}}Queue: {{queue.name}}<br/>{{/queue}}From : {{from}}\'');
+      migration.query('UPDATE mail_accounts SET notificationTemplate=\'Account: {{account.name}}<br/>{{#queue}}Queue: {{queue.name}}<br/>{{/queue}}From : {{from}}<br/>Subject : {{message.subject}}\'');
+      migration.query('UPDATE sms_accounts SET notificationTemplate=\'Account: {{account.name}}<br/>{{#queue}}Queue: {{queue.name}}<br/>{{/queue}}From : {{from}}\'');
+      migration.query('UPDATE fax_accounts SET notificationTemplate=\'Account: {{account.name}}<br/>{{#queue}}Queue: {{queue.name}}<br/>{{/queue}}From : {{from}}\'');
+      migration.query('UPDATE openchannel_accounts SET notificationTemplate=\'Account: {{account.name}}<br/>{{#queue}}Queue: {{queue.name}}<br/>{{/queue}}From : {{from}}\'');
+      // END ACCOUNTS UPDATE
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.57.js b/server/migrations/2.0.57.js
new file mode 100644
index 0000000..d4f2f20
--- /dev/null
+++ b/server/migrations/2.0.57.js
@@ -0,0 +1,168 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function(res) {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START CHAT ACCOUNT
+      migration.addColumn('chat_websites', 'hideWhenOffline', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END CHAT ACCOUNT
+
+      // START VOICE QUEUES
+      migration.changeColumn('voice_queues', 'periodic_announce', {
+        type: Sequelize.TEXT
+      });
+      // END VOICE QUEUES
+
+      //START USERS
+      migration.query('UPDATE users SET permissions=\'101,102,103,110,104,105,106,107,108,109,100,111\' WHERE permissions=\'101,102,103,110,104,105,106,107,108,109,100\'');
+      //END USERS
+
+      //START ABANDON
+      migration.query('UPDATE report_queue SET lastAssignedTo=NULL  WHERE lastAssignedTo=""');
+      //END ABANDON
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.58.js b/server/migrations/2.0.58.js
new file mode 100644
index 0000000..a494984
--- /dev/null
+++ b/server/migrations/2.0.58.js
@@ -0,0 +1,181 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var path = require('path');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function(res) {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START VOICEMAIL
+      migration.query('ALTER TABLE `voice_voicemail_messages` \
+      ADD CONSTRAINT `voice_voicemail_messages_ibfk_1` \
+      FOREIGN KEY (`mailboxuser`) \
+      REFERENCES voice_voicemail(`mailbox`) \
+      ON UPDATE CASCADE \
+      ON DELETE CASCADE');
+      // END VOICEMAIL
+
+      // START REPORT QUEUE
+      migration.addIndex('report_queue', ['queue'], 'queue');
+      migration.addIndex('report_queue', ['queuecallerexitreason'], 'queuecallerexitreason');
+      migration.addColumn('report_queue', 'disposition', {
+        type: Sequelize.STRING
+      });
+      // END REPORT QUEUE
+
+      // START CALLYSQUARE 
+      migration.query("INSERT INTO `square_projects` (`name`, `description`, `notes`, `preproduction`, `production`, `createdAt`, `updatedAt`) VALUES ('AgentManagement', 'Agent Management sample auto generated', NULL, X'3C6D7847726170684D6F64656C20677269643D223122206775696465733D22312220746F6F6C746970733D22312220636F6E6E6563743D22312220666F6C643D22312220706167653D22302220706167655363616C653D223122207061676557696474683D223832362220706167654865696768743D2231313639223E0A20203C726F6F743E0A202020203C6D7843656C6C2069643D2230222F3E0A202020203C6D7843656C6C2069643D22312220706172656E743D2230222F3E0A202020203C7374617274206C6162656C3D2253746172742220616E737765723D22796573222069643D2239223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F656E7472792F73746172745F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D2234302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F73746172743E0A202020203C6D656E75206C6162656C3D224D656E75222066696C655F69643D222220726573706F6E73653D2235222064696769743D2231222072657472793D223122207661726961626C655F69643D2230222069643D223136223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F6D656E755F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223137302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F6D656E753E0A202020203C6C6F67696E206C6162656C3D224C6F67696E222066696E6442793D22696E7465726E616C222069643D223339223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F6C6F67696E5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D223132222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F6C6F67696E3E0A202020203C7061757365206C6162656C3D225061757365222066696E6442793D22696E7465726E616C222070617573655F69643D22222069643D223430223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F70617573655F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D22333434222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F70617573653E0A202020203C756E7061757365206C6162656C3D22556E7061757365222066696E6442793D22696E7465726E616C222069643D223431223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F756E70617573655F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D22343634222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F756E70617573653E0A202020203C6C6F676F7574206C6162656C3D224C6F676F7574222066696E6442793D22696E7465726E616C222069643D223432223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F6C6F676F75745F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D22313332222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F6C6F676F75743E0A202020203C6D7843656C6C2069643D223433222076616C75653D22312220706172656E743D22312220736F757263653D22313622207461726765743D2233392220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223231302220793D22313432222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223434222076616C75653D22322220706172656E743D22312220736F757263653D22313622207461726765743D2234322220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223435222076616C75653D22332220706172656E743D22312220736F757263653D22313622207461726765743D2234302220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223436222076616C75653D22342220706172656E743D22312220736F757263653D22313622207461726765743D2234312220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223231302220793D22343134222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2234372220706172656E743D22312220736F757263653D223922207461726765743D2231362220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223438223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223435302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C6D7843656C6C2069643D223530222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22343222207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223531222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22343022207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C68616E677570206C6162656C3D2248616E677570222069643D223533223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F63616C6C5F6D616E6167656D656E742F68616E6775705F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223735302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F68616E6775703E0A202020203C6D7843656C6C2069643D2235342220706172656E743D22312220736F757263653D22343822207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223535222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22333922207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223439302220793D22313730222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223536222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22343122207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223439302220793D22333930222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223537223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D22313332222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223538223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D223132222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223539223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D22333434222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223630223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D22343634222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C6D7843656C6C2069643D223631222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22333922207461726765743D2235382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223632222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22343222207461726765743D2235372220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223633222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22343022207461726765743D2235392220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223634222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22343122207461726765743D2236302220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236352220706172656E743D22312220736F757263653D22353822207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236362220706172656E743D22312220736F757263653D22353722207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236372220706172656E743D22312220736F757263653D22353922207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236382220706172656E743D22312220736F757263653D22363022207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A20203C2F726F6F743E0A3C2F6D7847726170684D6F64656C3E', X'3C6D7847726170684D6F64656C20677269643D223122206775696465733D22312220746F6F6C746970733D22312220636F6E6E6563743D22312220666F6C643D22312220706167653D22302220706167655363616C653D223122207061676557696474683D223832362220706167654865696768743D2231313639223E0A20203C726F6F743E0A202020203C6D7843656C6C2069643D2230222F3E0A202020203C6D7843656C6C2069643D22312220706172656E743D2230222F3E0A202020203C7374617274206C6162656C3D2253746172742220616E737765723D22796573222069643D2239223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F656E7472792F73746172745F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D2234302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F73746172743E0A202020203C6D656E75206C6162656C3D224D656E75222066696C655F69643D222220726573706F6E73653D2235222064696769743D2231222072657472793D223122207661726961626C655F69643D2230222069643D223136223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F6D656E755F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223137302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F6D656E753E0A202020203C6C6F67696E206C6162656C3D224C6F67696E222066696E6442793D22696E7465726E616C222069643D223339223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F6C6F67696E5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D223132222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F6C6F67696E3E0A202020203C7061757365206C6162656C3D225061757365222066696E6442793D22696E7465726E616C222070617573655F69643D22222069643D223430223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F70617573655F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D22333434222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F70617573653E0A202020203C756E7061757365206C6162656C3D22556E7061757365222066696E6442793D22696E7465726E616C222069643D223431223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F756E70617573655F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D22343634222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F756E70617573653E0A202020203C6C6F676F7574206C6162656C3D224C6F676F7574222066696E6442793D22696E7465726E616C222069643D223432223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F6167656E745F6D616E6167656D656E742F6C6F676F75745F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223332302220793D22313332222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F6C6F676F75743E0A202020203C6D7843656C6C2069643D223433222076616C75653D22312220706172656E743D22312220736F757263653D22313622207461726765743D2233392220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223231302220793D22313432222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223434222076616C75653D22322220706172656E743D22312220736F757263653D22313622207461726765743D2234322220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223435222076616C75653D22332220706172656E743D22312220736F757263653D22313622207461726765743D2234302220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223436222076616C75653D22342220706172656E743D22312220736F757263653D22313622207461726765743D2234312220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223231302220793D22343134222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2234372220706172656E743D22312220736F757263653D223922207461726765743D2231362220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223438223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223435302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C6D7843656C6C2069643D223530222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22343222207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223531222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22343022207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C68616E677570206C6162656C3D2248616E677570222069643D223533223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F63616C6C5F6D616E6167656D656E742F68616E6775705F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223735302220793D22323338222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F68616E6775703E0A202020203C6D7843656C6C2069643D2235342220706172656E743D22312220736F757263653D22343822207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223535222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22333922207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223439302220793D22313730222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223536222076616C75653D226661696C7572652220706172656E743D22312220736F757263653D22343122207461726765743D2234382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279223E0A20202020202020203C41727261792061733D22706F696E7473223E0A202020202020202020203C6D78506F696E7420783D223439302220793D22333930222F3E0A20202020202020203C2F41727261793E0A2020202020203C2F6D7847656F6D657472793E0A202020203C2F6D7843656C6C3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223537223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D22313332222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223538223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D223132222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223539223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D22333434222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C706C61796261636B206C6162656C3D22506C61796261636B222066696C655F69643D2222206F7074733D22222069643D223630223E0A2020202020203C6D7843656C6C207374796C653D22696D6167653B68746D6C3D313B6C6162656C4261636B67726F756E64436F6C6F723D236666666666663B696D6167653D2F6173736574732F706C7567696E732F7371756172652F7374656E63696C732F706C61796261636B2F706C61796261636B5F313238783132382E706E672220706172656E743D223122207665727465783D2231223E0A20202020202020203C6D7847656F6D6574727920783D223630302220793D22343634222077696474683D22383022206865696768743D223830222061733D2267656F6D65747279222F3E0A2020202020203C2F6D7843656C6C3E0A202020203C2F706C61796261636B3E0A202020203C6D7843656C6C2069643D223631222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22333922207461726765743D2235382220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223632222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22343222207461726765743D2235372220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223633222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22343022207461726765743D2235392220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D223634222076616C75653D22737563636573732220706172656E743D22312220736F757263653D22343122207461726765743D2236302220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236352220706172656E743D22312220736F757263653D22353822207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236362220706172656E743D22312220736F757263653D22353722207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236372220706172656E743D22312220736F757263653D22353922207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A202020203C6D7843656C6C2069643D2236382220706172656E743D22312220736F757263653D22363022207461726765743D2235332220656467653D2231223E0A2020202020203C6D7847656F6D657472792072656C61746976653D2231222061733D2267656F6D65747279222F3E0A202020203C2F6D7843656C6C3E0A20203C2F726F6F743E0A3C2F6D7847726170684D6F64656C3E', '2018-05-24 11:44:53', '2018-05-24 11:44:53');");
+
+
+
+
+
+
+      // END CALLYSQUARE
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.59.js b/server/migrations/2.0.59.js
new file mode 100644
index 0000000..4849a76
--- /dev/null
+++ b/server/migrations/2.0.59.js
@@ -0,0 +1,244 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var fs = require('fs');
+var path = require('path');
+var util = require('util');
+var _ = require('lodash');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function(res) {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function(res) {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function(res) {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function(res) {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function(res) {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve, reject) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SETTINGS
+      migration.addColumn('settings', 'phoneBarAutoUpdater', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      migration.addColumn('settings', 'phoneBarAutoUpdaterUrl', {
+        type: Sequelize.STRING,
+        defaultValue: 'https://www.xcally.com/bar/phonebar/autoupdater.xml'
+      });
+      // END SETTINGS
+
+      // START PREFIX
+      migration.addColumn('campaigns', 'dialPrefix', {
+        type: Sequelize.STRING
+      });
+      // END PREFIX
+
+      // START CM LIST
+      migration.addColumn('cm_lists', 'dialPrefix', {
+        type: Sequelize.STRING
+      });
+      // END CM LIST
+
+      // START USER
+      migration.addColumn('users', 'alias', {
+        type: Sequelize.STRING
+      });
+      // END USER
+
+      // START CM CONTACTS
+      migration.addColumn('cm_contacts', 'skype', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('cm_contacts', 'UserId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('cm_contacts', 'priority', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 2,
+        validate: {
+          min: 0,
+          max: 4
+        }
+      });
+      migration.addColumn('cm_contacts', 'scheduledat', {
+        type: Sequelize.DATE,
+        defaultValue: Sequelize.NOW
+      });
+      // END CM CONTACTS
+
+      // START MAIL INTERACTION
+      migration.addColumn('mail_interactions', 'openedBy', {
+        type: Sequelize.STRING,
+        defaultValue: ''
+      });
+      // END MAIL INTERACTION
+
+      // START CHAT INTERACTION
+      migration.addColumn('chat_interactions', 'openedBy', {
+        type: Sequelize.STRING,
+        defaultValue: ''
+      });
+      // END CHAT INTERACTION
+
+      // START SMS INTERACTION
+      migration.addColumn('sms_interactions', 'openedBy', {
+        type: Sequelize.STRING,
+        defaultValue: ''
+      });
+      // END SMS INTERACTION
+
+      // START OPENCHANNEL INTERACTION
+      migration.addColumn('openchannel_interactions', 'openedBy', {
+        type: Sequelize.STRING,
+        defaultValue: ''
+      });
+      // END OPENCHANNEL INTERACTION
+
+      // START FAX INTERACTION
+      migration.addColumn('fax_interactions', 'openedBy', {
+        type: Sequelize.STRING,
+        defaultValue: ''
+      });
+      // END FAX INTERACTION
+
+      // START VOICEMAIL
+      migration.query('DELETE FROM `voice_voicemail_messages` WHERE `mailboxuser` NOT IN (SELECT `mailbox` FROM `voice_voicemail`)');
+
+      migration.query('ALTER TABLE `voice_voicemail_messages` \
+      ADD CONSTRAINT `voice_voicemail_messages_ibfk_1` \
+      FOREIGN KEY (`mailboxuser`) \
+      REFERENCES voice_voicemail(`mailbox`) \
+      ON UPDATE CASCADE \
+      ON DELETE CASCADE');
+      // END VOICEMAIL
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.60.js b/server/migrations/2.0.60.js
new file mode 100644
index 0000000..b321901
--- /dev/null
+++ b/server/migrations/2.0.60.js
@@ -0,0 +1,240 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START CHAT WEBSITES
+      migration.addColumn('chat_websites', 'agentIdentifier', {
+        type: Sequelize.STRING,
+        defaultValue: 'website_alias'
+      });
+
+      migration.addColumn('chat_websites', 'waitForTheAssignedAgent', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 10
+      });
+      // END CHAT WEBSITES
+
+      // START chat_interactions
+      migration.removeColumn('chat_interactions', 'openedBy');
+      // END chat_interactions
+
+      // START mail_interactions
+      migration.removeColumn('mail_interactions', 'openedBy');
+
+      migration.addColumn('mail_interactions', 'lastMsgBody', {
+        type: Sequelize.TEXT('long')
+      });
+      // END mail_interactions
+
+      // START sms_interactions
+      migration.removeColumn('sms_interactions', 'openedBy');
+      // END sms_interactions
+
+      // START fax_interactions
+      migration.removeColumn('fax_interactions', 'openedBy');
+      // END fax_interactions
+
+      // START openchannel_interactions
+      migration.removeColumn('openchannel_interactions', 'openedBy');
+      // END openchannel_interactions
+
+      // START OPENCHANNEL INTERACTION
+      migration.addColumn('openchannel_interactions', 'from', {
+        type: Sequelize.STRING
+      });
+      // END OPENCHANNEL INTERACTION
+
+      // START MAIL ACCOUNT
+      migration.addColumn('mail_accounts', 'waitForTheAssignedAgent', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 10
+      });
+      // END MAIL ACCOUNT
+
+      // START OPENCHANNEL ACCOUNT
+      migration.addColumn('openchannel_accounts', 'waitForTheAssignedAgent', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 10
+      });
+      // END OPENCHANNEL ACCOUNT
+
+      // START OPENCHANNEL ACCOUNT
+      migration.addColumn('fax_accounts', 'waitForTheAssignedAgent', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 10
+      });
+      // END OPENCHANNEL ACCOUNT
+
+      // START SMS ACCOUNT
+      migration.addColumn('sms_accounts', 'waitForTheAssignedAgent', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 10
+      });
+      // END SMS ACCOUNT
+
+      // START USERS
+      migration.addColumn('users', 'phoneBarEnableJaws', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      //END USERS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.61.js b/server/migrations/2.0.61.js
new file mode 100644
index 0000000..5aaa180
--- /dev/null
+++ b/server/migrations/2.0.61.js
@@ -0,0 +1,143 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.62.js b/server/migrations/2.0.62.js
new file mode 100644
index 0000000..59ad495
--- /dev/null
+++ b/server/migrations/2.0.62.js
@@ -0,0 +1,176 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START CUSTOM REPORTS
+      migration.addColumn('tools_schedules', 'sendIfEmpty', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END CUSTOM REPORTS
+
+      // START CM CONTACTS
+      migration.changeColumn('cm_contacts', 'phone', {
+        type: Sequelize.STRING,
+        allowNull: true
+      });
+      // END CM CONTACTS
+
+      // START SETTINGS
+      migration.addColumn('settings', 'enableEmailPreview', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END SETTINGS
+
+      // START CHAT WEBSITE
+      migration.addColumn('chat_websites', 'alignment', {
+        type: Sequelize.STRING,
+        defaultValue: 'bottom_right'
+      });
+
+      migration.addColumn('chat_websites', 'verticalAlignment', {
+        type: Sequelize.INTEGER,
+        defaultValue: 30
+      });
+      // END CHAT WEBSITE
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.63.js b/server/migrations/2.0.63.js
new file mode 100644
index 0000000..528245a
--- /dev/null
+++ b/server/migrations/2.0.63.js
@@ -0,0 +1,253 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var rs = require('randomstring');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START CHAT WEBSITE
+      migration.addColumn('chat_websites', 'messagesAlignment', {
+        type: Sequelize.STRING,
+        defaultValue: 'alternate'
+      });
+
+      migration.addColumn('chat_websites', 'defaultTitle', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('chat_websites', 'customerAvatar', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('chat_websites', 'showCustomerAvatar', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END CHAT WEBSITE
+
+      //START TAG APPLICATION
+
+      migration.addColumn('chat_applications', 'TagId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query(
+        'ALTER TABLE `chat_applications` \
+        ADD CONSTRAINT `chat_applications_ibfk_5` \
+        FOREIGN KEY (`TagId`) \
+        REFERENCES tools_tags(`id`) \
+        ON UPDATE CASCADE'
+      );
+
+      migration.addColumn('fax_applications', 'TagId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query(
+        'ALTER TABLE `fax_applications` \
+        ADD CONSTRAINT `fax_applications_ibfk_5` \
+        FOREIGN KEY (`TagId`) \
+        REFERENCES tools_tags(`id`) \
+        ON UPDATE CASCADE'
+      );
+
+      migration.addColumn('mail_applications', 'TagId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query(
+        'ALTER TABLE `mail_applications` \
+        ADD CONSTRAINT `mail_applications_ibfk_5` \
+        FOREIGN KEY (`TagId`) \
+        REFERENCES tools_tags(`id`) \
+        ON UPDATE CASCADE'
+      );
+
+      migration.addColumn('openchannel_applications', 'TagId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query(
+        'ALTER TABLE `openchannel_applications` \
+        ADD CONSTRAINT `openchannel_applications_ibfk_5` \
+        FOREIGN KEY (`TagId`) \
+        REFERENCES tools_tags(`id`) \
+        ON UPDATE CASCADE'
+      );
+
+      migration.addColumn('sms_applications', 'TagId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query(
+        'ALTER TABLE `sms_applications` \
+        ADD CONSTRAINT `sms_applications_ibfk_5` \
+        FOREIGN KEY (`TagId`) \
+        REFERENCES tools_tags(`id`) \
+        ON UPDATE CASCADE'
+      );
+
+      //END TAG APPLICATION
+
+      //START REPORT_DIAL
+      migration.query('ALTER TABLE report_dial CHANGE `hodltime` `holdtime` INT(11) DEFAULT NULL');
+      //END REPORT_DIAL
+
+      //START OPENCHANNEL TOKEN
+      migration.addColumn('openchannel_accounts', 'token', {
+        type: Sequelize.STRING
+      });
+      //END OPENCHANNEL TOKEN
+
+      // START VOICE QUEUE LOG
+      migration.addColumn('voice_queues_log', 'data', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: ''
+      });
+      // END VOICE QUEUE LOG
+
+      // START CUSTOM DASHBOARD WIDGET
+      migration.changeColumn('dashboard_items', 'title', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      // END CUSTOM DASHBOARD WIDGET
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.64.js b/server/migrations/2.0.64.js
new file mode 100644
index 0000000..3452849
--- /dev/null
+++ b/server/migrations/2.0.64.js
@@ -0,0 +1,188 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var rs = require('randomstring');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function(res) {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START USERS
+      migration.addColumn('users', 'phoneBarEnableVideoRecording', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      //END USERS
+
+      // START REPORT CALL
+      migration.changeColumn('report_call', 'lastdata', {
+        type: Sequelize.TEXT
+      });
+      // END REPORT CALL
+
+      // START CHAT WEBSITE
+      migration.addColumn('chat_websites', 'customerAlias', {
+        type: Sequelize.STRING,
+        defaultValue: 'Me'
+      });
+      // END CHAT WEBSITE
+
+      // START analytics_report_fields
+      migration.changeColumn('analytics_report_fields', 'field', {
+        type: Sequelize.TEXT,
+        allowNull: false
+      });
+      // END analytics_report_fields
+
+      // START report_call
+      migration.removeIndex('report_call', 'uniqueid');
+      // END report_call
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.65.js b/server/migrations/2.0.65.js
new file mode 100644
index 0000000..237f33a
--- /dev/null
+++ b/server/migrations/2.0.65.js
@@ -0,0 +1,235 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var rs = require('randomstring');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START VOICEQUEUE
+      migration.addColumn('voice_queues', 'dialRandomLastDigitCallerIdNumber', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 0
+      });
+      migration.addColumn('voice_queues', 'dialCutDigit', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 0
+      });
+      // END VOICEQUEUE
+
+      // START IVR CAMPAIGN
+      migration.addColumn('campaigns', 'dialRandomLastDigitCallerIdNumber', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 0
+      });
+      migration.addColumn('campaigns', 'dialCutDigit', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 0
+      });
+      // END IVR CAMPAIGN
+
+      // START CM CONTACTS
+      migration.addColumn('cm_contacts', 'teams', {
+        type: Sequelize.STRING
+      });
+      // END CM CONTACTS
+
+      // START cm_contact_has_tags
+      migration.query('CREATE TABLE `cm_contact_has_tags` ( \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `CmContactId` int(11) NOT NULL, \
+        `TagId` int(11) NOT NULL, \
+        PRIMARY KEY (`CmContactId`,`TagId`), \
+        KEY `TagId` (`TagId`), \
+        CONSTRAINT `cm_contact_has_tags_ibfk_1` FOREIGN KEY (`CmContactId`) REFERENCES `cm_contacts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+        CONSTRAINT `cm_contact_has_tags_ibfk_2` FOREIGN KEY (`TagId`) REFERENCES `tools_tags` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      // END cm_contact_has_tags
+
+      migration.query('CREATE TABLE `tmp_tools_tags` (\
+        `id` int(11) NOT NULL AUTO_INCREMENT, \
+        `name` varchar(255) NOT NULL, \
+        `color` varchar(255) DEFAULT \'#0091EA\', \
+        `description` varchar(255) DEFAULT NULL, \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        PRIMARY KEY (`id`)) ENGINE=InnoDB CHARSET=utf8;');
+      migration.query('CREATE TABLE ints(i int(11) DEFAULT NULL,UNIQUE KEY i_UNIQUE (i)) ENGINE=InnoDB DEFAULT CHARSET=utf8');
+      migration.query('INSERT INTO ints(i) VALUES (0)');
+      migration.query('INSERT INTO ints(i) VALUES (1)');
+      migration.query('INSERT INTO ints(i) VALUES (2)');
+      migration.query('INSERT INTO ints(i) VALUES (3)');
+      migration.query('INSERT INTO ints(i) VALUES (4)');
+      migration.query('INSERT INTO ints(i) VALUES (5)');
+      migration.query('INSERT INTO ints(i) VALUES (6)');
+      migration.query('INSERT INTO ints(i) VALUES (7)');
+      migration.query('INSERT INTO ints(i) VALUES (8)');
+      migration.query('INSERT INTO ints(i) VALUES (9)');
+      migration.query('ALTER TABLE tmp_tools_tags ADD COLUMN contact_id INT NULL');
+
+      migration.query('INSERT INTO tmp_tools_tags( name, createdAt, updatedAt, contact_id)\
+        SELECT splitted_tags, CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP() , id \
+        FROM ( \
+          SELECT DISTINCT cm.id, cm.tags, TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(cm.tags, \';\', i+1),\';\',-1)) splitted_tags\
+          FROM ints i, cm_contacts cm \
+          WHERE cm.tags REGEXP \'(.*;){1}\'\
+          ORDER BY id) a\
+        WHERE a.tags IS NOT NULL and splitted_tags <> \'\';');
+
+      migration.query('INSERT INTO cm_contact_has_tags(createdAt, updatedAt, `CmContactId`, `TagId`) \
+        SELECT  NOW(), NOW(), tmt.contact_id, tt.id \
+        FROM tmp_tools_tags tmt \
+        JOIN tools_tags tt \
+        ON tmt.name = tt.name;');
+      // END cm_contact_has_tags
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.66.js b/server/migrations/2.0.66.js
new file mode 100644
index 0000000..ca4ecd7
--- /dev/null
+++ b/server/migrations/2.0.66.js
@@ -0,0 +1,246 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var rs = require('randomstring');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START analytics_report_fields
+      migration.changeColumn('analytics_report_fields', 'field', {
+        type: Sequelize.TEXT
+      });
+      // END analytics_report_fields
+
+      // START tools_schedules
+      migration.addColumn('tools_schedules', 'cc', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('tools_schedules', 'bcc', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('settings', 'split', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('settings', 'splitSizeCsv', {
+        type: Sequelize.INTEGER,
+        defaultValue: 5000
+      });
+
+      migration.addColumn('settings', 'splitSizePdf', {
+        type: Sequelize.INTEGER,
+        defaultValue: 1000
+      });
+
+      migration.addColumn('settings', 'splitSizeXlsx', {
+        type: Sequelize.INTEGER,
+        defaultValue: 5000
+      });
+      // END tools_schedules
+
+      // START mail_accounts
+      migration.addColumn('mail_accounts', 'queueTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('mail_accounts', 'queueTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+
+      migration.addColumn('mail_accounts', 'agentTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('mail_accounts', 'agentTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      // END mail_accounts
+
+      // START users
+      migration.addColumn('users', 'phoneBarPrefixRequired', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END users
+
+      // START mail_interactions
+      migration.changeColumn('mail_interactions', 'subject', {
+        type: Sequelize.TEXT('') + ' CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci'
+      });
+
+      migration.changeColumn('mail_interactions', 'lastMsgBody', {
+        type: Sequelize.TEXT('long') + ' CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci'
+      });
+      // END mail_interactions
+
+      // START CM CONTACTS
+      migration.addColumn('cm_contacts', 'viber', {
+        type: Sequelize.STRING
+      });
+      // END CM CONTACTS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.67.js b/server/migrations/2.0.67.js
new file mode 100644
index 0000000..9b22627
--- /dev/null
+++ b/server/migrations/2.0.67.js
@@ -0,0 +1,298 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+      var toolsDispositionsQuery = 'CREATE TABLE `tools_dispositions` (\
+        `id` int(11) NOT NULL AUTO_INCREMENT,\
+        `name` varchar(255) NOT NULL,\
+        `createdAt` datetime NOT NULL,\
+        `updatedAt` datetime NOT NULL,\
+        `MailAccountId` int(11) DEFAULT NULL,\
+        `FaxAccountId` int(11) DEFAULT NULL,\
+        `SmsAccountId` int(11) DEFAULT NULL,\
+        `OpenchannelAccountId` int(11) DEFAULT NULL,\
+        `ChatWebsiteId` int(11) DEFAULT NULL,\
+        `ListId` int(11) DEFAULT NULL,\
+        PRIMARY KEY (`id`),\
+        UNIQUE KEY `name_voice` (`name`,`ListId`),\
+        UNIQUE KEY `name_chat` (`name`,`ChatWebsiteId`),\
+        UNIQUE KEY `name_mail` (`name`,`MailAccountId`),\
+        UNIQUE KEY `name_sms` (`name`,`SmsAccountId`),\
+        UNIQUE KEY `name_fax` (`name`,`FaxAccountId`),\
+        UNIQUE KEY `name_openchannel` (`name`,`OpenchannelAccountId`),\
+        KEY `MailAccountId` (`MailAccountId`),\
+        KEY `FaxAccountId` (`FaxAccountId`),\
+        KEY `SmsAccountId` (`SmsAccountId`),\
+        KEY `OpenchannelAccountId` (`OpenchannelAccountId`),\
+        KEY `ChatWebsiteId` (`ChatWebsiteId`),\
+        KEY `ListId` (`ListId`),\
+        CONSTRAINT `tools_dispositions_ibfk_1` FOREIGN KEY (`MailAccountId`) REFERENCES `mail_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,\
+        CONSTRAINT `tools_dispositions_ibfk_2` FOREIGN KEY (`FaxAccountId`) REFERENCES `fax_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,\
+        CONSTRAINT `tools_dispositions_ibfk_3` FOREIGN KEY (`SmsAccountId`) REFERENCES `sms_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,\
+        CONSTRAINT `tools_dispositions_ibfk_4` FOREIGN KEY (`OpenchannelAccountId`) REFERENCES `openchannel_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,\
+        CONSTRAINT `tools_dispositions_ibfk_5` FOREIGN KEY (`ChatWebsiteId`) REFERENCES `chat_websites` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,\
+        CONSTRAINT `tools_dispositions_ibfk_6` FOREIGN KEY (`ListId`) REFERENCES `cm_lists` (`id`) ON DELETE SET NULL ON UPDATE CASCADE\
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;'
+
+      // START tools_dispositions
+      migration.query(toolsDispositionsQuery);
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`, `ChatWebsiteId`) \
+      SELECT `name`, `createdAt`, `updatedAt`, `ChatWebsiteId` FROM chat_dispositions;');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`, `MailAccountId`) \
+      SELECT `name`, `createdAt`, `updatedAt`, `MailAccountId` FROM mail_dispositions;');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`, `FaxAccountId`) \
+      SELECT `name`, `createdAt`, `updatedAt`, `FaxAccountId` FROM fax_dispositions;');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`, `SmsAccountId`) \
+      SELECT `name`, `createdAt`, `updatedAt`, `SmsAccountId` FROM sms_dispositions;');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`, `OpenchannelAccountId`) \
+      SELECT `name`, `createdAt`, `updatedAt`, `OpenchannelAccountId` FROM openchannel_dispositions;');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`, `ListId`) \
+      SELECT `name`, `createdAt`, `updatedAt`, `ListId` FROM voice_dispositions;');
+      // END tools_dispositions
+
+      // START user_has_chat_websites
+      migration.query('CREATE TABLE `user_has_chat_websites` ( \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `ChatWebsiteId` int(11) NOT NULL, \
+        `UserId` int(11) NOT NULL, \
+        PRIMARY KEY (`ChatWebsiteId`,`UserId`), \
+        KEY `UserId` (`UserId`), \
+        CONSTRAINT `user_has_chat_websites_ibfk_1` FOREIGN KEY (`ChatWebsiteId`) REFERENCES `chat_websites` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+        CONSTRAINT `user_has_chat_websites_ibfk_2` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      migration.query('INSERT INTO user_has_chat_websites (`UserId`, `ChatWebsiteId`, `createdAt`, `updatedAt`) \
+      SELECT u.id as `UserId`, a.id as `ChatWebsiteId`, NOW() as `createdAt`, NOW() as `updatedAt` \
+      FROM users as u, chat_websites as a \
+      ORDER BY u.id, a.id;');
+      // END user_has_chat_websites
+
+      // START user_has_mail_accounts
+      migration.query('CREATE TABLE `user_has_mail_accounts` ( \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `MailAccountId` int(11) NOT NULL, \
+        `UserId` int(11) NOT NULL, \
+        PRIMARY KEY (`MailAccountId`,`UserId`), \
+        KEY `UserId` (`UserId`), \
+        CONSTRAINT `user_has_mail_accounts_ibfk_1` FOREIGN KEY (`MailAccountId`) REFERENCES `mail_accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+        CONSTRAINT `user_has_mail_accounts_ibfk_2` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      migration.query('INSERT INTO user_has_mail_accounts (`UserId`, `MailAccountId`, `createdAt`, `updatedAt`) \
+      SELECT u.id as `UserId`, a.id as `MailAccountId`, NOW() as `createdAt`, NOW() as `updatedAt` \
+      FROM users as u, mail_accounts as a \
+      ORDER BY u.id, a.id;');
+      // END user_has_mail_accounts
+
+      // START user_has_fax_accounts
+      migration.query('CREATE TABLE `user_has_fax_accounts` ( \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `FaxAccountId` int(11) NOT NULL, \
+        `UserId` int(11) NOT NULL, \
+        PRIMARY KEY (`FaxAccountId`,`UserId`), \
+        KEY `UserId` (`UserId`), \
+        CONSTRAINT `user_has_fax_accounts_ibfk_1` FOREIGN KEY (`FaxAccountId`) REFERENCES `fax_accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+        CONSTRAINT `user_has_fax_accounts_ibfk_2` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      migration.query('INSERT INTO user_has_fax_accounts (`UserId`, `FaxAccountId`, `createdAt`, `updatedAt`) \
+      SELECT u.id as `UserId`, a.id as `FaxAccountId`, NOW() as `createdAt`, NOW() as `updatedAt` \
+      FROM users as u, fax_accounts as a \
+      ORDER BY u.id, a.id;');
+      // END user_has_fax_accounts
+
+      // START user_has_sms_accounts
+      migration.query('CREATE TABLE `user_has_sms_accounts` ( \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `SmsAccountId` int(11) NOT NULL, \
+        `UserId` int(11) NOT NULL, \
+        PRIMARY KEY (`SmsAccountId`,`UserId`), \
+        KEY `UserId` (`UserId`), \
+        CONSTRAINT `user_has_sms_accounts_ibfk_1` FOREIGN KEY (`SmsAccountId`) REFERENCES `sms_accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+        CONSTRAINT `user_has_sms_accounts_ibfk_2` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      migration.query('INSERT INTO user_has_sms_accounts (`UserId`, `SmsAccountId`, `createdAt`, `updatedAt`) \
+      SELECT u.id as `UserId`, a.id as `SmsAccountId`, NOW() as `createdAt`, NOW() as `updatedAt` \
+      FROM users as u, sms_accounts as a \
+      ORDER BY u.id, a.id;');
+      // END user_has_sms_accounts
+
+      // START user_has_openchannel_accounts
+      migration.query('CREATE TABLE `user_has_openchannel_accounts` ( \
+        `createdAt` datetime NOT NULL, \
+        `updatedAt` datetime NOT NULL, \
+        `OpenchannelAccountId` int(11) NOT NULL, \
+        `UserId` int(11) NOT NULL, \
+        PRIMARY KEY (`OpenchannelAccountId`,`UserId`), \
+        KEY `UserId` (`UserId`), \
+        CONSTRAINT `user_has_openchannel_accounts_ibfk_1` FOREIGN KEY (`OpenchannelAccountId`) REFERENCES `openchannel_accounts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, \
+        CONSTRAINT `user_has_openchannel_accounts_ibfk_2` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE \
+      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+      migration.query('INSERT INTO user_has_openchannel_accounts (`UserId`, `OpenchannelAccountId`, `createdAt`, `updatedAt`) \
+      SELECT u.id as `UserId`, a.id as `OpenchannelAccountId`, NOW() as `createdAt`, NOW() as `updatedAt` \
+      FROM users as u, openchannel_accounts as a \
+      ORDER BY u.id, a.id;');
+      // END user_has_openchannel_accounts
+
+      // START mail_messages
+      migration.addColumn('mail_messages', 'originTo', {
+        type: Sequelize.TEXT('long')
+      });
+
+      migration.addColumn('mail_messages', 'originCc', {
+        type: Sequelize.TEXT('long')
+      });
+      // START mail_messages
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.68.js b/server/migrations/2.0.68.js
new file mode 100644
index 0000000..7942445
--- /dev/null
+++ b/server/migrations/2.0.68.js
@@ -0,0 +1,183 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`) VALUES (\'Fax\', NOW(), NOW())');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`) VALUES (\'Answer Machine\', NOW(), NOW())');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`) VALUES (\'Interested\', NOW(), NOW())');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`) VALUES (\'Not Interested\', NOW(), NOW())');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`) VALUES (\'Sold\', NOW(), NOW())');
+      migration.query('INSERT INTO tools_dispositions (`name`, `createdAt`, `updatedAt`) VALUES (\'Special\', NOW(), NOW())');
+
+      // START openchannel_accounts
+      migration.addColumn('openchannel_accounts', 'mapKey', {
+        type: Sequelize.STRING
+      });
+      // END openchannel_accounts
+
+      // START chat_interactions
+      migration.addColumn('chat_interactions', 'closeReason', {
+        type: Sequelize.STRING
+      });
+      // END chat_interactions
+
+      // START SETTINGS
+      migration.addColumn('settings', 'messagesAlignment', {
+        type: Sequelize.STRING
+      });
+
+      migration.query('UPDATE settings SET messagesAlignment=\'alternate\'');
+      // END SETTINGS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.69.js b/server/migrations/2.0.69.js
new file mode 100644
index 0000000..a564b29
--- /dev/null
+++ b/server/migrations/2.0.69.js
@@ -0,0 +1,242 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START report_jscripty_answers
+      migration.changeColumn('report_jscripty_answers', 'answer', {
+        type: Sequelize.TEXT('long')
+      });
+      // END report_jscripty_answers
+
+      // START report_jscripty_questions
+      migration.changeColumn('report_jscripty_questions', 'answer', {
+        type: Sequelize.TEXT('long')
+      });
+      // END report_jscripty_questions
+
+      // START tools_sounds
+      migration.query(
+        'UPDATE tools_sounds S1 JOIN \
+         (SELECT name FROM tools_sounds GROUP BY name HAVING COUNT(id) > 1) S2 \
+         ON S1.name = S2.name \
+         SET S1.name = CONCAT(S1.name, \'_\', LOWER(LPAD(CONV(FLOOR(RAND()*POW(36,6)), 10, 36), 6, 0)))'
+      );
+
+      migration.changeColumn('tools_sounds', 'name', {
+        type: Sequelize.STRING,
+        unique: true,
+        allowNull: false
+      });
+      // END tools_sounds
+      // START chat_websites
+      migration.addColumn('chat_websites', 'messageFontSize', {
+        type: Sequelize.INTEGER,
+        defaultValue: 12
+      });
+
+      migration.addColumn('chat_websites', 'backgroundColor', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#fafafa',
+        validate: {
+          notEmpty: true
+        }
+      });
+      // END chat_websites
+
+      // START CM CONTACTS
+      migration.addColumn('cm_contacts', 'line', {
+        type: Sequelize.STRING
+      });
+      // END CM CONTACTS
+
+      // START voice_prefixes
+      migration.query('DELETE FROM `voice_prefixes`');
+      migration.query('DELETE FROM `user_has_voice_prefixes`');
+      migration.removeIndex('voice_prefixes', 'prefix');
+      migration.removeColumn('voice_prefixes', 'prefix');
+      migration.addColumn('voice_prefixes', 'callerIdAll', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('voice_prefixes', 'VoiceExtensionId', {
+        type: Sequelize.INTEGER
+      });
+      // END voice_prefixes
+
+      // START voice_extensions
+      migration.addColumn('voice_extensions', 'VoicePrefixId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query(
+        'ALTER TABLE `voice_extensions` \
+         ADD CONSTRAINT `voice_extensions_ibfk_7` \
+         FOREIGN KEY (`VoicePrefixId`) \
+         REFERENCES voice_prefixes(`id`) \
+         ON UPDATE CASCADE \
+         ON DELETE CASCADE'
+      );
+
+      migration.query(
+        'update voice_extensions set app = \'ExecIf\', appdata = CONCAT(\'$[${LEN(${PREFIX-CALLERIDALL})} > 0]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(\', appdata, \')\') where appdata LIKE CONCAT(\'CALLERID(all)\', \'%\') and type = \'outbound\''
+      );
+      // END voice_extensions
+
+      // START REPORT CALL
+      migration.addColumn('report_call', 'prefix', {
+        type: Sequelize.STRING
+      });
+      // END REPORT CALL
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.70.js b/server/migrations/2.0.70.js
new file mode 100644
index 0000000..179679c
--- /dev/null
+++ b/server/migrations/2.0.70.js
@@ -0,0 +1,174 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START report_queue
+      migration.addColumn('report_queue', 'mohtime', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      //
+
+      // START report_queue
+      migration.addColumn('report_call', 'mohtime', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      //
+
+      // START int_vtiger_accounts
+      migration.query('ALTER TABLE int_vtiger_accounts ENCRYPTION=\'Y\';');
+      // END int_vtiger_accounts
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.71.js b/server/migrations/2.0.71.js
new file mode 100644
index 0000000..a859d75
--- /dev/null
+++ b/server/migrations/2.0.71.js
@@ -0,0 +1,300 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      //START CHAT_WEBSITE
+      migration.addColumn('chat_websites', 'queueTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'enableCustomerCheckmarks', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'queueTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      migration.addColumn('chat_websites', 'agentTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'agentTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      migration.addColumn('chat_websites', 'systemAlias', {
+        type: Sequelize.STRING,
+        defaultValue: 'System'
+      });
+      migration.addColumn('chat_websites', 'systemAvatar', {
+        type: Sequelize.TEXT
+      });
+      //END CHAT_WEBSITE
+
+      //START FAX_ACCOUNT
+      migration.addColumn('fax_accounts', 'queueTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('fax_accounts', 'queueTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      migration.addColumn('fax_accounts', 'agentTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('fax_accounts', 'agentTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      //END FAX_ACCOUNT
+
+      //START OPENCHANNEL_ACCOUNT
+      migration.addColumn('openchannel_accounts', 'queueTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('openchannel_accounts', 'queueTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      migration.addColumn('openchannel_accounts', 'agentTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('openchannel_accounts', 'agentTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      //END OPENCHANNEL_ACCOUNT
+
+      //START SMS_ACCOUNT
+      migration.addColumn('sms_accounts', 'queueTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('sms_accounts', 'queueTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      migration.addColumn('sms_accounts', 'agentTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('sms_accounts', 'agentTransferTimeout', {
+        type: Sequelize.INTEGER,
+        validate: {
+          min: 1,
+          max: 2147483
+        },
+        defaultValue: 300
+      });
+      //END SMS_ACCOUNT
+
+      // START SETTINGS
+      migration.addColumn('settings', 'chatTimeout', {
+        type: Sequelize.INTEGER,
+        defaultValue: 30
+      });
+      migration.query('UPDATE settings SET chatTimeout = 0;');
+      migration.addColumn('settings', 'phoneBarRememberMeEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END SETTINGS
+
+      // START LICENSE
+      migration.addColumn('license', 'chatLicenseExceeded', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      // END LICENSE
+
+      // START TOOLS_ACTIONS
+      migration.addColumn('tools_actions', 'data7', {
+        type: Sequelize.TEXT
+      });
+      // END TOOLS_ACTIONS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.72.js b/server/migrations/2.0.72.js
new file mode 100644
index 0000000..7f0458e
--- /dev/null
+++ b/server/migrations/2.0.72.js
@@ -0,0 +1,166 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START user_has_voice_queues_rt
+      migration.query('DELETE FROM user_has_voice_queues_rt WHERE UserId NOT IN (SELECT id FROM users WHERE role = \'agent\')');
+      // END user_has_voice_queues_rt
+
+      //START REPORT_SQUARE
+      migration.addIndex('report_square', ['uniqueid', 'project_name'], 'uid_pname');
+
+      migration.addIndex('report_square', ['leaveAt'], 'leaveAt');
+      //END REPORT_SQUARE
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.73.js b/server/migrations/2.0.73.js
new file mode 100644
index 0000000..2a011a9
--- /dev/null
+++ b/server/migrations/2.0.73.js
@@ -0,0 +1,189 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START report_call
+      migration.addColumn('report_call', 'routeid', {
+        type: Sequelize.INTEGER
+      });
+      // END report_call
+
+      // START cm_hopper_final
+      migration.addColumn('cm_hopper_final', 'originatecalleridnum', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('cm_hopper_final', 'originatecalleridname', {
+        type: Sequelize.STRING
+      });
+      // END cm_hopper_final
+
+      // START cm_hopper_history
+      migration.addColumn('cm_hopper_history', 'originatecalleridnum', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('cm_hopper_history', 'originatecalleridname', {
+        type: Sequelize.STRING
+      });
+      // END cm_hopper_history
+
+      // START CM CONTACTS
+      migration.addColumn('cm_contacts', 'wechat', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('cm_contacts', 'fb_data', {
+        type: Sequelize.STRING
+      });
+      // END CM CONTACTS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.74.js b/server/migrations/2.0.74.js
new file mode 100644
index 0000000..5dc32dd
--- /dev/null
+++ b/server/migrations/2.0.74.js
@@ -0,0 +1,156 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.75.js b/server/migrations/2.0.75.js
new file mode 100644
index 0000000..5dc32dd
--- /dev/null
+++ b/server/migrations/2.0.75.js
@@ -0,0 +1,156 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.76.js b/server/migrations/2.0.76.js
new file mode 100644
index 0000000..0a4b9c2
--- /dev/null
+++ b/server/migrations/2.0.76.js
@@ -0,0 +1,176 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START sessions
+      migration.query('TRUNCATE sessions');
+      // END sessions
+
+      // START report_<channel>_transfer
+      migration.query('ALTER TABLE report_chat_transfer ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE report_mail_transfer ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE report_fax_transfer ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE report_openchannel_transfer ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE report_sms_transfer ENCRYPTION=\'Y\';');
+      // END report_<channel>_transfer
+
+      // START USERS
+      migration.addColumn('users', 'hotdesk', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END USERS
+
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.77.js b/server/migrations/2.0.77.js
new file mode 100644
index 0000000..a68e351
--- /dev/null
+++ b/server/migrations/2.0.77.js
@@ -0,0 +1,177 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START REPORT SQUARE
+      migration.addColumn('report_square', 'bot', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END REPORT SQUARE
+
+      // START REPORT SQUARE
+      migration.addColumn('users', 'interface', {
+        type: Sequelize.STRING,
+        defaultValue: null
+      });
+      // END REPORT SQUARE
+
+      // START USERS
+      migration.addColumn('users', 'privacyEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END USERS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.78.js b/server/migrations/2.0.78.js
new file mode 100644
index 0000000..d6909a2
--- /dev/null
+++ b/server/migrations/2.0.78.js
@@ -0,0 +1,160 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START square_messages
+      migration.query('ALTER TABLE square_messages ENCRYPTION=\'Y\';');
+      // END square_messages
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.79.js b/server/migrations/2.0.79.js
new file mode 100644
index 0000000..f75604e
--- /dev/null
+++ b/server/migrations/2.0.79.js
@@ -0,0 +1,171 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START dashboard_items
+      migration.query(
+        'UPDATE dashboard_items SET attrs = REPLACE(attrs,\'[{"name":"attrReport"\',\'[{"name":"attrReport","type":"custom"\') WHERE type = \'web-report\' AND attrs NOT LIKE \'%type%\''
+      );
+      // END dashboard_items
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.80.js b/server/migrations/2.0.80.js
new file mode 100644
index 0000000..8ce1296
--- /dev/null
+++ b/server/migrations/2.0.80.js
@@ -0,0 +1,176 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START SETTINGS
+      migration.addColumn('settings', 'preferred', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('settings', 'defaultPreferred', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END SETTINGS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.81.js b/server/migrations/2.0.81.js
new file mode 100644
index 0000000..fd8d9a9
--- /dev/null
+++ b/server/migrations/2.0.81.js
@@ -0,0 +1,199 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START sms_accounts
+      migration.changeColumn(
+        'sms_accounts',
+        'smsMethod', {
+          type: Sequelize.ENUM('basic', 'classic', 'classic+', 'SI', 'TI', 'GP')
+        }
+      );
+      migration.query(
+        'UPDATE sms_accounts \
+                SET smsMethod = \'SI\' WHERE smsMethod = \'basic\''
+      );
+      migration.query(
+        'UPDATE sms_accounts \
+                SET smsMethod = \'TI\' WHERE smsMethod = \'classic\''
+      );
+      migration.query(
+        'UPDATE sms_accounts \
+                SET smsMethod = \'GP\' WHERE smsMethod = \'classic+\''
+      );
+      migration.changeColumn(
+        'sms_accounts',
+        'smsMethod', {
+          type: Sequelize.ENUM('SI', 'TI', 'GP')
+        }
+      );
+      // END sms_accounts
+
+      // START CM_CONTACTS
+      migration.addColumn('cm_contacts', 'telegram', {
+        type: Sequelize.STRING
+      });
+      // END CM_CONTACTS
+
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.82.js b/server/migrations/2.0.82.js
new file mode 100644
index 0000000..6a1536c
--- /dev/null
+++ b/server/migrations/2.0.82.js
@@ -0,0 +1,175 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START SMSACCOUNT
+      migration.addColumn('sms_accounts', 'apiKey', {
+        type: Sequelize.STRING
+      });
+
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend', 'plivo', 'clickatell', 'csc')
+      });
+      // END SMSACCOUNT
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.83.js b/server/migrations/2.0.83.js
new file mode 100644
index 0000000..c40cfde
--- /dev/null
+++ b/server/migrations/2.0.83.js
@@ -0,0 +1,195 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START CM_HOPPER
+      migration.addColumn('cm_hopper', 'OwnerId', {
+        type: Sequelize.INTEGER(11)
+      });
+      migration.query('ALTER TABLE cm_hopper ADD CONSTRAINT cm_hopper_ibfk_6 FOREIGN KEY (OwnerId) REFERENCES users(id) ON UPDATE CASCADE ON DELETE SET NULL');
+      // END CM_HOPPER
+
+      // START CM_CONTACTS
+      migration.addColumn('cm_contacts', 'fb_data', {
+        type: Sequelize.STRING
+      });
+      // START CM_CONTACTS
+
+      // START sms_accounts
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend', 'plivo', 'clickatell', 'csc', 'infobip')
+      });
+
+      migration.addColumn('sms_accounts', 'baseUrl', {
+        type: Sequelize.STRING
+      });
+      // END sms_accounts
+
+      // START report_queue
+      migration.addColumn('report_queue', 'queuecallerenterreason', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      // END report_queue
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.0.84.js b/server/migrations/2.0.84.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.0.84.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.1.0.js b/server/migrations/2.1.0.js
new file mode 100644
index 0000000..ce77612
--- /dev/null
+++ b/server/migrations/2.1.0.js
@@ -0,0 +1,776 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize.query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(util.inspect(err, {
+          showHidden: false,
+          depth: null
+        }));
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START EXTRACTED REPORTS
+      migration.addColumn('analytics_extracted_reports', 'reportId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addColumn('analytics_extracted_reports', 'reportType', {
+        type: Sequelize.STRING
+      });
+      // END EXTRACTED REPORTS
+
+      // START USERS
+      migration.addColumn('users', 'userProfileId', {
+        type: Sequelize.INTEGER
+      });
+      // END USERS
+
+      // START VOICEMAILS
+      migration.removeColumn('voice_voicemail', 'name');
+      // END VOICEMAILS
+
+      // START USER_PROFILES
+      migration.query('CREATE TABLE `user_profiles` (' +
+        '  `id` int(11) NOT NULL AUTO_INCREMENT,' +
+        '  `name` varchar(255) NOT NULL,' +
+        '  `crudPermissions` varchar(255) NOT NULL DEFAULT \'r\',' +
+        '  `description` varchar(255) DEFAULT NULL,' +
+        '  `createdAt` datetime NOT NULL,' +
+        '  `updatedAt` datetime NOT NULL,' +
+        '  PRIMARY KEY (`id`),' +
+        '  UNIQUE KEY `name` (`name`)' +
+        ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+
+      migration.query('INSERT INTO `user_profiles` (`name`, `crudPermissions`, `description`, `createdAt`, `updatedAt`)' +
+        'VALUES (\'Default\', \'red\', NULL, NOW(), NOW());');
+
+      migration.query('ALTER TABLE `users` ' +
+        'ADD CONSTRAINT `users_ibfk_1` ' +
+        'FOREIGN KEY (`userProfileId`) ' +
+        'REFERENCES user_profiles(`id`) ' +
+        'ON UPDATE CASCADE');
+
+      migration.query('CREATE TABLE `user_profile_has_sections` (' +
+        '  `id` int(11) NOT NULL AUTO_INCREMENT,' +
+        '  `name` varchar(255) NOT NULL,' +
+        '  `category` varchar(255) NOT NULL,' +
+        '  `sectionId` int(11) NOT NULL,' +
+        '  `enabled` tinyint(1) DEFAULT NULL,' +
+        '  `autoAssociation` tinyint(1) DEFAULT NULL,' +
+        '  `crudPermissions` varchar(255) DEFAULT NULL,' +
+        '  `createdAt` datetime NOT NULL,' +
+        '  `updatedAt` datetime NOT NULL,' +
+        '  `userProfileId` int(11) DEFAULT NULL,' +
+        '  PRIMARY KEY (`id`),' +
+        '  KEY `userProfileId` (`userProfileId`),' +
+        '  KEY `compositeIndex` (`sectionId`,`userProfileId`),' +
+        '  CONSTRAINT `user_profile_has_sections_ibfk_1` FOREIGN KEY (`userProfileId`) REFERENCES `user_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE' +
+        ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+
+      migration.query('CREATE TABLE `user_profile_has_resources` (' +
+        '  `id` int(11) NOT NULL AUTO_INCREMENT,' +
+        '  `name` varchar(255) NOT NULL,' +
+        '  `resourceId` int(11) NOT NULL,' +
+        '  `type` varchar(255) NOT NULL,' +
+        '  `createdAt` datetime NOT NULL,' +
+        '  `updatedAt` datetime NOT NULL,' +
+        '  `sectionId` int(11) DEFAULT NULL,' +
+        '  PRIMARY KEY (`id`),' +
+        '  KEY `sectionId` (`sectionId`),' +
+        '  KEY `compositeIndex` (`resourceId`,`sectionId`),' +
+        '  CONSTRAINT `user_profile_has_resources_ibfk_1` FOREIGN KEY (`sectionId`) REFERENCES `user_profile_has_sections` (`id`) ON DELETE CASCADE ON UPDATE CASCADE' +
+        ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+
+      migration.query('CREATE TABLE tally (' +
+        '  n INT NOT NULL AUTO_INCREMENT PRIMARY KEY' +
+        ');');
+
+      migration.query('INSERT INTO tally (n)' +
+        'SELECT NULL FROM' +
+        '(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a' +
+        ',(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b' +
+        ',(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) c' +
+        ',(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) d' +
+        ',(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) e' +
+        ';');
+
+      migration.query('CREATE TABLE tmpPermissions' +
+        '  (' +
+        '      userIds varchar(255) not null,' +
+        '      permissions text not null,' +
+        '      profileId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpPermissions' +
+        '  SELECT id, permissions, null' +
+        '  FROM users' +
+        '  WHERE role = \'user\' and permissions is not null and permissions <> \'\'' +
+        '  ORDER BY id;');
+
+      migration.query('CREATE TABLE tmpNormalizedSections' +
+        '  (' +
+        '    sectionId int(11) not null,' +
+        '    userId text,' +
+        '    resourceId text' +
+        '  );');
+
+      migration.query('INSERT INTO tmpNormalizedSections' +
+        '  SELECT DISTINCT permission, userId, 0' +
+        '  FROM (SELECT' +
+        '    SUBSTRING_INDEX(SUBSTRING_INDEX(p.permissions, \',\', tally.n), \',\', -1) permission,' +
+        '    p.userIds userId' +
+        '  FROM tally INNER JOIN tmpPermissions p ON CHAR_LENGTH(p.permissions) - CHAR_LENGTH(REPLACE(p.permissions, \',\', \'\')) >= tally.n-1' +
+        '  ORDER BY n) AS split;');
+
+      migration.query('CREATE TABLE tmpNormalizedPermissions' +
+        '  (' +
+        '    permissions text not null,' +
+        '    userId int(11) not null' +
+        '  );');
+
+      migration.query('INSERT INTO tmpNormalizedPermissions' +
+        '  SELECT GROUP_CONCAT(sectionId ORDER BY sectionId), userId' +
+        '  FROM tmpNormalizedSections' +
+        '  GROUP BY userId;');
+
+      migration.query('UPDATE users u, tmpNormalizedPermissions t' +
+        '  SET u.permissions = t.permissions' +
+        '  WHERE u.id = t.userId;');
+
+      migration.query('TRUNCATE TABLE tmpPermissions;');
+
+      migration.query('INSERT INTO tmpPermissions' +
+        '  SELECT GROUP_CONCAT(id), permissions, null' +
+        '  FROM users' +
+        '  WHERE role = \'user\' and permissions is not null and permissions <> \'\'' +
+        '  GROUP BY permissions' +
+        '  ORDER BY GROUP_CONCAT(id);');
+
+      migration.query('CREATE TABLE tmpNormalizedUsers' +
+        '  (' +
+        '    sectionId int(11) not null,' +
+        '    userId text,' +
+        '    resourceId text' +
+        '  );');
+
+      migration.query('INSERT INTO tmpNormalizedUsers' +
+        '  SELECT permission, userId, 0' +
+        '  FROM (SELECT' +
+        '  s.sectionId permission,' +
+        '      SUBSTRING_INDEX(SUBSTRING_INDEX(s.userId, \',\', t.n), \',\', -1) userId' +
+        '  FROM tally t INNER JOIN tmpNormalizedSections s ON CHAR_LENGTH(s.userId) - CHAR_LENGTH(REPLACE(s.userId, \',\', \'\')) >= t.n-1' +
+        '  ORDER BY n) AS split;');
+
+
+      migration.query('CREATE TABLE tmpExtractedResources (' +
+        '  sectionId int(11) not null,' +
+        '  resourceId int(11),' +
+        '  userId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.VoiceQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_voice_queues u ON u.UserId = x.userId' +
+        '  INNER JOIN voice_queues q ON u.VoiceQueueId = q.id' +
+        '  WHERE x.sectionId = 401 AND q.type = \'inbound\';');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.ChatQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_chat_queues u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 501;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.ChatWebsiteId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_chat_websites u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 502;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.MailQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_mail_queues u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 601;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.MailAccountId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_mail_accounts u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 602;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.SmsQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_sms_queues u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 701;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.SmsAccountId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_sms_accounts u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 702;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.OpenchannelQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_openchannel_queues u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 801;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.OpenchannelAccountId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_openchannel_accounts u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 802;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.FaxQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_fax_queues u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 901;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.FaxAccountId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_fax_accounts u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 902;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.SquareProjectId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_square_projects u ON u.UserId = x.userId' +
+        '  WHERE x.sectionId = 1103;');
+
+      migration.query('INSERT INTO tmpExtractedResources' +
+        '  SELECT x.sectionId, u.VoiceQueueId, x.userId' +
+        '  FROM tmpNormalizedUsers x' +
+        '  INNER JOIN user_has_voice_queues u ON u.UserId = x.userId' +
+        '  INNER JOIN voice_queues q ON u.VoiceQueueId = q.id' +
+        '  WHERE x.sectionId = 1501 AND q.type = \'outbound\';');
+
+      migration.query('CREATE TABLE tmpGroupedPermissions' +
+        '  (' +
+        '      userId text not null,' +
+        '      permissions text not null' +
+        '  );');
+
+      migration.query('INSERT INTO tmpGroupedPermissions' +
+        '  SELECT userId, permissions' +
+        '  FROM (SELECT' +
+        '    SUBSTRING_INDEX(SUBSTRING_INDEX(t.userIds, \',\', tally.n), \',\', -1) userId,' +
+        '    t.permissions permissions' +
+        '  FROM tally INNER JOIN tmpPermissions t ON CHAR_LENGTH(t.userIds) - CHAR_LENGTH(REPLACE(t.userIds, \',\', \'\')) >= tally.n-1' +
+        '  ORDER BY n) AS split;');
+
+      migration.query('CREATE TABLE tmpSharedProfiles' +
+        '  (' +
+        '      userIds varchar(255) not null,' +
+        '      permissions text not null,' +
+        '      profileId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpSharedProfiles' +
+        '  SELECT GROUP_CONCAT(userId), permissions, null' +
+        '  FROM tmpGroupedPermissions' +
+        '  WHERE userId NOT IN (SELECT split.userId' +
+        '                      FROM (SELECT' +
+        '                            SUBSTRING_INDEX(SUBSTRING_INDEX(r.userIds, \',\', t.n), \',\', -1) userId' +
+        '                            FROM tally t' +
+        '                            INNER JOIN tmpPermissions r on CHAR_LENGTH(r.userIds) - CHAR_LENGTH(REPLACE(r.userIds, \',\', \'\')) >= t.n-1' +
+        '                            WHERE POSITION(\',\' in r.userIds) > 0' +
+        '                            ORDER BY n) AS split' +
+        '  WHERE split.userId IN (SELECT * FROM' +
+        '                          (SELECT GROUP_CONCAT(userId ORDER BY userId ASC) AS users' +
+        '                          FROM tmpNormalizedUsers' +
+        '                          GROUP BY resourceId, sectionId' +
+        '                          ORDER BY users) b' +
+        '                          WHERE position(\',\' in b.users) = 0))' +
+        '  GROUP BY permissions' +
+        '  ORDER BY GROUP_CONCAT(userId);');
+
+      migration.query('CREATE TABLE tmpSingleProfiles' +
+        '  (' +
+        '      userId text not null,' +
+        '      permissions text not null,' +
+        '      profileId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpSingleProfiles' +
+        '  SELECT userId, permissions, null' +
+        '  FROM tmpGroupedPermissions' +
+        '  WHERE userId IN (SELECT split.userId' +
+        '                    FROM (select SUBSTRING_INDEX(SUBSTRING_INDEX(r.userIds, \',\', t.n), \',\', -1) userId' +
+        '                    FROM tally t INNER JOIN tmpPermissions r ON CHAR_LENGTH(r.userIds) - CHAR_LENGTH(REPLACE(r.userIds, \',\', \'\')) >= t.n-1' +
+        '                    WHERE POSITION(\',\' in r.userIds) > 0' +
+        '                    ORDER BY n) as split' +
+        '  WHERE split.userId IN (SELECT * FROM' +
+        '                          (SELECT GROUP_CONCAT(userId ORDER BY userId ASC) as users' +
+        '                            FROM tmpNormalizedUsers' +
+        '                            GROUP BY resourceId, sectionId' +
+        '                            ORDER BY users) b' +
+        '                            WHERE position(\',\' in b.users) = 0))' +
+        '  ORDER BY userId;');
+
+      migration.query('CREATE TABLE tmpFinalProfiles' +
+        '  (' +
+        '      userId text not null,' +
+        '      permissions text not null,' +
+        '      profileId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpFinalProfiles' +
+        '  SELECT * FROM tmpSharedProfiles' +
+        '  UNION' +
+        '  SELECT * FROM tmpSingleProfiles;');
+
+      migration.query('INSERT INTO user_profiles (name, crudPermissions, createdAt, updatedAt)' +
+        '  SELECT CONCAT(\'Profile_\', (SELECT (@cnt := @cnt + 1) AS rowNumber' +
+        '  FROM tmpFinalProfiles t' +
+        '  CROSS JOIN (SELECT @cnt := 0) as dummy LIMIT 1)), \'red\', now(), now()' +
+        '  FROM tmpFinalProfiles;');
+
+      migration.query('UPDATE tmpFinalProfiles' +
+        '  SET profileId = (SELECT (@cnt := @cnt + 1) AS rowNumber' +
+        '  FROM user_profiles u' +
+        '  CROSS JOIN (SELECT @cnt := 1) as dummy LIMIT 1)');
+      // migration.query('UPDATE tmpFinalProfiles' +
+      //     '  SET profileId =  (@firstId := ifnull(@firstId, 1) + 1);');
+
+      migration.query('CREATE TABLE tmpSections' +
+        '  (' +
+        '    name varchar(255) not null,' +
+        '    category varchar(255) not null,' +
+        '    sectionId int(11) not null,' +
+        '    enabled tinyint not null,' +
+        '    autoAssociation tinyint not null,' +
+        '    userProfileId int(11) not null,' +
+        '    insertedId int(11),' +
+        '    userId text' +
+        '  );');
+
+      migration.query('INSERT INTO tmpSections' +
+        '  SELECT \'\', \'\', permission, 1, 0, profileId, null, userId' +
+        '  FROM (SELECT' +
+        '        fp.profileId profileId,' +
+        '        SUBSTRING_INDEX(SUBSTRING_INDEX(fp.permissions, \',\', tally.n), \',\', -1) permission,' +
+        '        SUBSTRING_INDEX(fp.userId, \',\', 1) userId' +
+        '        FROM tally' +
+        '        INNER JOIN tmpFinalProfiles fp ON CHAR_LENGTH(fp.permissions) - CHAR_LENGTH(REPLACE(fp.permissions, \',\', \'\')) >= tally.n-1' +
+        '        ORDER BY n) AS split;');
+
+      migration.query('UPDATE tmpSections' +
+        '  SET' +
+        '      name = (SELECT' +
+        '                CASE' +
+        '                   WHEN sectionId = 100 THEN \'Dashboards\'' +
+        '                   WHEN sectionId = 101 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 200 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 201 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 202 THEN \'Agents\'' +
+        '                   WHEN sectionId = 203 THEN \'Telephones\'' +
+        '                   WHEN sectionId = 204 THEN \'Teams\'' +
+        '                   WHEN sectionId = 300 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 301 THEN \'Lists\'' +
+        '                   WHEN sectionId = 302 THEN \'Companies\'' +
+        '                   WHEN sectionId = 303 THEN \'Contacts\'' +
+        '                   WHEN sectionId = 304 THEN \'GlobalCustomFields\'' +
+        '                   WHEN sectionId = 400 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 401 THEN \'VoiceQueues\'' +
+        '                   WHEN sectionId = 402 THEN \'InboundRoutes\'' +
+        '                   WHEN sectionId = 403 THEN \'OutboundRoutes\'' +
+        '                   WHEN sectionId = 404 THEN \'InternalRoutes\'' +
+        '                   WHEN sectionId = 405 THEN \'Contexts\'' +
+        '                   WHEN sectionId = 406 THEN \'Voicemails\'' +
+        '                   WHEN sectionId = 407 THEN \'MusicOnHolds\'' +
+        '                   WHEN sectionId = 408 THEN \'VoiceRecordings\'' +
+        '                   WHEN sectionId = 409 THEN \'ChanSpies\'' +
+        '                   WHEN sectionId = 410 THEN \'VoicePrefixes\'' +
+        '                   WHEN sectionId = 411 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 500 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 501 THEN \'ChatQueues\'' +
+        '                   WHEN sectionId = 502 THEN \'ChatWebsites\'' +
+        '                   WHEN sectionId = 510 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 600 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 601 THEN \'MailQueues\'' +
+        '                   WHEN sectionId = 602 THEN \'MailAccounts\'' +
+        '                   WHEN sectionId = 603 THEN \'MailSubstatuses\'' +
+        '                   WHEN sectionId = 610 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 700 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 701 THEN \'SmsQueues\'' +
+        '                   WHEN sectionId = 702 THEN \'SmsAccounts\'' +
+        '                   WHEN sectionId = 710 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 800 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 801 THEN \'OpenchannelQueues\'' +
+        '                   WHEN sectionId = 802 THEN \'OpenchannelAccounts\'' +
+        '                   WHEN sectionId = 810 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 900 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 901 THEN \'FaxQueues\'' +
+        '                   WHEN sectionId = 902 THEN \'FaxAccounts\'' +
+        '                   WHEN sectionId = 910 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 1000 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1001 THEN \'CannedAnswers\'' +
+        '                   WHEN sectionId = 1002 THEN \'Dispositions\'' +
+        '                   WHEN sectionId = 1003 THEN \'CustomDashboards\'' +
+        '                   WHEN sectionId = 1004 THEN \'Intervals\'' +
+        '                   WHEN sectionId = 1005 THEN \'Pauses\'' +
+        '                   WHEN sectionId = 1006 THEN \'Scheduler\'' +
+        '                   WHEN sectionId = 1007 THEN \'Sounds\'' +
+        '                   WHEN sectionId = 1008 THEN \'Tags\'' +
+        '                   WHEN sectionId = 1009 THEN \'Templates\'' +
+        '                   WHEN sectionId = 1010 THEN \'Triggers\'' +
+        '                   WHEN sectionId = 1011 THEN \'Trunks\'' +
+        '                   WHEN sectionId = 1012 THEN \'Variables\'' +
+        '                   WHEN sectionId = 1100 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1101 THEN \'ODBC\'' +
+        '                   WHEN sectionId = 1102 THEN \'SquareRecordings\'' +
+        '                   WHEN sectionId = 1103 THEN \'SquareProjects\'' +
+        '                   WHEN sectionId = 1200 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1201 THEN \'Metrics\'' +
+        '                   WHEN sectionId = 1202 THEN \'ExtractedReports\'' +
+        '                   WHEN sectionId = 1203 THEN \'Reports\'' +
+        '                   WHEN sectionId = 1300 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1301 THEN \'ZendeskAccounts\'' +
+        '                   WHEN sectionId = 1302 THEN \'SalesforceAccounts\'' +
+        '                   WHEN sectionId = 1303 THEN \'FreshdeskAccounts\'' +
+        '                   WHEN sectionId = 1305 THEN \'SugarcrmAccounts\'' +
+        '                   WHEN sectionId = 1306 THEN \'DeskAccounts\'' +
+        '                   WHEN sectionId = 1307 THEN \'ZohoAccounts\'' +
+        '                   WHEN sectionId = 1308 THEN \'VtigerAccounts\'' +
+        '                   WHEN sectionId = 1400 THEN \'Settings\'' +
+        '                   WHEN sectionId in (1401, 1402, 1403, 1404, 1405, 1406, 1407) THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1500 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1501 THEN \'QueueCampaigns\'' +
+        '                   WHEN sectionId = 1502 THEN \'IvrCampaigns\'' +
+        '                   WHEN sectionId = 1510 THEN \'Realtime\'' +
+        '                   WHEN sectionId = 1600 THEN \'Help\'' +
+        '                   WHEN sectionId = 1601 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1700 THEN \'DELETE\'' +
+        '                   WHEN sectionId = 1701 THEN \'Projects\'' +
+        '                   WHEN sectionId between 88889 AND 99999 THEN \'Plugins\'' +
+        '                   WHEN sectionId >= 100000 THEN \'CustomDashboards\'' +
+        '                   ELSE \'\'' +
+        '                END' +
+        '            ),' +
+        '  category = (SELECT' +
+        '      CASE' +
+        '        WHEN sectionId = 100 THEN \'Dashboards\'' +
+        '        WHEN sectionId >= 100000 THEN \'Tools\'' +
+        '        WHEN sectionId in (202, 203, 204) THEN \'Staff\'' +
+        '        WHEN sectionId in (301, 302, 303, 304) THEN \'ContactManager\'' +
+        '        WHEN sectionId in (401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411) THEN \'Voice\'' +
+        '        WHEN sectionId in (501, 502, 510) THEN \'Chat\'' +
+        '        WHEN sectionId in (601, 602, 603, 610) THEN \'Mail\'' +
+        '        WHEN sectionId in (701, 702, 710) THEN \'Sms\'' +
+        '        WHEN sectionId in (801, 802, 810) THEN \'Openchannel\'' +
+        '        WHEN sectionId in (901, 902, 910) THEN \'Fax\'' +
+        '        WHEN sectionId in (1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012) THEN \'Tools\'' +
+        '        WHEN sectionId in (1101, 1102, 1103) THEN \'CallySquare\'' +
+        '        WHEN sectionId in (1201, 1202, 1203) THEN \'Analytics\'' +
+        '        WHEN sectionId in (1301, 1302, 1303, 1305, 1306, 1307, 1308) THEN \'Integrations\'' +
+        '        WHEN sectionId = 1400 THEN \'Settings\'' +
+        '        WHEN sectionId in (1501, 1502, 1510) THEN \'MotionDialer\'' +
+        '        WHEN sectionId = 1600 THEN \'Help\'' +
+        '        WHEN sectionId = 1701 THEN \'jscripty\'' +
+        '        WHEN sectionId between 88889 AND 99999 THEN \'AppZone\'' +
+        '        ELSE \'\'' +
+        '      END' +
+        '  );');
+
+      migration.query('DELETE FROM tmpSections' +
+        '  WHERE name = \'DELETE\';');
+
+      migration.query('CREATE TABLE tmpCustomResources' +
+        '  (' +
+        '    name varchar(255) not null,' +
+        '    category varchar(255) not null,' +
+        '    sectionId int(11) not null,' +
+        '    enabled tinyint not null,' +
+        '    autoAssociation tinyint not null,' +
+        '    userProfileId int(11) not null,' +
+        '    insertedId int(11),' +
+        '    userId text' +
+        '  );');
+
+      migration.query('INSERT INTO tmpCustomResources' +
+        '  SELECT *' +
+        '  FROM tmpSections' +
+        '  WHERE name in (\'Plugins\', \'CustomDashboards\');');
+
+      migration.query('DELETE t1 FROM tmpSections t1, tmpCustomResources t2' +
+        '  WHERE t1.name = t2.name AND t1.userProfileId = t2.userProfileId AND t1.sectionId > t2.sectionId;');
+
+      migration.query('UPDATE tmpSections' +
+        '  SET sectionId = 1801 WHERE sectionId between 88889 AND 99999;');
+
+      migration.query('UPDATE tmpSections' +
+        '  SET sectionId = 1003 WHERE sectionId >= 100000;');
+
+      migration.query('UPDATE tmpSections' +
+        '  SET autoAssociation = 1 WHERE sectionId = 100;');
+
+      migration.query('UPDATE tmpCustomResources' +
+        '  SET insertedId = (SELECT' +
+        '                    CASE' +
+        '      WHEN name = \'Plugins\' THEN (sectionId - 88888)' +
+        '                      WHEN name = \'CustomDashboards\' THEN (sectionId - 99999)' +
+        '                    END' +
+        '          );');
+
+      migration.query('INSERT INTO user_profile_has_sections (name, category, sectionId, enabled, autoAssociation, crudPermissions, createdAt, updatedAt, userProfileId)' +
+        '  SELECT name, category, sectionId, enabled, autoAssociation, \'red\', now(), now(), userProfileId' +
+        '  FROM tmpSections;');
+
+      migration.query('UPDATE tmpSections s' +
+        '  SET insertedId = (SELECT id' +
+        '                    FROM user_profile_has_sections x' +
+        '                    WHERE s.userProfileId = x.userProfileId AND s.sectionId = x.sectionId);');
+
+      migration.query('UPDATE tmpCustomResources r, tmpSections s' +
+        '  SET r.sectionId = s.insertedId' +
+        '  WHERE r.name = s.name AND r.userProfileId = s.userProfileId;');
+
+      migration.query('CREATE TABLE tmpResources' +
+        '  (' +
+        '      resourceId text,' +
+        '      type varchar(255) not null,' +
+        '      insertedSectionId int(11) not null,' +
+        '      sectionId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpResources' +
+        '  SELECT cr.resourceId, name, s.insertedId, s.sectionId' +
+        '  FROM tmpSections s' +
+        '  INNER JOIN tmpExtractedResources cr ON cr.userId = s.userId AND cr.sectionId = s.sectionId AND cr.resourceId IS NOT NULL;');
+
+      migration.query('CREATE TABLE tmpNormalizedResources' +
+        '  (' +
+        '    name varchar(255) not null,' +
+        '    resourceId int(11) not null,' +
+        '    type varchar(255) not null,' +
+        '    insertedSectionId int(11) not null,' +
+        '    sectionId int(11)' +
+        '  );');
+
+      migration.query('INSERT INTO tmpNormalizedResources' +
+        '  SELECT \'\', resourceId, type, insertedSectionId, sectionId' +
+        '  FROM (SELECT' +
+        '        SUBSTRING_INDEX(SUBSTRING_INDEX(r.resourceId, \',\', tally.n), \',\', -1) resourceId,' +
+        '        r.type type,' +
+        '        r.insertedSectionId insertedSectionId,' +
+        '        r.sectionId sectionId' +
+        '        FROM tally' +
+        '        INNER JOIN tmpResources r ON CHAR_LENGTH(r.resourceId) - CHAR_LENGTH(REPLACE(r.resourceId, \',\', \'\')) >= tally.n-1' +
+        '        ORDER BY n) AS split;');
+
+      migration.query('INSERT INTO tmpNormalizedResources' +
+        '  SELECT \'\', insertedId, name, sectionId, null' +
+        '  FROM tmpCustomResources;');
+
+      migration.query('UPDATE tmpNormalizedResources x' +
+        '  SET name = (SELECT' +
+        '                  CASE' +
+        '      WHEN x.sectionId = 401 THEN COALESCE((SELECT name FROM voice_queues WHERE id = x.resourceId AND type = \'inbound\'),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 501 THEN COALESCE((SELECT name FROM chat_queues WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 502 THEN COALESCE((SELECT name FROM chat_websites WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 601 THEN COALESCE((SELECT name FROM mail_queues WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 602 THEN COALESCE((SELECT name FROM mail_accounts WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 701 THEN COALESCE((SELECT name FROM sms_queues WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 702 THEN COALESCE((SELECT name FROM sms_accounts WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 801 THEN COALESCE((SELECT name FROM openchannel_queues WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 802 THEN COALESCE((SELECT name FROM openchannel_accounts WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 901 THEN COALESCE((SELECT name FROM fax_queues WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 902 THEN COALESCE((SELECT name FROM fax_accounts WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 1103 THEN COALESCE((SELECT name FROM square_projects WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.sectionId = 1501 THEN COALESCE((SELECT name FROM voice_queues WHERE id = x.resourceId AND type = \'outbound\'),\'DELETE_MIGRATION\')' +
+        '      WHEN x.type = \'Plugins\' THEN COALESCE((SELECT name FROM plugins WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '      WHEN x.type = \'CustomDashboards\' THEN COALESCE((SELECT name FROM dashboards WHERE id = x.resourceId),\'DELETE_MIGRATION\')' +
+        '  END' +
+        '              );');
+
+      migration.query('DELETE FROM tmpNormalizedResources' +
+        '  WHERE name = \'DELETE_MIGRATION\';');
+
+      migration.query('INSERT INTO user_profile_has_resources (name, resourceId, type, createdAt, updatedAt, sectionId)' +
+        '  SELECT name, resourceId, type, now(), now(), insertedSectionId' +
+        '  FROM tmpNormalizedResources;');
+
+      migration.query('UPDATE users u, tmpFinalProfiles f' +
+        '  SET u.userProfileId = f.profileId' +
+        '  WHERE u.id = f.userId;');
+
+      migration.query('UPDATE users u' +
+        '  SET u.userProfileId = 1' +
+        '  WHERE userProfileId is null AND role = \'user\';');
+
+      migration.query(' DROP TABLE IF EXISTS tally;');
+
+      migration.query('DROP TABLE IF EXISTS tmpPermissions;');
+
+      migration.query('DROP TABLE IF EXISTS tmpNormalizedSections;');
+
+      migration.query('DROP TABLE IF EXISTS tmpNormalizedUsers;');
+
+      migration.query('DROP TABLE IF EXISTS tmpExtractedResources;');
+
+      migration.query('DROP TABLE IF EXISTS tmpGroupedPermissions;');
+
+      migration.query('DROP TABLE IF EXISTS tmpSharedProfiles;');
+
+      migration.query('DROP TABLE IF EXISTS tmpSingleProfiles;');
+
+      migration.query('DROP TABLE IF EXISTS tmpFinalProfiles;');
+
+      migration.query('DROP TABLE IF EXISTS tmpSections;');
+
+      migration.query('DROP TABLE IF EXISTS tmpCustomResources;');
+
+      migration.query('DROP TABLE IF EXISTS tmpResources;');
+
+      migration.query('DROP TABLE IF EXISTS tmpNormalizedResources;');
+      // END USER_PROFILES
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.0.js b/server/migrations/2.2.0.js
new file mode 100644
index 0000000..6ffa03b
--- /dev/null
+++ b/server/migrations/2.2.0.js
@@ -0,0 +1,178 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START SMSACCOUNT
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend', 'plivo', 'clickatell', 'csc', 'infobip', 'intelepeer')
+      });
+      // END SMSACCOUNT
+
+      //START users
+      migration.changeColumn('users', 'phoneBarListenPort', {
+        type: Sequelize.INTEGER(5),
+        defaultValue: 5160
+      });
+      //END users
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.1.js b/server/migrations/2.2.1.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.2.1.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.2.js b/server/migrations/2.2.2.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.2.2.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.3.js b/server/migrations/2.2.3.js
new file mode 100644
index 0000000..9d868ba
--- /dev/null
+++ b/server/migrations/2.2.3.js
@@ -0,0 +1,175 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START EMAIL
+      migration.changeColumn('mail_interactions', 'inReplyTo', {
+        type: Sequelize.STRING(510)
+      });
+
+      migration.changeColumn('mail_messages', 'messageId', {
+        type: Sequelize.STRING(510)
+      });
+      // END EMAIL
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.4.js b/server/migrations/2.2.4.js
new file mode 100644
index 0000000..6c6c812
--- /dev/null
+++ b/server/migrations/2.2.4.js
@@ -0,0 +1,175 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START INTEGRATIONS
+      migration.query('ALTER TABLE int_desk_fields add UNIQUE INDEX desk_unique_index (idField, FieldId)');
+      migration.query('ALTER TABLE int_freshdesk_fields add UNIQUE INDEX desk_unique_index (idField, FieldId)');
+      migration.query('ALTER TABLE int_salesforce_fields add UNIQUE INDEX salesforce_unique_index (idField, FieldId)');
+      migration.query('ALTER TABLE int_sugarcrm_fields add UNIQUE INDEX sugarcrm_unique_index (idField, FieldId)');
+      migration.query('ALTER TABLE int_vtiger_fields add UNIQUE INDEX vtiger_unique_index (idField, FieldId)');
+      migration.query('ALTER TABLE int_zendesk_fields add UNIQUE INDEX zendesk_unique_index (idField, FieldId)');
+      migration.query('ALTER TABLE int_zoho_fields add UNIQUE INDEX zoho_unique_index (idField, FieldId)');
+      // END INTEGRATIONS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.5.js b/server/migrations/2.2.5.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.2.5.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.2.6.js b/server/migrations/2.2.6.js
new file mode 100644
index 0000000..f4df1d0
--- /dev/null
+++ b/server/migrations/2.2.6.js
@@ -0,0 +1,270 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      //START mail_interactions
+      migration.query('ALTER TABLE mail_interactions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
+      //END mail_interactions
+
+      // START analytics_custom_reports
+      migration.query('UPDATE analytics_custom_reports SET joins = REPLACE(joins,\'"type":"outer_join"\',\'"type":"left_join"\') WHERE joins LIKE \'%"type":"outer_join"%\'');
+      // END analytics_custom_reports
+
+      // START square_projects
+      migration.query('UPDATE square_projects SET preproduction = REPLACE(preproduction,\'labelBackgroundColor=#ffffff;\',\'\')');
+      migration.query('UPDATE square_projects SET production = REPLACE(production,\'labelBackgroundColor=#ffffff;\',\'\')');
+      // END square_projects
+
+      // START mandatoryDisposition
+      migration.addColumn('voice_queues', 'mandatoryDisposition', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('voice_queues', 'mandatoryDispositionPauseId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE voice_queues \
+				ADD CONSTRAINT `voice_queues_ibfk_4` \
+				FOREIGN KEY (`mandatoryDispositionPauseId`) \
+				REFERENCES tools_pauses(`id`) \
+				ON UPDATE CASCADE \
+				ON DELETE CASCADE');
+
+      migration.addColumn('chat_websites', 'mandatoryDisposition', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('chat_websites', 'mandatoryDispositionPauseId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE chat_websites \
+				ADD CONSTRAINT `chat_websites_ibfk_3` \
+				FOREIGN KEY (`mandatoryDispositionPauseId`) \
+				REFERENCES tools_pauses(`id`) \
+				ON UPDATE CASCADE \
+				ON DELETE CASCADE');
+
+
+      migration.addColumn('fax_accounts', 'mandatoryDisposition', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('fax_accounts', 'mandatoryDispositionPauseId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE fax_accounts \
+				ADD CONSTRAINT `fax_accounts_ibfk_3` \
+				FOREIGN KEY (`mandatoryDispositionPauseId`) \
+				REFERENCES tools_pauses(`id`) \
+				ON UPDATE CASCADE \
+				ON DELETE CASCADE');
+
+
+      migration.addColumn('mail_accounts', 'mandatoryDisposition', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('mail_accounts', 'mandatoryDispositionPauseId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE mail_accounts \
+				ADD CONSTRAINT `mail_accounts_ibfk_3` \
+				FOREIGN KEY (`mandatoryDispositionPauseId`) \
+				REFERENCES tools_pauses(`id`) \
+				ON UPDATE CASCADE \
+				ON DELETE CASCADE');
+
+
+      migration.addColumn('openchannel_accounts', 'mandatoryDisposition', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('openchannel_accounts', 'mandatoryDispositionPauseId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE openchannel_accounts \
+				ADD CONSTRAINT `openchannel_accounts_ibfk_2` \
+				FOREIGN KEY (`mandatoryDispositionPauseId`) \
+				REFERENCES tools_pauses(`id`) \
+				ON UPDATE CASCADE \
+				ON DELETE CASCADE');
+
+
+      migration.addColumn('sms_accounts', 'mandatoryDisposition', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('sms_accounts', 'mandatoryDispositionPauseId', {
+        type: Sequelize.INTEGER
+      });
+      migration.query('ALTER TABLE sms_accounts \
+				ADD CONSTRAINT `sms_accounts_ibfk_2` \
+				FOREIGN KEY (`mandatoryDispositionPauseId`) \
+				REFERENCES tools_pauses(`id`) \
+				ON UPDATE CASCADE \
+				ON DELETE CASCADE');
+
+
+      // END mandatoryDisposition
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.0.js b/server/migrations/2.3.0.js
new file mode 100644
index 0000000..423083b
--- /dev/null
+++ b/server/migrations/2.3.0.js
@@ -0,0 +1,178 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START users
+      migration.addColumn('users', 'apiKeyNonce', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('users', 'apiKeyIat', {
+        type: Sequelize.STRING
+      });
+      // END users
+
+      // START report_call
+      migration.addIndex('report_call', ['uniqueid'], 'uniqueid');
+      // END report_call
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.1.js b/server/migrations/2.3.1.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.1.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.10.js b/server/migrations/2.3.10.js
new file mode 100644
index 0000000..5cec167
--- /dev/null
+++ b/server/migrations/2.3.10.js
@@ -0,0 +1,171 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START REPORT CALL
+      migration.addColumn('report_call', 'sipcallid', {
+        type: Sequelize.STRING
+      });
+      // END REPORT CALL
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.2.js b/server/migrations/2.3.2.js
new file mode 100644
index 0000000..fae7032
--- /dev/null
+++ b/server/migrations/2.3.2.js
@@ -0,0 +1,180 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START int_dynamics365_accounts
+      migration.query('ALTER TABLE int_dynamics365_accounts ENCRYPTION=\'Y\';');
+      // END int_dynamics365_accounts
+
+      // START int_servicenow_accounts
+      migration.query('ALTER TABLE int_servicenow_accounts ENCRYPTION=\'Y\';');
+      // END int_servicenow_accounts
+
+      // START SETTINGS
+      migration.addColumn('settings', 'rtlSupport', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END SETTINGS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.3.js b/server/migrations/2.3.3.js
new file mode 100644
index 0000000..f632149
--- /dev/null
+++ b/server/migrations/2.3.3.js
@@ -0,0 +1,199 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      //START tools_canned_answers
+      migration.query('ALTER TABLE tools_canned_answers CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
+      //END tools_canned_answers
+
+      //START chat_applications
+      migration.changeColumn('chat_applications', 'appdata', {
+        type: Sequelize.TEXT()
+      });
+      //END chat_applications
+
+      //START fax_applications
+      migration.changeColumn('fax_applications', 'appdata', {
+        type: Sequelize.TEXT()
+      });
+      //END fax_applications
+
+      //START mail_applications
+      migration.changeColumn('mail_applications', 'appdata', {
+        type: Sequelize.TEXT()
+      });
+      //END mail_applications
+
+      //START openchannel_applications
+      migration.changeColumn('openchannel_applications', 'appdata', {
+        type: Sequelize.TEXT()
+      });
+      //END openchannel_applications
+
+      //START sms_applications
+      migration.changeColumn('sms_applications', 'appdata', {
+        type: Sequelize.TEXT()
+      });
+      //END sms_applications
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.4.js b/server/migrations/2.3.4.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.4.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.5.js b/server/migrations/2.3.5.js
new file mode 100644
index 0000000..ed7ec65
--- /dev/null
+++ b/server/migrations/2.3.5.js
@@ -0,0 +1,166 @@
+"use strict";
+
+var BPromise = require("bluebird");
+var util = require("util");
+
+var logger = require("../config/logger")("migration");
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info("Changed column %s in table %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info("Added column %s to %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info("table dropped %s", table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info("removeIndex %s %s", table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info("query %s", sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info("Removed column %s from %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info("Renamed column from %s to %s on %s", oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.6.js b/server/migrations/2.3.6.js
new file mode 100644
index 0000000..ed7ec65
--- /dev/null
+++ b/server/migrations/2.3.6.js
@@ -0,0 +1,166 @@
+"use strict";
+
+var BPromise = require("bluebird");
+var util = require("util");
+
+var logger = require("../config/logger")("migration");
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info("Changed column %s in table %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info("Added column %s to %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info("table dropped %s", table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info("removeIndex %s %s", table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info("query %s", sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info("Removed column %s from %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info("Renamed column from %s to %s on %s", oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.7.js b/server/migrations/2.3.7.js
new file mode 100644
index 0000000..69f7bcf
--- /dev/null
+++ b/server/migrations/2.3.7.js
@@ -0,0 +1,198 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START REPORT AGENT
+      migration.addColumn('report_agent', 'transfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('report_agent', 'transfertype', {
+        type: Sequelize.STRING,
+        comment: 'FORWARD, BLIND, ATTENDED'
+      });
+      migration.addColumn('report_agent', 'transferexten', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('report_agent', 'transferuniqueid', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('report_agent', 'agententerreason', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      // END REPORT AGENT
+
+      // START REPORT CALL
+      migration.addColumn('report_call', 'systemanswertime', {
+        type: Sequelize.DATE
+      });
+      // END REPORT CALL
+      // START int_salesforce_configurations
+      migration.addColumn('int_salesforce_configurations', 'ticketType', {
+        type: Sequelize.ENUM('Task', 'Case'),
+        defaultValue: 'Task'
+      });
+      // END int_salesforce_configurations
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.8.js b/server/migrations/2.3.8.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.8.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.9.js b/server/migrations/2.3.9.js
new file mode 100644
index 0000000..ed7ec65
--- /dev/null
+++ b/server/migrations/2.3.9.js
@@ -0,0 +1,166 @@
+"use strict";
+
+var BPromise = require("bluebird");
+var util = require("util");
+
+var logger = require("../config/logger")("migration");
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info("Changed column %s in table %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info("Added column %s to %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info("table dropped %s", table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info("removeIndex %s %s", table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info("query %s", sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info("Removed column %s from %s", column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info("Renamed column from %s to %s on %s", oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.91.js b/server/migrations/2.3.91.js
new file mode 100644
index 0000000..5cec167
--- /dev/null
+++ b/server/migrations/2.3.91.js
@@ -0,0 +1,171 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START REPORT CALL
+      migration.addColumn('report_call', 'sipcallid', {
+        type: Sequelize.STRING
+      });
+      // END REPORT CALL
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.92.js b/server/migrations/2.3.92.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.92.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.93.js b/server/migrations/2.3.93.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.93.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.94.js b/server/migrations/2.3.94.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.94.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.95.js b/server/migrations/2.3.95.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.95.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.96.js b/server/migrations/2.3.96.js
new file mode 100644
index 0000000..b237a64
--- /dev/null
+++ b/server/migrations/2.3.96.js
@@ -0,0 +1,171 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START SETTINGS
+      migration.addColumn('settings', 'defaultScreenRecordingPath', {
+        type: Sequelize.STRING
+      });
+      // END SETTINGS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.97.js b/server/migrations/2.3.97.js
new file mode 100644
index 0000000..dc6c0e5
--- /dev/null
+++ b/server/migrations/2.3.97.js
@@ -0,0 +1,184 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START voice_queues
+      migration.addColumn('voice_queues', 'dialPredictiveIntervalMaxThreshold', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 20
+      });
+      migration.addColumn('voice_queues', 'dialPredictiveIntervalMinThreshold', {
+        type: Sequelize.INTEGER(3).UNSIGNED,
+        defaultValue: 10
+      });
+      // END voice_queues
+
+      // START MIGRATIONS
+      migration.query('ALTER TABLE migrations DROP PRIMARY KEY');
+      migration.query('ALTER TABLE migrations MODIFY COLUMN version varchar(255) NOT NULL UNIQUE');
+      migration.query('ALTER TABLE migrations ADD COLUMN id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST');
+      migration.query('ALTER TABLE migrations ADD COLUMN createdAt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER version');
+      migration.query('ALTER TABLE migrations ADD COLUMN updatedAt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER createdAt');
+      // END MIGRATIONS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.3.98.js b/server/migrations/2.3.98.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.3.98.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.0.js b/server/migrations/2.4.0.js
new file mode 100644
index 0000000..24ee6eb
--- /dev/null
+++ b/server/migrations/2.4.0.js
@@ -0,0 +1,244 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START USERS
+      migration.renameColumn('users', 'phoneBarEnableVideoRecording', 'phoneBarEnableScreenRecordingByAgent');
+
+      migration.addColumn('users', 'phoneBarEnableAutomaticScreenRecording', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('users', 'screenrecording', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      //END USERS
+
+      // START chat_messages
+      migration.addIndex("chat_messages", ["body"], {
+        indexName: "fti_chat_messages",
+        indicesType: "FULLTEXT"
+      });
+      // END chat_messages
+
+      // START mail_interactions
+      migration.addIndex("mail_interactions", ["subject", "to"], {
+        indexName: "fti_mail_interactions",
+        indicesType: "FULLTEXT"
+      });
+
+      migration.addColumn("mail_interactions", "lastMsgText", {
+        type: Sequelize.TEXT("tiny"),
+        after: "lastMsgBody"
+      });
+      // END mail_interactions
+
+      // START mail_messages
+      migration.addColumn("mail_messages", "plainBody", {
+        type: Sequelize.TEXT("medium"),
+        after: "body"
+      });
+
+      migration.addIndex("mail_messages", ["plainBody", "subject"], {
+        indexName: "fti_mail_messages",
+        indicesType: "FULLTEXT"
+      });
+      // END mail_messages
+
+      // START openchannel_messages
+      migration.addIndex("openchannel_messages", ["body"], {
+        indexName: "fti_openchannel_messages",
+        indicesType: "FULLTEXT"
+      });
+      // END openchannel_messages
+
+      // START sms_messages
+      migration.addIndex("sms_messages", ["body"], {
+        indexName: "fti_sms_messages",
+        indicesType: "FULLTEXT"
+      });
+      // END sms_messages
+      // START chat_applications
+      migration.query('ALTER TABLE chat_applications CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+      // END chat_applications
+
+      // START fax_applications
+      migration.query('ALTER TABLE fax_applications CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+      // END fax_applications
+
+      // START mail_applications
+      migration.query('ALTER TABLE mail_applications CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+      // END mail_applications
+
+      // START openchannel_applications
+      migration.query('ALTER TABLE openchannel_applications CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+      // END openchannel_applications
+
+      // START sms_applications
+      migration.query('ALTER TABLE sms_applications CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+      // END sms_applications
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.1.js b/server/migrations/2.4.1.js
new file mode 100644
index 0000000..fa87841
--- /dev/null
+++ b/server/migrations/2.4.1.js
@@ -0,0 +1,166 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.10.js b/server/migrations/2.4.10.js
new file mode 100644
index 0000000..873abc1
--- /dev/null
+++ b/server/migrations/2.4.10.js
@@ -0,0 +1,184 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      //START chat_interactions
+      migration.changeColumn('chat_interactions', 'referer', {
+        type: Sequelize.TEXT
+      });
+      //END chat_applications
+
+      // START SETTINGS
+      migration.addColumn('settings', 'favicon', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('settings', 'defaultFavicon', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END SETTINGS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.11.js b/server/migrations/2.4.11.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.4.11.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.12.js b/server/migrations/2.4.12.js
new file mode 100644
index 0000000..f54e0e9
--- /dev/null
+++ b/server/migrations/2.4.12.js
@@ -0,0 +1,178 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START SETTINGS
+      migration.addColumn('settings', 'loginMailFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 10
+      });
+      // END SETTINGS
+
+      // START tools_actions
+      migration.query('UPDATE tools_actions SET tools_actions.data5 = "5" WHERE tools_actions.action = "urlForward"');
+      // END tools_actions
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.13.js b/server/migrations/2.4.13.js
new file mode 100644
index 0000000..819d394
--- /dev/null
+++ b/server/migrations/2.4.13.js
@@ -0,0 +1,174 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START JSCRIPTY_PROJECTS
+      migration.addColumn('jscripty_projects', 'sendUnpauseOnSubmit', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END JSCRIPTY_PROJECTS
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.14.js b/server/migrations/2.4.14.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.4.14.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.15.js b/server/migrations/2.4.15.js
new file mode 100644
index 0000000..ff27fea
--- /dev/null
+++ b/server/migrations/2.4.15.js
@@ -0,0 +1,171 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START sms_accounts
+      migration.query('UPDATE sms_accounts SET baseUrl = "https://sms.csc.lv" WHERE type = "csc"');
+      // END sms_accounts
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.16.js b/server/migrations/2.4.16.js
new file mode 100644
index 0000000..9892855
--- /dev/null
+++ b/server/migrations/2.4.16.js
@@ -0,0 +1,174 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START cm_contacts
+      migration.addIndex("cm_contacts", ["firstName", "lastName", "phone", "mobile", "fax", "email"], {
+        indexName: "fti_cm_contacts",
+        indicesType: "FULLTEXT"
+      });
+      // END cm_contacts
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.17.js b/server/migrations/2.4.17.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.4.17.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.18.js b/server/migrations/2.4.18.js
new file mode 100644
index 0000000..8cad27c
--- /dev/null
+++ b/server/migrations/2.4.18.js
@@ -0,0 +1,173 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+
+      // START voice_queues
+      migration.query('UPDATE voice_queues SET joinempty = "yes" WHERE joinempty = \'\' or joinempty IS NULL');
+      migration.query('UPDATE voice_queues SET leavewhenempty = "no" WHERE leavewhenempty = \'\' or leavewhenempty IS NULL');
+      // END voice_queues
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.19.js b/server/migrations/2.4.19.js
new file mode 100644
index 0000000..381850a
--- /dev/null
+++ b/server/migrations/2.4.19.js
@@ -0,0 +1,203 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      //START int_zoho_configurations
+      migration.addColumn('int_zoho_configurations', 'moduleSearch', {
+        type: Sequelize.ENUM('contact_lead', 'contact', 'lead'),
+        defaultValue: 'contact_lead'
+      });
+
+      migration.changeColumn('int_zoho_configurations', 'moduleCreate', {
+        type: Sequelize.ENUM('Leads', 'Contacts', 'nothing', 'contact', 'lead')
+      });
+
+      migration.query('UPDATE int_zoho_configurations SET moduleCreate = \'contact\' WHERE moduleCreate = \'Contacts\'');
+
+      migration.query('UPDATE int_zoho_configurations SET moduleCreate = \'lead\' WHERE moduleCreate = \'Leads\'');
+
+      migration.changeColumn('int_zoho_configurations', 'moduleCreate', {
+        type: Sequelize.ENUM('nothing', 'contact', 'lead'),
+        defaultValue: 'lead'
+      });
+      //END int_zoho_configurations
+
+
+
+      // START network
+      migration.addColumn('network', 'username', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('network', 'password', {
+        type: Sequelize.STRING
+      });
+      migration.changeColumn('network', 'type', {
+        type: Sequelize.ENUM('localnet', 'externip', 'stun', 'turn')
+      });
+      migration.query("INSERT INTO network (type,value, createdAt, updatedAt) SELECT 'stun', stunaddr, current_timestamp(), current_timestamp() from settings WHERE stunaddr<>''");
+      migration.query("INSERT INTO network (type,value,username,password, createdAt, updatedAt) SELECT 'turn', turnaddr, turnusername, turnpassword, current_timestamp(), current_timestamp() from settings WHERE turnaddr<>''");
+      // END network
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.2.js b/server/migrations/2.4.2.js
new file mode 100644
index 0000000..2f7ce8e
--- /dev/null
+++ b/server/migrations/2.4.2.js
@@ -0,0 +1,201 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START SETTINGS
+      migration.addColumn('settings', 'allowedLoginAttempts', {
+        type: Sequelize.INTEGER,
+        defaultValue: 5
+      });
+      migration.addColumn('settings', 'blockDuration', {
+        type: Sequelize.INTEGER,
+        defaultValue: 10
+      });
+      migration.query('UPDATE settings SET allowedLoginAttempts = 0, blockDuration = 0;');
+      // END SETTINGS
+
+      // START USERS
+      migration.addColumn('users', 'blocked', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'loginAttempts', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('users', 'blockedAt', {
+        type: Sequelize.DATE,
+        defaultValue: null
+      });
+      migration.addColumn('users', 'disabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END USERS
+
+      // START screen_recordings
+      migration.query('ALTER TABLE screen_recordings ENCRYPTION=\'Y\';');
+      // END screen_recordings
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.20.js b/server/migrations/2.4.20.js
new file mode 100644
index 0000000..e2f26ce
--- /dev/null
+++ b/server/migrations/2.4.20.js
@@ -0,0 +1,176 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START settings
+      migration.addColumn('settings', 'googleSsoEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.query('UPDATE settings SET googleSsoEnabled = 1');
+      // END settings
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.21.js b/server/migrations/2.4.21.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.4.21.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.3.js b/server/migrations/2.4.3.js
new file mode 100644
index 0000000..fa87841
--- /dev/null
+++ b/server/migrations/2.4.3.js
@@ -0,0 +1,166 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.4.js b/server/migrations/2.4.4.js
new file mode 100644
index 0000000..9b32164
--- /dev/null
+++ b/server/migrations/2.4.4.js
@@ -0,0 +1,191 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START int_zoho_accounts
+      migration.removeColumn('int_zoho_accounts', 'authToken');
+
+      migration.addColumn('int_zoho_accounts', 'zone', {
+        type: Sequelize.STRING,
+        defaultValue: 'EU'
+      });
+
+      migration.addColumn('int_zoho_accounts', 'clientId', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('int_zoho_accounts', 'clientSecret', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('int_zoho_accounts', 'code', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('int_zoho_accounts', 'refreshToken', {
+        type: Sequelize.STRING
+      });
+      // END int_zoho_accounts
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.5.js b/server/migrations/2.4.5.js
new file mode 100644
index 0000000..fa87841
--- /dev/null
+++ b/server/migrations/2.4.5.js
@@ -0,0 +1,166 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.6.js b/server/migrations/2.4.6.js
new file mode 100644
index 0000000..18de8a3
--- /dev/null
+++ b/server/migrations/2.4.6.js
@@ -0,0 +1,168 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.7.js b/server/migrations/2.4.7.js
new file mode 100644
index 0000000..f74dee8
--- /dev/null
+++ b/server/migrations/2.4.7.js
@@ -0,0 +1,192 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START int_zoho_configurations
+      migration.addColumn('int_zoho_configurations', 'moduleCreate', {
+        type: Sequelize.ENUM('Leads', 'Contacts'),
+        defaultValue: 'Leads'
+      });
+      // END int_zoho_configurations
+
+      //START chat_interactions
+      migration.addColumn('chat_interactions', 'customerPort', {
+        type: Sequelize.STRING
+      });
+      // END chat_interactions
+
+      //START chat_websites
+      migration.addColumn('chat_websites', 'enableSendButton', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('chat_websites', 'feedbackTitle', {
+        type: Sequelize.STRING,
+        defaultValue: "Feedback"
+      });
+      // END chat_websites
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.8.js b/server/migrations/2.4.8.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.4.8.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.4.9.js b/server/migrations/2.4.9.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.4.9.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.0.js b/server/migrations/2.5.0.js
new file mode 100644
index 0000000..7746ad2
--- /dev/null
+++ b/server/migrations/2.5.0.js
@@ -0,0 +1,314 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START whatsapp
+      migration.query('CREATE TABLE `whatsapp_accounts` (' +
+        ' `id` int(11) NOT NULL AUTO_INCREMENT,' +
+        ' `name` varchar(255) NOT NULL,' +
+        ' `key` varchar(255) NOT NULL,' +
+        ' `remote` varchar(255) NOT NULL,' +
+        ' `token` varchar(255) DEFAULT NULL,' +
+        ' `phone` varchar(255) DEFAULT NULL,' +
+        ' `type` enum(\'twilio\') DEFAULT NULL,' +
+        ' `accountSid` varchar(255) DEFAULT NULL,' +
+        ' `authToken` varchar(255) DEFAULT NULL,' +
+        ' `notificationTemplate` text,' +
+        ' `notificationSound` tinyint(1) DEFAULT \'0\',' +
+        ' `notificationShake` tinyint(1) DEFAULT \'0\',' +
+        ' `waitForTheAssignedAgent` int(11) DEFAULT \'10\',' +
+        ' `queueTransfer` tinyint(1) DEFAULT \'0\',' +
+        ' `queueTransferTimeout` int(11) DEFAULT \'300\',' +
+        ' `agentTransfer` tinyint(1) DEFAULT \'0\',' +
+        ' `agentTransferTimeout` int(11) DEFAULT \'300\',' +
+        ' `mandatoryDispositionPauseId` int(11) DEFAULT NULL,' +
+        ' `mandatoryDisposition` tinyint(1) DEFAULT \'0\',' +
+        ' `description` varchar(255) DEFAULT NULL,' +
+        ' `createdAt` datetime NOT NULL,' +
+        ' `updatedAt` datetime NOT NULL,' +
+        ' `ListId` int(11) DEFAULT NULL,' +
+        ' PRIMARY KEY (`id`),' +
+        ' UNIQUE KEY `name` (`name`),' +
+        ' KEY `mandatoryDispositionPauseId` (`mandatoryDispositionPauseId`),' +
+        ' KEY `ListId` (`ListId`),' +
+        ' CONSTRAINT `whatsapp_accounts_ibfk_1` FOREIGN KEY (`mandatoryDispositionPauseId`) REFERENCES `tools_pauses` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,' +
+        ' CONSTRAINT `whatsapp_accounts_ibfk_2` FOREIGN KEY (`ListId`) REFERENCES `cm_lists` (`id`) ON DELETE SET NULL ON UPDATE CASCADE' +
+        ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+
+      migration.addColumn('tools_dispositions', 'WhatsappAccountId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addColumn('tools_canned_answers', 'WhatsappAccountId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addColumn('users', 'whatsappPause', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('users', 'whatsappCapacity', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.query('ALTER TABLE tools_dispositions ADD CONSTRAINT `tools_dispositions_ibfk_7` FOREIGN KEY (`WhatsappAccountId`) REFERENCES `whatsapp_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE');
+      migration.query('ALTER TABLE tools_dispositions ADD CONSTRAINT `name_whatsapp` UNIQUE KEY (`name`,`WhatsappAccountId`)');
+      migration.query('ALTER TABLE tools_canned_answers ADD CONSTRAINT `tools_canned_answers_ibfk_6` FOREIGN KEY (`WhatsappAccountId`) REFERENCES `whatsapp_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE');
+
+      migration.query('UPDATE users SET permissions=\'101,102,103,113,110,104,105,106,107,108,109,100,111,114\' WHERE role=\'agent\' AND permissions=\'101,102,103,110,104,105,106,107,108,109,100,111\'');
+      // END whatsapp
+
+      // START chat_interactions
+      migration.addColumn('chat_interactions', 'vidaooSessionId', {
+        type: Sequelize.TEXT
+      });
+
+      // START chat_websites
+      migration.addColumn('chat_websites', 'vidaooEscalation', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('chat_websites', 'vidaooApiKey', {
+        type: Sequelize.STRING
+      });
+      // END chat_websites
+
+      // START voice_recordings
+      migration.addColumn('voice_recordings', 'location', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('voice_recordings', 'transcribeName', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('voice_recordings', 'transcribeStatus', {
+        type: Sequelize.STRING,
+        defaultValue: 'NEW'
+      });
+      migration.addColumn('voice_recordings', 'fileUri', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('voice_recordings', 'fileText', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('voice_recordings', 'failureReason', {
+        type: Sequelize.TEXT
+      });
+      migration.addColumn('voice_recordings', 'sentiment', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('voice_recordings', 'sPositive', {
+        type: Sequelize.FLOAT
+      });
+      migration.addColumn('voice_recordings', 'sNegative', {
+        type: Sequelize.FLOAT
+      });
+      migration.addColumn('voice_recordings', 'sNeutral', {
+        type: Sequelize.FLOAT
+      });
+      migration.addColumn('voice_recordings', 'sMixed', {
+        type: Sequelize.FLOAT
+      });
+      migration.addColumn('voice_recordings', 'tempSentiment', {
+        type: Sequelize.BOOLEAN
+      });
+      // END voice_recordings
+
+      // START settings
+      migration.addColumn('settings', 'transcribe', {
+        type: Sequelize.BOOLEAN
+      });
+      migration.addColumn('settings', 'automaticTranscribe', {
+        type: Sequelize.BOOLEAN
+      });
+      migration.addColumn('settings', 'transcribeAccountId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('settings', 'transcribeRegion', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('settings', 'sentiment', {
+        type: Sequelize.BOOLEAN
+      });
+      migration.addColumn('settings', 'automaticSentiment', {
+        type: Sequelize.BOOLEAN
+      });
+      migration.addColumn('settings', 'sentimentAccountId', {
+        type: Sequelize.INTEGER
+      });
+      migration.addColumn('settings', 'sentimentRegion', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('settings', 'language', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('settings', 'bucket', {
+        type: Sequelize.STRING
+      });
+      // END settings
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.1.js b/server/migrations/2.5.1.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.5.1.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.10.js b/server/migrations/2.5.10.js
new file mode 100644
index 0000000..eead711
--- /dev/null
+++ b/server/migrations/2.5.10.js
@@ -0,0 +1,177 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START square_projects
+      migration.addColumn('square_projects', 'savedAt', {
+        type: Sequelize.DATE
+      });
+
+      migration.addColumn('square_projects', 'publishedAt', {
+        type: Sequelize.DATE
+      });
+      // END square_projects
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.11.js b/server/migrations/2.5.11.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.5.11.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.12.js b/server/migrations/2.5.12.js
new file mode 100644
index 0000000..0f7efe0
--- /dev/null
+++ b/server/migrations/2.5.12.js
@@ -0,0 +1,221 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      //START integration
+      migration.query("UPDATE int_desk_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_dynamics365_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_freshdesk_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_freshsales_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_salesforce_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_servicenow_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_sugarcrm_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_vtiger_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_zendesk_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+      migration.query("UPDATE int_zoho_accounts SET serverUrl='https://YOUR-MOTION-IPADDRESS' WHERE serverUrl IS NULL OR serverUrl = ''");
+
+      migration.changeColumn('int_desk_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_dynamics365_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_freshdesk_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_freshsales_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_salesforce_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_servicenow_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_sugarcrm_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_vtiger_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_zendesk_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      migration.changeColumn('int_zoho_accounts', 'serverUrl', {
+        type: Sequelize.STRING,
+        allowNull: false
+      });
+      //END integration
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.13.js b/server/migrations/2.5.13.js
new file mode 100644
index 0000000..01e22ec
--- /dev/null
+++ b/server/migrations/2.5.13.js
@@ -0,0 +1,168 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.14.js b/server/migrations/2.5.14.js
new file mode 100644
index 0000000..4c36724
--- /dev/null
+++ b/server/migrations/2.5.14.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.15.js b/server/migrations/2.5.15.js
new file mode 100644
index 0000000..4d03ae5
--- /dev/null
+++ b/server/migrations/2.5.15.js
@@ -0,0 +1,177 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      //START jscripty
+      migration.changeColumn('report_jscripty_questions', 'question', {
+        type: Sequelize.TEXT
+      });
+
+      migration.changeColumn('report_jscripty_answers', 'question', {
+        type: Sequelize.TEXT
+      });
+      //END jscripty
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.16.js b/server/migrations/2.5.16.js
new file mode 100644
index 0000000..084dda0
--- /dev/null
+++ b/server/migrations/2.5.16.js
@@ -0,0 +1,179 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START SMSACCOUNT
+      migration.addColumn('sms_accounts', 'applicationId', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('sms_accounts', 'accountId', {
+        type: Sequelize.STRING
+      });
+
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend', 'plivo', 'clickatell', 'csc', 'bandwidth')
+      });
+      // END SMSACCOUNT
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.17.js b/server/migrations/2.5.17.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.17.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.18.js b/server/migrations/2.5.18.js
new file mode 100644
index 0000000..6dd7db6
--- /dev/null
+++ b/server/migrations/2.5.18.js
@@ -0,0 +1,198 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START settings
+      migration.addColumn('settings', 'chatInteractionsReloadTimeout', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('settings', 'mailInteractionsReloadTimeout', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('settings', 'openchannelInteractionsReloadTimeout', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('settings', 'smsInteractionsReloadTimeout', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('settings', 'whatsappInteractionsReloadTimeout', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      // END settings
+
+      // START mail_applications
+      migration.query('UPDATE mail_applications SET appdata = REPLACE(appdata, \'0,\', \'0,1\') WHERE appdata LIKE \'0,%\' AND app = \'autoreply\';');
+
+      migration.query('UPDATE mail_applications SET appdata = REPLACE(appdata, \'1,\', \'1,1\') WHERE appdata LIKE \'1,%\' AND app = \'autoreply\';');
+      // END mail_applications
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.19.js b/server/migrations/2.5.19.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.19.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.2.js b/server/migrations/2.5.2.js
new file mode 100644
index 0000000..af4a0b1
--- /dev/null
+++ b/server/migrations/2.5.2.js
@@ -0,0 +1,343 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START whatsapp
+      migration.query('ALTER TABLE whatsapp_accounts ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE whatsapp_interactions ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE whatsapp_messages ENCRYPTION=\'Y\';');
+      migration.query('ALTER TABLE report_whatsapp_queue ENCRYPTION=\'Y\';');
+      // END whatsapp
+
+      // START cloud_providers
+      migration.query('ALTER TABLE cloud_providers ENCRYPTION=\'Y\';');
+      // END cloud_providers
+
+      // START voice_extensions
+      migration.query('ALTER TABLE voice_extensions DROP FOREIGN KEY voice_extensions_ibfk_7');
+      migration.query('ALTER TABLE voice_extensions DROP INDEX voice_extensions_ibfk_7');
+      migration.query('ALTER TABLE voice_extensions ADD CONSTRAINT voice_extensions_ibfk_7 FOREIGN KEY (VoicePrefixId) REFERENCES voice_prefixes(id) ON UPDATE CASCADE ON DELETE CASCADE');
+      // END  voice_extensions
+
+      //START voice_queues
+      migration.addColumn('voice_queues', 'dialNoSuchNumberMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('voice_queues', 'dialNoSuchNumberRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+
+      migration.addColumn('voice_queues', 'dialDropMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('voice_queues', 'dialDropRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+
+      migration.addColumn('voice_queues', 'dialAbandonedMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('voice_queues', 'dialAbandonedRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+
+      migration.addColumn('voice_queues', 'dialMachineMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('voice_queues', 'dialMachineRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+
+      migration.addColumn('voice_queues', 'dialAgentRejectMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('voice_queues', 'dialAgentRejectRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+      //END voice_queues
+
+      //START campaigns
+      migration.addColumn('campaigns', 'dialNoSuchNumberMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('campaigns', 'dialNoSuchNumberRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+      migration.addColumn('campaigns', 'dialDropMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('campaigns', 'dialDropRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+      migration.addColumn('campaigns', 'dialAbandonedMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('campaigns', 'dialAbandonedRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+      migration.addColumn('campaigns', 'dialMachineMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('campaigns', 'dialMachineRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+      migration.addColumn('campaigns', 'dialAgentRejectMaxRetry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      migration.addColumn('campaigns', 'dialAgentRejectRetryFrequency', {
+        type: Sequelize.INTEGER,
+        defaultValue: 150
+      });
+      //END campaigns            
+
+      //START cm_hopper
+      migration.addColumn('cm_hopper', 'countnosuchnumberretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper', 'countdropretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper', 'countabandonedretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper', 'countmachineretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper', 'countagentrejectretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      //END cm_hopper
+
+      //START cm_hopper_final
+      migration.addColumn('cm_hopper_final', 'countnosuchnumberretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_final', 'countdropretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_final', 'countabandonedretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_final', 'countmachineretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_final', 'countagentrejectretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      //END cm_hopper_final
+
+      //START cm_hopper_history
+      migration.addColumn('cm_hopper_history', 'countnosuchnumberretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_history', 'countdropretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_history', 'countabandonedretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_history', 'countmachineretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper_history', 'countagentrejectretry', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      //END cm_hopper_history
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.20.js b/server/migrations/2.5.20.js
new file mode 100644
index 0000000..1a383d8
--- /dev/null
+++ b/server/migrations/2.5.20.js
@@ -0,0 +1,179 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START settings
+      migration.addColumn('settings', 'searchOnEnterKey', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END settings
+
+      // START DASHBOARD_ITEM
+      migration.addColumn('dashboard_items', 'titleFontSize', {
+        type: Sequelize.INTEGER,
+        defaultValue: 12
+      });
+      // END DASHBOARD_ITEM
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.21.js b/server/migrations/2.5.21.js
new file mode 100644
index 0000000..1d6125d
--- /dev/null
+++ b/server/migrations/2.5.21.js
@@ -0,0 +1,169 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START team_has_voice_queues
+      migration.query('ALTER TABLE team_has_voice_queues ADD COLUMN penalty SMALLINT(3) UNSIGNED DEFAULT 0 FIRST;');
+      // END team_has_voice_queues
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.22.js b/server/migrations/2.5.22.js
new file mode 100644
index 0000000..ca470b0
--- /dev/null
+++ b/server/migrations/2.5.22.js
@@ -0,0 +1,202 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START chat_websites
+      migration.addColumn('chat_websites', 'openNewInteraction', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false,
+        allowNull: true
+      });
+
+      migration.addColumn('chat_websites', 'MailAccountId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query('ALTER TABLE chat_websites ADD CONSTRAINT `chat_websites_ibfk_4` FOREIGN KEY (`MailAccountId`) REFERENCES `mail_accounts` (`id`) ON DELETE SET NULL ON UPDATE CASCADE');
+      // END chat_websites
+
+      // START mail_messages
+      migration.addColumn('mail_messages', 'ChatWebsiteId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addColumn('mail_messages', 'originChannel', {
+        type: Sequelize.ENUM('Email', 'Chat'),
+        defaultValue: 'Email',
+        allowNull: true
+      });
+
+      migration.addColumn('mail_messages', 'ChatOfflineMessageId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query('ALTER TABLE mail_messages ADD CONSTRAINT `mail_messages_ibfk_5` FOREIGN KEY (`ChatWebsiteId`) REFERENCES `chat_websites` (`id`) ON DELETE SET NULL ON UPDATE CASCADE');
+      migration.query('ALTER TABLE mail_messages ADD CONSTRAINT `mail_messages_ibfk_6` FOREIGN KEY (`ChatOfflineMessageId`) REFERENCES `chat_offline_messages` (`id`) ON DELETE SET NULL ON UPDATE CASCADE');
+      // END mail_messages
+
+      // START voice_voicemail_messages
+      migration.query('ALTER TABLE voice_voicemail_messages MODIFY stamp timestamp default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;');
+      // END voice_voicemail_messages
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.23.js b/server/migrations/2.5.23.js
new file mode 100644
index 0000000..298f17f
--- /dev/null
+++ b/server/migrations/2.5.23.js
@@ -0,0 +1,253 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START user_profiles
+      migration.addColumn('user_profiles', 'privacyEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false,
+        after: 'description'
+      });
+      // END user_profiles
+
+      // START settings
+      migration.addColumn('settings', 'privacyPolicyNumber', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 0
+      });
+
+      migration.addColumn('settings', 'privacyPolicyEmail', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 0
+      });
+
+      migration.addColumn('settings', 'privacyPolicyName', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 0
+      });
+      // END settings
+
+      // START integration fields
+      migration.changeColumn('int_desk_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_dynamics365_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_freshdesk_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_freshsales_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_salesforce_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_servicenow_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_sugarcrm_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_vtiger_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_zendesk_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+
+      migration.changeColumn('int_zoho_fields', 'type', {
+        type: Sequelize.ENUM('string', 'variable', 'customVariable', 'keyValue', 'picklist')
+      });
+      // END integration fields
+
+      // START int_salesforce_configurations
+      migration.addColumn('int_salesforce_configurations', 'leadId', {
+        type: Sequelize.STRING
+      });
+
+      migration.query("ALTER TABLE int_salesforce_configurations MODIFY moduleSearch ENUM('contact_lead','contact','lead','account_contact_lead','account')");
+      migration.query("ALTER TABLE int_salesforce_configurations MODIFY moduleCreate ENUM('nothing','contact','lead','account')");
+
+      migration.addColumn('int_salesforce_configurations', 'additionalSearchAccount', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('int_salesforce_configurations', 'additionalSearchContact', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('int_salesforce_configurations', 'additionalSearchLead', {
+        type: Sequelize.STRING
+      });
+      // END int_salesforce_configurations
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.24.js b/server/migrations/2.5.24.js
new file mode 100644
index 0000000..630cece
--- /dev/null
+++ b/server/migrations/2.5.24.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      migration.query('ALTER TABLE mail_servers_in DROP INDEX username');
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.25.js b/server/migrations/2.5.25.js
new file mode 100644
index 0000000..c3dbba8
--- /dev/null
+++ b/server/migrations/2.5.25.js
@@ -0,0 +1,172 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START settings
+      migration.addColumn('settings', 'stopRecordingOnTransfer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END settings
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.26.js b/server/migrations/2.5.26.js
new file mode 100644
index 0000000..f93a9c2
--- /dev/null
+++ b/server/migrations/2.5.26.js
@@ -0,0 +1,179 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START attachments
+      migration.addColumn('attachments', 'ChatOfflineMessageId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.query('ALTER TABLE `attachments` ADD CONSTRAINT `attachments_ibfk_2` FOREIGN KEY (`ChatOfflineMessageId`) REFERENCES `chat_offline_messages` (`id`) ON UPDATE CASCADE ON DELETE CASCADE');
+      // END attachments
+
+      // START CHAT_WEBSITES
+      migration.addColumn('chat_websites', 'subjectOffline', {
+        type: Sequelize.TEXT
+      });
+      // END CHAT_WEBSITES
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.27.js b/server/migrations/2.5.27.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.27.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.28.js b/server/migrations/2.5.28.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.28.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.29.js b/server/migrations/2.5.29.js
new file mode 100644
index 0000000..dd75706
--- /dev/null
+++ b/server/migrations/2.5.29.js
@@ -0,0 +1,172 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START users
+      migration.addColumn('users', 'wssPort', {
+        type: Sequelize.INTEGER(5).UNSIGNED,
+        defaultValue: 8089
+      });
+      // END users
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.3.js b/server/migrations/2.5.3.js
new file mode 100644
index 0000000..3b6261d
--- /dev/null
+++ b/server/migrations/2.5.3.js
@@ -0,0 +1,187 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START chat_websites
+      migration.changeColumn('chat_websites', 'color', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#011F6A',
+        validate: {
+          notEmpty: true
+        }
+      });
+
+      migration.changeColumn('chat_websites', 'color_button', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#011F6A',
+        validate: {
+          notEmpty: true
+        }
+      });
+      // END chat_websites
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.30.js b/server/migrations/2.5.30.js
new file mode 100644
index 0000000..c466915
--- /dev/null
+++ b/server/migrations/2.5.30.js
@@ -0,0 +1,223 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START users
+      migration.changeColumn('users', 'previousPasswords', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('users', 'downloadAttachments', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('users', 'downloadOmnichannelInteractions', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('users', 'downloadVoiceRecordings', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END users
+
+      // START user_profiles
+      migration.addColumn('user_profiles', 'downloadAttachments', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('user_profiles', 'downloadCallySquareRecordings', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('user_profiles', 'downloadContactManagerLists', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('user_profiles', 'downloadJscriptySessions', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('user_profiles', 'downloadOmnichannelInteractions', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('user_profiles', 'downloadScreenRecordings', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('user_profiles', 'downloadVoiceRecordings', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END user_profiles
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.31.js b/server/migrations/2.5.31.js
new file mode 100644
index 0000000..4d49c15
--- /dev/null
+++ b/server/migrations/2.5.31.js
@@ -0,0 +1,182 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      //STAR chat_websites
+      migration.addColumn('chat_websites', 'vidaooTopic', {
+        type: Sequelize.STRING,
+        defaultValue: 'Generated by XCALLY Motion'
+      });
+
+      migration.addColumn('chat_websites', 'vidaooNote', {
+        type: Sequelize.STRING,
+        defaultValue: 'Meeting generated for interaction  #{{interaction.id}} by {{agent.name}}'
+      });
+
+      migration.addColumn('chat_websites', 'vidaooMetadata', {
+        type: Sequelize.TEXT,
+        defaultValue: null
+      });
+      //END chat_websites
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.32.js b/server/migrations/2.5.32.js
new file mode 100644
index 0000000..211dddc
--- /dev/null
+++ b/server/migrations/2.5.32.js
@@ -0,0 +1,192 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      //STAR *_interactions
+      migration.addColumn('mail_interactions', 'autoreplyExecuted', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('chat_interactions', 'autoreplyExecuted', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('openchannel_interactions', 'autoreplyExecuted', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('sms_interactions', 'autoreplyExecuted', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('whatsapp_interactions', 'autoreplyExecuted', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      //END *_interactions
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.33.js b/server/migrations/2.5.33.js
new file mode 100644
index 0000000..b385309
--- /dev/null
+++ b/server/migrations/2.5.33.js
@@ -0,0 +1,189 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START voice_extensions
+      migration.addColumn('voice_extensions', 'alias', {
+        type: Sequelize.STRING,
+        allowNull: true
+      });
+      // END voice_extensions
+
+      //START cm_list
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_6`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_6` FOREIGN KEY (`ListId`) REFERENCES `cm_lists`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_5`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_5` FOREIGN KEY (`ChatWebsiteId`) REFERENCES `chat_websites`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_4`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_4` FOREIGN KEY (`OpenchannelAccountId`) REFERENCES `openchannel_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_3`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_3` FOREIGN KEY (`SmsAccountId`) REFERENCES `sms_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_2`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_2` FOREIGN KEY (`FaxAccountId`) REFERENCES `fax_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_1`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_1` FOREIGN KEY (`MailAccountId`) REFERENCES `mail_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      migration.query('ALTER TABLE `tools_dispositions` DROP FOREIGN KEY `tools_dispositions_ibfk_7`');
+      migration.query('ALTER TABLE `tools_dispositions` ADD CONSTRAINT `tools_dispositions_ibfk_7` FOREIGN KEY (`WhatsappAccountId`) REFERENCES `whatsapp_accounts`(`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      //END cm_list
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.34.js b/server/migrations/2.5.34.js
new file mode 100644
index 0000000..f7d42ec
--- /dev/null
+++ b/server/migrations/2.5.34.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.35.js b/server/migrations/2.5.35.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.35.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.36.js b/server/migrations/2.5.36.js
new file mode 100644
index 0000000..e3fb3ea
--- /dev/null
+++ b/server/migrations/2.5.36.js
@@ -0,0 +1,184 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START users
+      migration.addColumn('users', 'ignorePauseForPreviewCalls', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('users', 'selectRecallMeCampaign', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END users
+
+      // START voice_queues
+      migration.addColumn('voice_queues', 'dialPreviewAutoRecallMe', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END voice_queues
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.37.js b/server/migrations/2.5.37.js
new file mode 100644
index 0000000..08493a4
--- /dev/null
+++ b/server/migrations/2.5.37.js
@@ -0,0 +1,187 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START settings
+      migration.addColumn('settings', 'viewHelpSection', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('settings', 'secureCookieEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END settings 
+
+      // START whatsapp_accounts
+      migration.addColumn('whatsapp_accounts', 'baseUrl', {
+        type: Sequelize.STRING
+      });
+
+      migration.changeColumn('whatsapp_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'sinch')
+      });
+      // END whatsapp_accounts
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.38.js b/server/migrations/2.5.38.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.38.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.39.js b/server/migrations/2.5.39.js
new file mode 100644
index 0000000..4262900
--- /dev/null
+++ b/server/migrations/2.5.39.js
@@ -0,0 +1,193 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START CHAT WEBSITE
+      migration.addColumn('chat_websites', 'labelText', {
+        type: Sequelize.STRING,
+        defaultValue: 'CHAT'
+      });
+      // END CHAT WEBSITE
+
+      // START settings
+      migration.addColumn('settings', 'adSsoEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END settings 
+
+      // START users
+      migration.addColumn('users', 'adSsoEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      // END users
+
+      // START int_dynamics365_configurations
+      migration.addColumn('int_dynamics365_configurations', 'moduleCreate', {
+        type: Sequelize.ENUM('contact', 'nothing'),
+        defaultValue: 'contact'
+      });
+      // END int_dynamics365_configurations 
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.4.js b/server/migrations/2.5.4.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.5.4.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.40.js b/server/migrations/2.5.40.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.40.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.41.js b/server/migrations/2.5.41.js
new file mode 100644
index 0000000..6639582
--- /dev/null
+++ b/server/migrations/2.5.41.js
@@ -0,0 +1,297 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START settings
+      migration.addColumn('settings', 'limitTabs', {
+        type: Sequelize.INTEGER,
+        defaultValue: 20
+      });
+
+      migration.addColumn('settings', 'disabledCookie', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('settings', 'previewRecallmeReminderInterval', {
+        type: Sequelize.INTEGER,
+        defaultValue: 5
+      });
+      // END settings 
+
+      // START cm_hopper
+      migration.addColumn('cm_hopper', 'recallmeNotifiedDate', {
+        type: Sequelize.DATE,
+        allowNull: true
+      });
+      // END cm_hopper 
+
+      // START voice_queues
+      migration.addColumn('voice_queues', 'dialPreviewRecallmeReminder', {
+        type: Sequelize.BOOLEAN,
+        default: false
+      });
+      // END voice_queues 
+
+      // START cloud_providers
+      migration.changeColumn('cloud_providers', 'service', {
+        type: Sequelize.ENUM('AmazonAWS', 'Google', 'MicrosoftAzure')
+      });
+
+      migration.addColumn('cloud_providers', 'type', {
+        type: Sequelize.ENUM('Outlook365', 'Dynamics365'),
+        after: 'service'
+      });
+
+      migration.addColumn('cloud_providers', 'data3', {
+        type: Sequelize.STRING,
+        after: 'data2'
+      });
+
+      migration.addColumn('cloud_providers', 'data4', {
+        type: Sequelize.STRING,
+        after: 'data3'
+      });
+
+      migration.addColumn('cloud_providers', 'data5', {
+        type: Sequelize.TEXT,
+        after: 'data4'
+      });
+
+      migration.addColumn('cloud_providers', 'data6', {
+        type: Sequelize.TEXT,
+        after: 'data5'
+      });
+
+      migration.addColumn('cloud_providers', 'data7', {
+        type: Sequelize.TEXT,
+        after: 'data6'
+      });
+      // END cloud_providers 
+
+      // START mail_accounts
+      migration.addColumn('mail_accounts', 'provider', {
+        type: Sequelize.ENUM('gmail', 'hotmail', 'yahoo', 'outlook365'),
+        after: 'name',
+        defaultValue: null
+      });
+      // END mail_accounts 
+
+      // START mail_servers_in
+      migration.query('UPDATE mail_servers_in SET host = \'imap.gmail.com\' WHERE service = \'gmail\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_in SET port = 993 WHERE service = \'gmail\' AND port IS NULL');
+
+      migration.query('UPDATE mail_servers_in SET host = \'imap-mail.outlook.com\' WHERE service = \'hotmail\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_in SET port = 993 WHERE service = \'hotmail\' AND port IS NULL');
+
+      migration.query('UPDATE mail_servers_in SET host = \'imap.mail.yahoo.com\' WHERE service = \'yahoo\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_in SET port = 993 WHERE service = \'yahoo\' AND port IS NULL');
+
+      migration.query('UPDATE mail_servers_in SET host = \'outlook.office365.com\' WHERE service = \'outlook365\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_in SET port = 993 WHERE service = \'outlook365\' AND port IS NULL');
+
+      migration.addColumn('mail_servers_in', 'modernAuthentication', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false,
+        after: 'authentication'
+      });
+
+      migration.addColumn('mail_servers_in', 'CloudProviderId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addIndex('mail_servers_in', ['CloudProviderId'], 'CloudProviderId');
+
+      migration.query('ALTER TABLE `mail_servers_in` ADD CONSTRAINT `mail_servers_in_ibfk_2` FOREIGN KEY (`CloudProviderId`) REFERENCES `cloud_providers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE');
+      // END mail_servers_in 
+
+      // START mail_servers_out
+      migration.query('UPDATE mail_servers_out SET host = \'smtp.gmail.com\' WHERE service = \'gmail\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_out SET port = 465 WHERE service = \'gmail\' AND port IS NULL AND secure = 0');
+      migration.query('UPDATE mail_servers_out SET port = 587 WHERE service = \'gmail\' AND port IS NULL AND secure = 1');
+
+      migration.query('UPDATE mail_servers_out SET host = \'smtp-mail.outlook.com\' WHERE service = \'hotmail\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_out SET port = 587 WHERE service = \'hotmail\' AND port IS NULL');
+
+      migration.query('UPDATE mail_servers_out SET host = \'smtp.mail.yahoo.com\' WHERE service = \'yahoo\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_out SET port = 465 WHERE service = \'yahoo\' AND port IS NULL');
+
+      migration.query('UPDATE mail_servers_out SET host = \'smtp.office365.com\' WHERE service = \'outlook365\' AND host IS NULL');
+      migration.query('UPDATE mail_servers_out SET port = 587 WHERE service = \'outlook365\' AND port IS NULL');
+
+      migration.addColumn('mail_servers_out', 'modernAuthentication', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false,
+        after: 'authentication'
+      });
+
+      migration.addColumn('mail_servers_out', 'CloudProviderId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addIndex('mail_servers_out', ['CloudProviderId'], 'CloudProviderId');
+
+      migration.query('ALTER TABLE `mail_servers_out` ADD CONSTRAINT `mail_servers_out_ibfk_2` FOREIGN KEY (`CloudProviderId`) REFERENCES `cloud_providers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE');
+      // END mail_servers_out 
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.42.js b/server/migrations/2.5.42.js
new file mode 100644
index 0000000..0bcfee4
--- /dev/null
+++ b/server/migrations/2.5.42.js
@@ -0,0 +1,172 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START chat_offline_messages
+      migration.addColumn("chat_offline_messages", "plainBody", {
+        type: Sequelize.TEXT("medium"),
+        after: "body"
+      });
+      // END chat_offline_messages
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.43.js b/server/migrations/2.5.43.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.43.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.44.js b/server/migrations/2.5.44.js
new file mode 100644
index 0000000..27ec7ad
--- /dev/null
+++ b/server/migrations/2.5.44.js
@@ -0,0 +1,219 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START user settings
+      migration.query('CREATE TABLE `user_settings` (' +
+        ' `id` int(11) NOT NULL AUTO_INCREMENT,' +
+        ' `clientSideLoggingLevel` enum(\'error\',\'warning\',\'info\',\'debug\') NOT NULL DEFAULT \'error\',' +
+        ' `clientSideLoggingEnabled` tinyint(1) DEFAULT \'0\',' +
+        ' `clientSideLoggingScopes` text,' +
+        ' `clientSideLoggingEnabledSince` datetime DEFAULT NULL,' +
+        ' `createdAt` datetime NOT NULL,' +
+        ' `updatedAt` datetime NOT NULL,' +
+        ' `UserId` int(11) DEFAULT NULL,' +
+        ' PRIMARY KEY (`id`),' +
+        ' UNIQUE KEY `UserId` (`UserId`),' +
+        ' CONSTRAINT `user_settings_ibfk_1` FOREIGN KEY (`UserId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE' +
+        ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
+
+      migration.query(
+        "INSERT INTO `user_settings`(clientSideLoggingLevel, clientSideLoggingEnabled, clientSideLoggingEnabledSince, createdAt , updatedAt , UserId) SELECT 'error', false, NULL, NOW(), NOW(), id FROM `users`"
+      );
+      // END user settings
+
+      //START timezone
+      migration.addColumn('cm_contacts', 'dialTimezone', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('cm_contacts', 'utcOffset', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+      migration.addColumn('cm_hopper', 'dialTimezone', {
+        type: Sequelize.STRING
+      });
+      migration.addColumn('cm_hopper_history', 'dialTimezone', {
+        type: Sequelize.STRING
+      });
+      //END timezone
+
+      // START int_dynamics365_accounts
+      migration.addColumn('int_dynamics365_accounts', 'CloudProviderId', {
+        type: Sequelize.INTEGER
+      });
+
+      migration.addIndex('int_dynamics365_accounts', ['CloudProviderId'], 'CloudProviderId');
+
+      migration.query('ALTER TABLE `int_dynamics365_accounts` ADD CONSTRAINT `int_dynamics365_accounts_ibfk_2` FOREIGN KEY (`CloudProviderId`) REFERENCES `cloud_providers`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE');
+
+      migration.addColumn('int_dynamics365_accounts', 'modernAuthentication', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true,
+        after: 'description'
+      });
+
+      migration.query('UPDATE int_dynamics365_accounts SET modernAuthentication = 0');
+      // END int_dynamics365_accounts 
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.45.js b/server/migrations/2.5.45.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.45.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.46.js b/server/migrations/2.5.46.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.46.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.47.js b/server/migrations/2.5.47.js
new file mode 100644
index 0000000..22df2f1
--- /dev/null
+++ b/server/migrations/2.5.47.js
@@ -0,0 +1,165 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.48.js b/server/migrations/2.5.48.js
new file mode 100644
index 0000000..32039a5
--- /dev/null
+++ b/server/migrations/2.5.48.js
@@ -0,0 +1,237 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START mail_servers_out
+      migration.query(
+        'UPDATE `mail_servers_out` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'smtp.office365.com', T1.port = 587, T1.secure = 0, T1.service = NULL" +
+        " WHERE T2.provider = 'outlook365'"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_out` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'smtp-mail.outlook.com', T1.port = 587, T1.secure = 0, T1.service = NULL" +
+        " WHERE T2.provider = 'hotmail'"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_out` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'smtp.mail.yahoo.com', T1.port = 587, T1.secure = 0, T1.service = NULL" +
+        " WHERE T2.provider = 'yahoo'"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_out` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'smtp.gmail.com', T1.port = 587, T1.secure = 0, T1.service = NULL" +
+        " WHERE T2.provider = 'gmail'"
+      );
+      // END mail_servers_out
+
+      // START mail_servers_in
+      migration.query(
+        'UPDATE `mail_servers_in` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = '127.0.0.1', T1.port = 993, T1.user = 'username', T1.password = 'password'" +
+        " WHERE T2.service = 1"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_in` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'outlook.office365.com', T1.port = 993, T1.service = NULL" +
+        " WHERE T2.provider = 'outlook365' AND T2.service = 0"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_in` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'imap-mail.outlook.com', T1.port = 993, T1.service = NULL" +
+        " WHERE T2.provider = 'hotmail' AND T2.service = 0"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_in` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'imap.mail.yahoo.com', T1.port = 993, T1.service = NULL" +
+        " WHERE T2.provider = 'yahoo' AND T2.service = 0"
+      );
+
+      migration.query(
+        'UPDATE `mail_servers_in` T1' +
+        ' JOIN `mail_accounts` T2 ON (T1.MailAccountId = T2.id)' +
+        " SET T1.host = 'imap.gmail.com', T1.port = 993, T1.service = NULL" +
+        " WHERE T2.provider = 'gmail' AND T2.service = 0"
+      );
+      // END mail_servers_in
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.49.js b/server/migrations/2.5.49.js
new file mode 100644
index 0000000..293edbf
--- /dev/null
+++ b/server/migrations/2.5.49.js
@@ -0,0 +1,224 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      migration.addColumn('users', 'chatAutoanswer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'chatAutoanswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('users', 'emailAutoanswer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'emailAutoanswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('users', 'smsAutoanswer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'smsAutoanswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('users', 'openchannelAutoanswer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'openchannelAutoanswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('users', 'faxAutoanswer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'faxAutoanswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      migration.addColumn('users', 'whatsappAutoanswer', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+      migration.addColumn('users', 'whatsappAutoanswerDelay', {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      });
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.5.js b/server/migrations/2.5.5.js
new file mode 100644
index 0000000..1ff9442
--- /dev/null
+++ b/server/migrations/2.5.5.js
@@ -0,0 +1,355 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START tools_actions
+      migration.query("UPDATE tools_actions SET data3 = 'phone' WHERE action = 'contactManager' AND data3 = '0'");
+      migration.query("UPDATE tools_actions SET data4 = NULL WHERE action = 'contactManager' AND data2 = '0' AND data4 = '0'");
+      migration.query("UPDATE tools_actions SET data4 = 'phone' WHERE action = 'contactManager' AND data4 = '0'");
+      // END tools_actions
+
+      // START settings
+      migration.addColumn('settings', 'enforcePasswordHistory', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+
+      migration.addColumn('settings', 'passwordHistoryLimit', {
+        type: Sequelize.INTEGER(2).UNSIGNED,
+        defaultValue: 3,
+        validate: {
+          min: 1,
+          max: 5
+        }
+      });
+      // END settings
+
+      // START users
+      migration.addColumn('users', 'previousPasswords', {
+        type: Sequelize.STRING,
+        after: 'passwordResetAt'
+      });
+
+      migration.addColumn('users', 'settingsEnabled', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // END users
+
+      // START cm_custom_fields
+      migration.addColumn('cm_custom_fields', 'clickToAction', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      });
+
+      migration.addColumn('cm_custom_fields', 'actionType', {
+        type: Sequelize.ENUM('voice'),
+        allowNull: false,
+        defaultValue: 'voice'
+      });
+      // END cm_custom_fields
+
+      // START tools_disposition
+      migration.addColumn('tools_dispositions', 'level', {
+        type: Sequelize.ENUM('first', 'second', 'third'),
+        allowNull: false,
+        defaultValue: 'first',
+        after: "name"
+      });
+
+      migration.addColumn('tools_dispositions', 'description', {
+        type: Sequelize.STRING,
+        after: "level"
+      });
+
+      migration.addColumn('tools_dispositions', 'ParentId', {
+        type: Sequelize.INTEGER,
+        after: "updatedAt"
+      });
+
+      migration.query('ALTER TABLE tools_dispositions ADD CONSTRAINT `tools_dispositions_ibfk_8` FOREIGN KEY (`ParentId`) REFERENCES `tools_dispositions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE');
+      // END tools_disposition
+
+      // START report_call
+      migration.addColumn('report_call', 'userSecondDisposition', {
+        type: Sequelize.STRING,
+        after: "userDisposition"
+      });
+
+      migration.addColumn('report_call', 'userThirdDisposition', {
+        type: Sequelize.STRING,
+        after: "userSecondDisposition"
+      });
+      // END report_call
+
+      // START report_queue
+      migration.addColumn('report_queue', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('report_queue', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END report_queue
+
+      // START voice_recordings
+      migration.addColumn('voice_recordings', 'userSecondDisposition', {
+        type: Sequelize.STRING,
+        after: "userDisposition"
+      });
+
+      migration.addColumn('voice_recordings', 'userThirdDisposition', {
+        type: Sequelize.STRING,
+        after: "userSecondDisposition"
+      });
+      // END voice_recordings
+
+      // START chat_interactions
+      migration.addColumn('chat_interactions', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('chat_interactions', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END chat_interactions
+
+      // START fax_interactions
+      migration.addColumn('fax_interactions', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('fax_interactions', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END fax_interactions
+
+      // START mail_interactions
+      migration.addColumn('mail_interactions', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('mail_interactions', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END mail_interactions
+
+      // START openchannel_interactions
+      migration.addColumn('openchannel_interactions', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('openchannel_interactions', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END openchannel_interactions
+
+      // START sms_interactions
+      migration.addColumn('sms_interactions', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('sms_interactions', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END sms_interactions
+
+      // START whatsapp_interactions
+      migration.addColumn('whatsapp_interactions', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('whatsapp_interactions', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END whatsapp_interactions
+
+      // START cm_hopper_final
+      migration.addColumn('cm_hopper_final', 'secondDisposition', {
+        type: Sequelize.STRING,
+        after: "disposition"
+      });
+
+      migration.addColumn('cm_hopper_final', 'thirdDisposition', {
+        type: Sequelize.STRING,
+        after: "secondDisposition"
+      });
+      // END cm_hopper_final
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.50.js b/server/migrations/2.5.50.js
new file mode 100644
index 0000000..1f96159
--- /dev/null
+++ b/server/migrations/2.5.50.js
@@ -0,0 +1,185 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+
+      // START chat_websites
+      migration.addColumn('chat_websites', 'textButtonColor', {
+        type: Sequelize.STRING,
+        allowNull: false,
+        defaultValue: '#ffffff',
+        validate: {
+          notEmpty: true
+        }
+      });
+
+      migration.query('UPDATE chat_websites SET textButtonColor=textColor');
+      // STOP chat_websites
+
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.6.js b/server/migrations/2.5.6.js
new file mode 100644
index 0000000..35096ff
--- /dev/null
+++ b/server/migrations/2.5.6.js
@@ -0,0 +1,174 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START cm_contacts
+      migration.addIndex("cm_contacts", ["firstName", "lastName", "phone", "mobile", "fax", "email"], {
+        indexName: "fti_cm_contacts",
+        indicesType: "FULLTEXT"
+      });
+      // END cm_contacts
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.7.js b/server/migrations/2.5.7.js
new file mode 100644
index 0000000..93422ad
--- /dev/null
+++ b/server/migrations/2.5.7.js
@@ -0,0 +1,209 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      //START dialogflow
+      migration.addColumn('chat_messages', 'providerName', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('chat_messages', 'providerResponse', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('openchannel_messages', 'providerName', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('openchannel_messages', 'providerResponse', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('sms_messages', 'providerName', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('sms_messages', 'providerResponse', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('whatsapp_messages', 'providerName', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('whatsapp_messages', 'providerResponse', {
+        type: Sequelize.TEXT
+      });
+
+      migration.addColumn('square_messages', 'providerName', {
+        type: Sequelize.STRING
+      });
+
+      migration.addColumn('square_messages', 'providerResponse', {
+        type: Sequelize.TEXT
+      });
+      //END dialogflow
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.8.js b/server/migrations/2.5.8.js
new file mode 100644
index 0000000..ee05d10
--- /dev/null
+++ b/server/migrations/2.5.8.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.5.9.js b/server/migrations/2.5.9.js
new file mode 100644
index 0000000..4c36724
--- /dev/null
+++ b/server/migrations/2.5.9.js
@@ -0,0 +1,167 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, options) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: options.indexName,
+        indicesType: options.indicesType
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s [%s]', table, column.join(','), options.indexName, options.indicesType);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  }
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.0.js b/server/migrations/2.6.0.js
new file mode 100644
index 0000000..75b29b4
--- /dev/null
+++ b/server/migrations/2.6.0.js
@@ -0,0 +1,249 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START tools_contact_item_types
+      migration.query(
+        "CREATE TABLE `tools_contact_item_types` (" +
+        "  `id` INT AUTO_INCREMENT NOT NULL," +
+        "  `name` varchar(255) NOT NULL," +
+        "  `OrderBy` INT NULL," +
+        "  `rgbBackgroundColor` varchar(20) NULL," +
+        "  `createdAt` datetime NOT NULL," +
+        "  `updatedAt` datetime NOT NULL," +
+        "  UNIQUE  INDEX `item_type_id` (id) " +
+        ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"
+      );
+      // END tools_contact_item_types
+
+      // START cm_contact_has_items
+      migration.query(
+        "CREATE TABLE `cm_contact_has_items` (" +
+        "  `CmContactId` INT NOT NULL," +
+        "  `item` varchar(255) NOT NULL," +
+        "  `ItemTypeId` INT NULL," +
+        "  `ItemClass` VARCHAR(20) NOT NULL," +
+        "  `OrderBy` INT NULL," +
+        "  `description` varchar(255) DEFAULT NULL," +
+        "  `createdAt` datetime NOT NULL," +
+        "  `updatedAt` datetime NOT NULL," +
+        "  UNIQUE  INDEX `contact_item` (CmContactId,item), " +
+        "  CONSTRAINT `cm_contact_has_items_ibfk_1` FOREIGN KEY (`CmContactId`) REFERENCES `cm_contacts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, " +
+        "  CONSTRAINT `cm_contact_has_items_ibfk_2` FOREIGN KEY (`ItemTypeId`) REFERENCES `tools_contact_item_types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE" +
+        ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"
+      );
+      // END cm_contact_has_items
+
+      // START cm_hopper_additional_phones
+      migration.query(
+        "CREATE TABLE `cm_hopper_additional_phones` (" +
+        "  `id` INT AUTO_INCREMENT NOT NULL," +
+        "  `CmHopperId` INT NOT NULL," +
+        "  `phone` varchar(255) NOT NULL," +
+        "  `OrderBy` INT NULL default 0," +
+        "  `scheduledat` datetime NULL," +
+        "  `countbusyretry` INT NULL default 0," +
+        "  `countcongestionretry` INT NULL default 0," +
+        "  `countnoanswerretry` INT NULL default 0," +
+        "  `countnosuchnumberretry` INT NULL default 0," +
+        "  `countdropretry` INT NULL default 0," +
+        "  `countabandonedretry` INT NULL default 0," +
+        "  `countmachineretry` INT NULL default 0," +
+        "  `countagentrejectretry` INT NULL default 0," +
+        "  `createdAt` datetime NOT NULL," +
+        "  `updatedAt` datetime NOT NULL," +
+        "  UNIQUE  INDEX `hopper_additional_phone_id` (id), " +
+        "  INDEX `cm_hopper_phone_item` (CmHopperId), " +
+        "  CONSTRAINT `cm_hopper_phone_item1` FOREIGN KEY (`CmHopperId`) REFERENCES `cm_hopper` (`id`) ON DELETE CASCADE ON UPDATE CASCADE " +
+        ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"
+      );
+      // END cm_hopper_additional_phones
+
+      // START cm_hopper
+      migration.addColumn("cm_hopper", "OrderBy", {
+        type: Sequelize.INTEGER,
+        allowNull: true,
+        defaultValue: 0
+      });
+      // END cm_hopper
+
+      // START cm_contacts
+      migration.addColumn("cm_contacts", "AdditionalPhones", {
+        type: Sequelize.STRING,
+        allowNull: true
+      });
+      // START cm_contacts
+
+      // START voice_queues
+      migration.addColumn("voice_queues", "callAdditionalPhoneAfterMin", {
+        type: Sequelize.INTEGER,
+        defaultValue: 3
+      });
+      // END voice_queues
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.1.js b/server/migrations/2.6.1.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.1.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.10.js b/server/migrations/2.6.10.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.10.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.11.js b/server/migrations/2.6.11.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.11.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.2.js b/server/migrations/2.6.2.js
new file mode 100644
index 0000000..9d3dde7
--- /dev/null
+++ b/server/migrations/2.6.2.js
@@ -0,0 +1,177 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START int_dynamics365_configurations
+      migration.addColumn('int_dynamics365_configurations', 'additionalSearchContact', {
+        type: Sequelize.STRING,
+        allowNull: true
+      });
+      // END int_dynamics365_configurations
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.3.js b/server/migrations/2.6.3.js
new file mode 100644
index 0000000..ad3e05e
--- /dev/null
+++ b/server/migrations/2.6.3.js
@@ -0,0 +1,187 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START openchannel_interactions
+      migration.addColumn('openchannel_interactions', 'firstMsgDirection', {
+        type: Sequelize.ENUM('in', 'out'),
+        defaultValue: 'in',
+        allowNull: false
+      });
+
+      // Update the firstMsgDirection column with correct value (direction of the first message for each interactions)
+      migration.query("UPDATE openchannel_interactions t1, (SELECT OpenchannelInteractionId, MIN(id) AS messageid, ANY_VALUE(direction) AS direction FROM openchannel_messages WHERE OpenchannelInteractionId IS NOT NULL GROUP BY OpenchannelInteractionId) t2 SET t1.firstMsgDirection = t2.direction WHERE t1.id = t2.OpenchannelInteractionId;");
+      // END openchannel_interactions
+
+      // START SMSACCOUNT
+      migration.changeColumn('sms_accounts', 'type', {
+        type: Sequelize.ENUM('twilio', 'skebby', 'connectel', 'clicksend', 'plivo', 'clickatell', 'csc', 'bandwidth', 'infobip', 'intelepeer')
+      });
+      // END SMSACCOUNT
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.4.js b/server/migrations/2.6.4.js
new file mode 100644
index 0000000..54829f7
--- /dev/null
+++ b/server/migrations/2.6.4.js
@@ -0,0 +1,177 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START int_dynamics365_configurations
+      migration.addColumn('int_dynamics365_configurations', 'openNewTab', {
+        type: Sequelize.BOOLEAN,
+        defaultValue: true
+      });
+      // STOP int_dynamics365_configurations
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.5.js b/server/migrations/2.6.5.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.5.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.6.js b/server/migrations/2.6.6.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.6.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.7.js b/server/migrations/2.6.7.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.7.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.8.js b/server/migrations/2.6.8.js
new file mode 100644
index 0000000..99a8015
--- /dev/null
+++ b/server/migrations/2.6.8.js
@@ -0,0 +1,170 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/migrations/2.6.9.js b/server/migrations/2.6.9.js
new file mode 100644
index 0000000..86d932d
--- /dev/null
+++ b/server/migrations/2.6.9.js
@@ -0,0 +1,183 @@
+'use strict';
+
+var BPromise = require('bluebird');
+var util = require('util');
+
+var logger = require('../config/logger')('migration');
+
+var Sequence = function() {};
+
+Sequence.prototype.enqueue = function(fn) {
+  this.tail = this.tail ? this.tail.finally(fn) : fn();
+};
+
+var Migration = function(queryInterface) {
+  this.queryInterface = queryInterface;
+  this.sequence = new Sequence();
+};
+
+Migration.prototype.changeColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .changeColumn(table, column, type)
+      .then(function() {
+        logger.info('Changed column %s in table %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addColumn = function(table, column, type) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addColumn(table, column, type)
+      .then(function() {
+        logger.info('Added column %s to %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.dropTable = function(table) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .dropTable(table, {
+        force: true,
+      })
+      .then(function() {
+        logger.info('table dropped %s', table);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.addIndex = function(table, column, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .addIndex(table, column, {
+        indexName: indexName,
+      })
+      .then(function() {
+        logger.info('addIndex %s %s %s', table, column.join(','), indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeIndex = function(table, indexName) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeIndex(table, indexName)
+      .then(function() {
+        logger.info('removeIndex %s %s', table, indexName);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.query = function(sql) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface.sequelize
+      .query(sql)
+      .then(function() {
+        logger.info('query %s', sql);
+      })
+      .catch(function(err) {
+        logger.info(JSON.stringify(err));
+      });
+  });
+};
+
+Migration.prototype.removeColumn = function(table, column) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .removeColumn(table, column)
+      .then(function() {
+        logger.info('Removed column %s from %s', column, table);
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
+  var _this = this;
+  this.sequence.enqueue(function() {
+    return _this.queryInterface
+      .renameColumn(table, oldColumn, newColumn)
+      .then(function() {
+        logger.info(
+          'Renamed column from %s to %s on %s',
+          oldColumn,
+          newColumn,
+          table
+        );
+      })
+      .catch(function(err) {
+        logger.info(
+          util.inspect(err, {
+            showHidden: false,
+            depth: null,
+          })
+        );
+      });
+  });
+};
+
+Migration.prototype.final = function(resolve) {
+  this.sequence.enqueue(function() {
+    return resolve();
+  });
+};
+
+module.exports = {
+  up: function(queryInterface, Sequelize) {
+    return new BPromise(function(resolve) {
+      var migration = new Migration(queryInterface);
+
+      // START voice_queues_log
+      migration.changeColumn('voice_queues_log', 'dtm', {
+        type: Sequelize.DATE,
+        defaultValue: queryInterface.sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
+      });
+      // END voice_queues_log
+
+      // START report_queue
+      migration.addColumn('report_queue', 'note', {
+        type: Sequelize.STRING
+      });
+      // END report_queue
+
+      // START FINAL
+      migration.final(resolve);
+      // END FINAL
+    });
+  },
+
+  down: function(queryInterface, Sequelize) {
+    // var migration = new Migration(queryInterface);
+  },
+};
\ No newline at end of file
diff --git a/server/mysqldb/index.js b/server/mysqldb/index.js
new file mode 100644
index 0000000..fbf9816
--- /dev/null
+++ b/server/mysqldb/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/routes.js b/server/routes.js
new file mode 100644
index 0000000..4a19da6
--- /dev/null
+++ b/server/routes.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/rpc/index.js b/server/rpc/index.js
new file mode 100644
index 0000000..7bb90e7
--- /dev/null
+++ b/server/rpc/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/channel.js b/server/services/agi/channel.js
new file mode 100644
index 0000000..31ea8fa
--- /dev/null
+++ b/server/services/agi/channel.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/error.js b/server/services/agi/error.js
new file mode 100644
index 0000000..3025893
--- /dev/null
+++ b/server/services/agi/error.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/events.js b/server/services/agi/events.js
new file mode 100644
index 0000000..8a5c4e6
--- /dev/null
+++ b/server/services/agi/events.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/graph/index.js b/server/services/agi/graph/index.js
new file mode 100644
index 0000000..bdb0e48
--- /dev/null
+++ b/server/services/agi/graph/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/index.js b/server/services/agi/index.js
new file mode 100644
index 0000000..b10dd9e
--- /dev/null
+++ b/server/services/agi/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/mailRpc/index.js b/server/services/agi/mailRpc/index.js
new file mode 100644
index 0000000..05ec2d1
--- /dev/null
+++ b/server/services/agi/mailRpc/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/project.js b/server/services/agi/project.js
new file mode 100644
index 0000000..629bb74
--- /dev/null
+++ b/server/services/agi/project.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/reply.js b/server/services/agi/reply.js
new file mode 100644
index 0000000..3fed85e
--- /dev/null
+++ b/server/services/agi/reply.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/rpc/index.js b/server/services/agi/rpc/index.js
new file mode 100644
index 0000000..b57198d
--- /dev/null
+++ b/server/services/agi/rpc/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/aws/index.js b/server/services/agi/scripts/aws/index.js
new file mode 100644
index 0000000..e62f86d
--- /dev/null
+++ b/server/services/agi/scripts/aws/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x8a5c=['./lex','exports'];(function(_0x3937cb,_0x9677b0){var _0x376a57=function(_0x1f20bd){while(--_0x1f20bd){_0x3937cb['push'](_0x3937cb['shift']());}};_0x376a57(++_0x9677b0);}(_0x8a5c,0x112));var _0xc8a5=function(_0x4399bd,_0x4468e9){_0x4399bd=_0x4399bd-0x0;var _0x29489a=_0x8a5c[_0x4399bd];return _0x29489a;};var polly=require('./polly');var lex=require(_0xc8a5('0x0'));module[_0xc8a5('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
diff --git a/server/services/agi/scripts/aws/lex/index.js b/server/services/agi/scripts/aws/lex/index.js
new file mode 100644
index 0000000..17a9f7b
--- /dev/null
+++ b/server/services/agi/scripts/aws/lex/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/aws/lex/lib/api.js b/server/services/agi/scripts/aws/lex/lib/api.js
new file mode 100644
index 0000000..182eec4
--- /dev/null
+++ b/server/services/agi/scripts/aws/lex/lib/api.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/aws/polly/index.js b/server/services/agi/scripts/aws/polly/index.js
new file mode 100644
index 0000000..af4ae89
--- /dev/null
+++ b/server/services/agi/scripts/aws/polly/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/aws/polly/lib/api.js b/server/services/agi/scripts/aws/polly/lib/api.js
new file mode 100644
index 0000000..2cb9888
--- /dev/null
+++ b/server/services/agi/scripts/aws/polly/lib/api.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/google/asr/index.js b/server/services/agi/scripts/google/asr/index.js
new file mode 100644
index 0000000..fd6ffa3
--- /dev/null
+++ b/server/services/agi/scripts/google/asr/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x3ed3=['exports'];(function(_0x4f7418,_0x1755cc){var _0x4afe7e=function(_0x5ae646){while(--_0x5ae646){_0x4f7418['push'](_0x4f7418['shift']());}};_0x4afe7e(++_0x1755cc);}(_0x3ed3,0x162));var _0x33ed=function(_0x3f6f3c,_0x323d8a){_0x3f6f3c=_0x3f6f3c-0x0;var _0x4b84bb=_0x3ed3[_0x3f6f3c];return _0x4b84bb;};'use strict';var asr=require('./lib/api');module[_0x33ed('0x0')]=function(_0x48ded1,_0xf3518c,_0x1f4c20,_0x154dfe){return asr(_0x48ded1,_0xf3518c,_0x1f4c20);};
\ No newline at end of file
diff --git a/server/services/agi/scripts/google/asr/lib/api.js b/server/services/agi/scripts/google/asr/lib/api.js
new file mode 100644
index 0000000..5271f7d
--- /dev/null
+++ b/server/services/agi/scripts/google/asr/lib/api.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/google/index.js b/server/services/agi/scripts/google/index.js
new file mode 100644
index 0000000..dbeb934
--- /dev/null
+++ b/server/services/agi/scripts/google/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x993c=['exports','./asr'];(function(_0x278d83,_0x293390){var _0x2853d2=function(_0x4346f1){while(--_0x4346f1){_0x278d83['push'](_0x278d83['shift']());}};_0x2853d2(++_0x293390);}(_0x993c,0x16b));var _0xc993=function(_0x5e1b2d,_0x34cfb8){_0x5e1b2d=_0x5e1b2d-0x0;var _0x27dff8=_0x993c[_0x5e1b2d];return _0x27dff8;};var asr=require(_0xc993('0x0'));module[_0xc993('0x1')]={'asr':asr};
\ No newline at end of file
diff --git a/server/services/agi/scripts/index.js b/server/services/agi/scripts/index.js
new file mode 100644
index 0000000..2065c3d
--- /dev/null
+++ b/server/services/agi/scripts/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/sestek/index.js b/server/services/agi/scripts/sestek/index.js
new file mode 100644
index 0000000..240fb8d
--- /dev/null
+++ b/server/services/agi/scripts/sestek/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xbf22=['exports'];(function(_0x2e7a9d,_0xd42e55){var _0x51ab1b=function(_0x1fad3a){while(--_0x1fad3a){_0x2e7a9d['push'](_0x2e7a9d['shift']());}};_0x51ab1b(++_0xd42e55);}(_0xbf22,0xc4));var _0x2bf2=function(_0x53d3fd,_0x9d9fb0){_0x53d3fd=_0x53d3fd-0x0;var _0x1f6f7e=_0xbf22[_0x53d3fd];return _0x1f6f7e;};var nda=require('./nda');module[_0x2bf2('0x0')]={'nda':nda};
\ No newline at end of file
diff --git a/server/services/agi/scripts/sestek/nda/index.js b/server/services/agi/scripts/sestek/nda/index.js
new file mode 100644
index 0000000..803a8a4
--- /dev/null
+++ b/server/services/agi/scripts/sestek/nda/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/tilde/asr/index.js b/server/services/agi/scripts/tilde/asr/index.js
new file mode 100644
index 0000000..0863ff7
--- /dev/null
+++ b/server/services/agi/scripts/tilde/asr/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x0c98=['./lib/api'];(function(_0x465c5e,_0x4b938e){var _0x55d352=function(_0x1889ee){while(--_0x1889ee){_0x465c5e['push'](_0x465c5e['shift']());}};_0x55d352(++_0x4b938e);}(_0x0c98,0x19e));var _0x80c9=function(_0x237a42,_0x4a98ca){_0x237a42=_0x237a42-0x0;var _0x3097e4=_0x0c98[_0x237a42];return _0x3097e4;};'use strict';var asr=require(_0x80c9('0x0'));module['exports']=function(_0x1e5b4f,_0x1ae5ca,_0x2d6f61,_0x4d51e6){return asr(_0x1e5b4f,_0x1ae5ca,_0x2d6f61,_0x4d51e6);};
\ No newline at end of file
diff --git a/server/services/agi/scripts/tilde/asr/lib/api.js b/server/services/agi/scripts/tilde/asr/lib/api.js
new file mode 100644
index 0000000..1809b13
--- /dev/null
+++ b/server/services/agi/scripts/tilde/asr/lib/api.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/scripts/tilde/index.js b/server/services/agi/scripts/tilde/index.js
new file mode 100644
index 0000000..8e4d34d
--- /dev/null
+++ b/server/services/agi/scripts/tilde/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0x561d=['exports'];(function(_0x572293,_0x4cc5bb){var _0x38fac3=function(_0x4e5a85){while(--_0x4e5a85){_0x572293['push'](_0x572293['shift']());}};_0x38fac3(++_0x4cc5bb);}(_0x561d,0x1e3));var _0xd561=function(_0x32e165,_0x3ff2f9){_0x32e165=_0x32e165-0x0;var _0x1c4867=_0x561d[_0x32e165];return _0x1c4867;};var asr=require('./asr');module[_0xd561('0x0')]={'asr':asr};
\ No newline at end of file
diff --git a/server/services/agi/scripts/tmp/README.md b/server/services/agi/scripts/tmp/README.md
new file mode 100644
index 0000000..b0e85a5
--- /dev/null
+++ b/server/services/agi/scripts/tmp/README.md
@@ -0,0 +1 @@
+temporary file generate from google and ispeech
diff --git a/server/services/agi/server.js b/server/services/agi/server.js
new file mode 100644
index 0000000..33b39e5
--- /dev/null
+++ b/server/services/agi/server.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/agi/vertices.js b/server/services/agi/vertices.js
new file mode 100644
index 0000000..0fc9059
--- /dev/null
+++ b/server/services/agi/vertices.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/acw/index.js b/server/services/ami/acw/index.js
new file mode 100644
index 0000000..3742dae
--- /dev/null
+++ b/server/services/ami/acw/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/ami.js b/server/services/ami/ami.js
new file mode 100644
index 0000000..63d3f84
--- /dev/null
+++ b/server/services/ami/ami.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/client.js b/server/services/ami/client.js
new file mode 100644
index 0000000..ffdca76
--- /dev/null
+++ b/server/services/ami/client.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/index.js b/server/services/ami/dialer/index.js
new file mode 100644
index 0000000..23beef6
--- /dev/null
+++ b/server/services/ami/dialer/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/models/action.js b/server/services/ami/dialer/models/action.js
new file mode 100644
index 0000000..a4d12b4
--- /dev/null
+++ b/server/services/ami/dialer/models/action.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/models/agentComplete.js b/server/services/ami/dialer/models/agentComplete.js
new file mode 100644
index 0000000..9960451
--- /dev/null
+++ b/server/services/ami/dialer/models/agentComplete.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/models/final.js b/server/services/ami/dialer/models/final.js
new file mode 100644
index 0000000..a64735c
--- /dev/null
+++ b/server/services/ami/dialer/models/final.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/models/hangup.js b/server/services/ami/dialer/models/hangup.js
new file mode 100644
index 0000000..5012e1e
--- /dev/null
+++ b/server/services/ami/dialer/models/hangup.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/models/history.js b/server/services/ami/dialer/models/history.js
new file mode 100644
index 0000000..e39642a
--- /dev/null
+++ b/server/services/ami/dialer/models/history.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/models/queueCallerAbandon.js b/server/services/ami/dialer/models/queueCallerAbandon.js
new file mode 100644
index 0000000..27d5ea9
--- /dev/null
+++ b/server/services/ami/dialer/models/queueCallerAbandon.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/utils/hopper.js b/server/services/ami/dialer/utils/hopper.js
new file mode 100644
index 0000000..9d8f575
--- /dev/null
+++ b/server/services/ami/dialer/utils/hopper.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/dialer/utils/index.js b/server/services/ami/dialer/utils/index.js
new file mode 100644
index 0000000..7800e1c
--- /dev/null
+++ b/server/services/ami/dialer/utils/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/fax/action.js b/server/services/ami/fax/action.js
new file mode 100644
index 0000000..71a7db0
--- /dev/null
+++ b/server/services/ami/fax/action.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/fax/channel.js b/server/services/ami/fax/channel.js
new file mode 100644
index 0000000..6e23d8b
--- /dev/null
+++ b/server/services/ami/fax/channel.js
@@ -0,0 +1,17 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
diff --git a/server/services/ami/fax/index.js b/server/services/ami/fax/index.js
new file mode 100644
index 0000000..e9a1431
--- /dev/null
+++ b/server/services/ami/fax/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/fax/rpcDb.js b/server/services/ami/fax/rpcDb.js
new file mode 100644
index 0000000..6253fc6
--- /dev/null
+++ b/server/services/ami/fax/rpcDb.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/fax/util/gs.js b/server/services/ami/fax/util/gs.js
new file mode 100644
index 0000000..d66b78e
--- /dev/null
+++ b/server/services/ami/fax/util/gs.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/fax/util/util.js b/server/services/ami/fax/util/util.js
new file mode 100644
index 0000000..7362d22
--- /dev/null
+++ b/server/services/ami/fax/util/util.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/index.js b/server/services/ami/index.js
new file mode 100644
index 0000000..4904214
--- /dev/null
+++ b/server/services/ami/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/agent.js b/server/services/ami/model/agent.js
new file mode 100644
index 0000000..b052b28
--- /dev/null
+++ b/server/services/ami/model/agent.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/campaign.js b/server/services/ami/model/campaign.js
new file mode 100644
index 0000000..4581425
--- /dev/null
+++ b/server/services/ami/model/campaign.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/channel.js b/server/services/ami/model/channel.js
new file mode 100644
index 0000000..a85de6b
--- /dev/null
+++ b/server/services/ami/model/channel.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/deskAccount.js b/server/services/ami/model/deskAccount.js
new file mode 100644
index 0000000..bd18f6b
--- /dev/null
+++ b/server/services/ami/model/deskAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/dynamics365Account.js b/server/services/ami/model/dynamics365Account.js
new file mode 100644
index 0000000..5c47919
--- /dev/null
+++ b/server/services/ami/model/dynamics365Account.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/faxAccount.js b/server/services/ami/model/faxAccount.js
new file mode 100644
index 0000000..92d7bd3
--- /dev/null
+++ b/server/services/ami/model/faxAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/freshdeskAccount.js b/server/services/ami/model/freshdeskAccount.js
new file mode 100644
index 0000000..06e788e
--- /dev/null
+++ b/server/services/ami/model/freshdeskAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/freshsalesAccount.js b/server/services/ami/model/freshsalesAccount.js
new file mode 100644
index 0000000..37ea983
--- /dev/null
+++ b/server/services/ami/model/freshsalesAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/queueReport.js b/server/services/ami/model/queueReport.js
new file mode 100644
index 0000000..a8b8856
--- /dev/null
+++ b/server/services/ami/model/queueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/salesforceAccount.js b/server/services/ami/model/salesforceAccount.js
new file mode 100644
index 0000000..91eeeca
--- /dev/null
+++ b/server/services/ami/model/salesforceAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/servicenowAccount.js b/server/services/ami/model/servicenowAccount.js
new file mode 100644
index 0000000..9d760e1
--- /dev/null
+++ b/server/services/ami/model/servicenowAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/sugarcrmAccount.js b/server/services/ami/model/sugarcrmAccount.js
new file mode 100644
index 0000000..42aa24c
--- /dev/null
+++ b/server/services/ami/model/sugarcrmAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/telephone.js b/server/services/ami/model/telephone.js
new file mode 100644
index 0000000..51ba11c
--- /dev/null
+++ b/server/services/ami/model/telephone.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/template.js b/server/services/ami/model/template.js
new file mode 100644
index 0000000..bff255c
--- /dev/null
+++ b/server/services/ami/model/template.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/trigger.js b/server/services/ami/model/trigger.js
new file mode 100644
index 0000000..3ecf76d
--- /dev/null
+++ b/server/services/ami/model/trigger.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/trunk.js b/server/services/ami/model/trunk.js
new file mode 100644
index 0000000..5cae107
--- /dev/null
+++ b/server/services/ami/model/trunk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/voiceExtension.js b/server/services/ami/model/voiceExtension.js
new file mode 100644
index 0000000..c85582f
--- /dev/null
+++ b/server/services/ami/model/voiceExtension.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/voiceQueue.js b/server/services/ami/model/voiceQueue.js
new file mode 100644
index 0000000..c7c2edf
--- /dev/null
+++ b/server/services/ami/model/voiceQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/voiceQueueSummary.js b/server/services/ami/model/voiceQueueSummary.js
new file mode 100644
index 0000000..bf89a1e
--- /dev/null
+++ b/server/services/ami/model/voiceQueueSummary.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/vtigerAccount.js b/server/services/ami/model/vtigerAccount.js
new file mode 100644
index 0000000..d140cd2
--- /dev/null
+++ b/server/services/ami/model/vtigerAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/zendeskAccount.js b/server/services/ami/model/zendeskAccount.js
new file mode 100644
index 0000000..3b5b374
--- /dev/null
+++ b/server/services/ami/model/zendeskAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/model/zohoAccount.js b/server/services/ami/model/zohoAccount.js
new file mode 100644
index 0000000..993b411
--- /dev/null
+++ b/server/services/ami/model/zohoAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/preview/action.js b/server/services/ami/preview/action.js
new file mode 100644
index 0000000..56bf2de
--- /dev/null
+++ b/server/services/ami/preview/action.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/preview/index.js b/server/services/ami/preview/index.js
new file mode 100644
index 0000000..b00fa75
--- /dev/null
+++ b/server/services/ami/preview/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/preview/rpcDb.js b/server/services/ami/preview/rpcDb.js
new file mode 100644
index 0000000..2e5418e
--- /dev/null
+++ b/server/services/ami/preview/rpcDb.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/preview/util/util.js b/server/services/ami/preview/util/util.js
new file mode 100644
index 0000000..82123c1
--- /dev/null
+++ b/server/services/ami/preview/util/util.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/properties.js b/server/services/ami/properties.js
new file mode 100644
index 0000000..d81a788
--- /dev/null
+++ b/server/services/ami/properties.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/realtime/index.js b/server/services/ami/realtime/index.js
new file mode 100644
index 0000000..0cc94f8
--- /dev/null
+++ b/server/services/ami/realtime/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/realtime/utils.js b/server/services/ami/realtime/utils.js
new file mode 100644
index 0000000..996e8be
--- /dev/null
+++ b/server/services/ami/realtime/utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/report/index.js b/server/services/ami/report/index.js
new file mode 100644
index 0000000..5ec1181
--- /dev/null
+++ b/server/services/ami/report/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/report/userReport.js b/server/services/ami/report/userReport.js
new file mode 100644
index 0000000..5a747ca
--- /dev/null
+++ b/server/services/ami/report/userReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/report/voiceAgentReport.js b/server/services/ami/report/voiceAgentReport.js
new file mode 100644
index 0000000..fcb5479
--- /dev/null
+++ b/server/services/ami/report/voiceAgentReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/report/voiceCallReport.js b/server/services/ami/report/voiceCallReport.js
new file mode 100644
index 0000000..a03e35e
--- /dev/null
+++ b/server/services/ami/report/voiceCallReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/report/voiceDialReport.js b/server/services/ami/report/voiceDialReport.js
new file mode 100644
index 0000000..ba6de43
--- /dev/null
+++ b/server/services/ami/report/voiceDialReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/report/voiceQueueReport.js b/server/services/ami/report/voiceQueueReport.js
new file mode 100644
index 0000000..6eef4ec
--- /dev/null
+++ b/server/services/ami/report/voiceQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/agentReportPreview.js b/server/services/ami/rpc/agentReportPreview.js
new file mode 100644
index 0000000..74fe542
--- /dev/null
+++ b/server/services/ami/rpc/agentReportPreview.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/attachment.js b/server/services/ami/rpc/attachment.js
new file mode 100644
index 0000000..23fb2ae
--- /dev/null
+++ b/server/services/ami/rpc/attachment.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/campaign.js b/server/services/ami/rpc/campaign.js
new file mode 100644
index 0000000..862fc09
--- /dev/null
+++ b/server/services/ami/rpc/campaign.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmContact.js b/server/services/ami/rpc/cmContact.js
new file mode 100644
index 0000000..fb047ea
--- /dev/null
+++ b/server/services/ami/rpc/cmContact.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopper.js b/server/services/ami/rpc/cmHopper.js
new file mode 100644
index 0000000..910b4d9
--- /dev/null
+++ b/server/services/ami/rpc/cmHopper.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperAdditionalPhone.js b/server/services/ami/rpc/cmHopperAdditionalPhone.js
new file mode 100644
index 0000000..03c1b51
--- /dev/null
+++ b/server/services/ami/rpc/cmHopperAdditionalPhone.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperBlack.js b/server/services/ami/rpc/cmHopperBlack.js
new file mode 100644
index 0000000..9f56419
--- /dev/null
+++ b/server/services/ami/rpc/cmHopperBlack.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperFinal.js b/server/services/ami/rpc/cmHopperFinal.js
new file mode 100644
index 0000000..7f8bb33
--- /dev/null
+++ b/server/services/ami/rpc/cmHopperFinal.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperHistory.js b/server/services/ami/rpc/cmHopperHistory.js
new file mode 100644
index 0000000..2fc8b7d
--- /dev/null
+++ b/server/services/ami/rpc/cmHopperHistory.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/faxAccount.js b/server/services/ami/rpc/faxAccount.js
new file mode 100644
index 0000000..1ec5043
--- /dev/null
+++ b/server/services/ami/rpc/faxAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/faxMessage.js b/server/services/ami/rpc/faxMessage.js
new file mode 100644
index 0000000..863dba6
--- /dev/null
+++ b/server/services/ami/rpc/faxMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/desk.js b/server/services/ami/rpc/integrations/desk.js
new file mode 100644
index 0000000..f747729
--- /dev/null
+++ b/server/services/ami/rpc/integrations/desk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/dynamics365.js b/server/services/ami/rpc/integrations/dynamics365.js
new file mode 100644
index 0000000..7a48bb2
--- /dev/null
+++ b/server/services/ami/rpc/integrations/dynamics365.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/freshdesk.js b/server/services/ami/rpc/integrations/freshdesk.js
new file mode 100644
index 0000000..7e96c19
--- /dev/null
+++ b/server/services/ami/rpc/integrations/freshdesk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/freshsales.js b/server/services/ami/rpc/integrations/freshsales.js
new file mode 100644
index 0000000..cbd5438
--- /dev/null
+++ b/server/services/ami/rpc/integrations/freshsales.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/salesforce.js b/server/services/ami/rpc/integrations/salesforce.js
new file mode 100644
index 0000000..943bff9
--- /dev/null
+++ b/server/services/ami/rpc/integrations/salesforce.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/servicenow.js b/server/services/ami/rpc/integrations/servicenow.js
new file mode 100644
index 0000000..eb2ceb3
--- /dev/null
+++ b/server/services/ami/rpc/integrations/servicenow.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/sugarcrm.js b/server/services/ami/rpc/integrations/sugarcrm.js
new file mode 100644
index 0000000..57aa5b4
--- /dev/null
+++ b/server/services/ami/rpc/integrations/sugarcrm.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/vtiger.js b/server/services/ami/rpc/integrations/vtiger.js
new file mode 100644
index 0000000..22b9c18
--- /dev/null
+++ b/server/services/ami/rpc/integrations/vtiger.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/zendesk.js b/server/services/ami/rpc/integrations/zendesk.js
new file mode 100644
index 0000000..08143ef
--- /dev/null
+++ b/server/services/ami/rpc/integrations/zendesk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/zoho.js b/server/services/ami/rpc/integrations/zoho.js
new file mode 100644
index 0000000..bacd82d
--- /dev/null
+++ b/server/services/ami/rpc/integrations/zoho.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/interval.js b/server/services/ami/rpc/interval.js
new file mode 100644
index 0000000..b9f9155
--- /dev/null
+++ b/server/services/ami/rpc/interval.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/memberReport.js b/server/services/ami/rpc/memberReport.js
new file mode 100644
index 0000000..0cd81de
--- /dev/null
+++ b/server/services/ami/rpc/memberReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/setting.js b/server/services/ami/rpc/setting.js
new file mode 100644
index 0000000..823727e
--- /dev/null
+++ b/server/services/ami/rpc/setting.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/template.js b/server/services/ami/rpc/template.js
new file mode 100644
index 0000000..a8211f5
--- /dev/null
+++ b/server/services/ami/rpc/template.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/trigger.js b/server/services/ami/rpc/trigger.js
new file mode 100644
index 0000000..efe5011
--- /dev/null
+++ b/server/services/ami/rpc/trigger.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/trunk.js b/server/services/ami/rpc/trunk.js
new file mode 100644
index 0000000..e5d9393
--- /dev/null
+++ b/server/services/ami/rpc/trunk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/user.js b/server/services/ami/rpc/user.js
new file mode 100644
index 0000000..4f0935f
--- /dev/null
+++ b/server/services/ami/rpc/user.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceAgentReport.js b/server/services/ami/rpc/voiceAgentReport.js
new file mode 100644
index 0000000..7e9606e
--- /dev/null
+++ b/server/services/ami/rpc/voiceAgentReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceCallReport.js b/server/services/ami/rpc/voiceCallReport.js
new file mode 100644
index 0000000..7aefd94
--- /dev/null
+++ b/server/services/ami/rpc/voiceCallReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceDialReport.js b/server/services/ami/rpc/voiceDialReport.js
new file mode 100644
index 0000000..d677bd2
--- /dev/null
+++ b/server/services/ami/rpc/voiceDialReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceExtension.js b/server/services/ami/rpc/voiceExtension.js
new file mode 100644
index 0000000..229c28b
--- /dev/null
+++ b/server/services/ami/rpc/voiceExtension.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceQueue.js b/server/services/ami/rpc/voiceQueue.js
new file mode 100644
index 0000000..210f818
--- /dev/null
+++ b/server/services/ami/rpc/voiceQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceQueueReport.js b/server/services/ami/rpc/voiceQueueReport.js
new file mode 100644
index 0000000..a5b3b13
--- /dev/null
+++ b/server/services/ami/rpc/voiceQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceQueueRt.js b/server/services/ami/rpc/voiceQueueRt.js
new file mode 100644
index 0000000..5b70c61
--- /dev/null
+++ b/server/services/ami/rpc/voiceQueueRt.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceRecording.js b/server/services/ami/rpc/voiceRecording.js
new file mode 100644
index 0000000..905c63f
--- /dev/null
+++ b/server/services/ami/rpc/voiceRecording.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceTransferReport.js b/server/services/ami/rpc/voiceTransferReport.js
new file mode 100644
index 0000000..2d5032f
--- /dev/null
+++ b/server/services/ami/rpc/voiceTransferReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/server/index.js b/server/services/ami/server/index.js
new file mode 100644
index 0000000..cf191cd
--- /dev/null
+++ b/server/services/ami/server/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/cmContact/index.js b/server/services/ami/trigger/cmContact/index.js
new file mode 100644
index 0000000..f32b736
--- /dev/null
+++ b/server/services/ami/trigger/cmContact/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/index.js b/server/services/ami/trigger/index.js
new file mode 100644
index 0000000..d66e222
--- /dev/null
+++ b/server/services/ami/trigger/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/desk.js b/server/services/ami/trigger/integration/desk.js
new file mode 100644
index 0000000..dff0688
--- /dev/null
+++ b/server/services/ami/trigger/integration/desk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/dynamics365.js b/server/services/ami/trigger/integration/dynamics365.js
new file mode 100644
index 0000000..ab64e21
--- /dev/null
+++ b/server/services/ami/trigger/integration/dynamics365.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/freshdesk.js b/server/services/ami/trigger/integration/freshdesk.js
new file mode 100644
index 0000000..7c7d67c
--- /dev/null
+++ b/server/services/ami/trigger/integration/freshdesk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/freshsales.js b/server/services/ami/trigger/integration/freshsales.js
new file mode 100644
index 0000000..8a7863a
--- /dev/null
+++ b/server/services/ami/trigger/integration/freshsales.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/index.js b/server/services/ami/trigger/integration/index.js
new file mode 100644
index 0000000..a1f758d
--- /dev/null
+++ b/server/services/ami/trigger/integration/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/salesforce.js b/server/services/ami/trigger/integration/salesforce.js
new file mode 100644
index 0000000..ea43bf6
--- /dev/null
+++ b/server/services/ami/trigger/integration/salesforce.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/servicenow.js b/server/services/ami/trigger/integration/servicenow.js
new file mode 100644
index 0000000..1f79d4b
--- /dev/null
+++ b/server/services/ami/trigger/integration/servicenow.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/sugarcrm.js b/server/services/ami/trigger/integration/sugarcrm.js
new file mode 100644
index 0000000..16e252b
--- /dev/null
+++ b/server/services/ami/trigger/integration/sugarcrm.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/util.js b/server/services/ami/trigger/integration/util.js
new file mode 100644
index 0000000..b6231c7
--- /dev/null
+++ b/server/services/ami/trigger/integration/util.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/vtiger.js b/server/services/ami/trigger/integration/vtiger.js
new file mode 100644
index 0000000..044a0fc
--- /dev/null
+++ b/server/services/ami/trigger/integration/vtiger.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/zendesk.js b/server/services/ami/trigger/integration/zendesk.js
new file mode 100644
index 0000000..c1ee891
--- /dev/null
+++ b/server/services/ami/trigger/integration/zendesk.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/zoho.js b/server/services/ami/trigger/integration/zoho.js
new file mode 100644
index 0000000..479ac12
--- /dev/null
+++ b/server/services/ami/trigger/integration/zoho.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/script/index.js b/server/services/ami/trigger/script/index.js
new file mode 100644
index 0000000..f468ad1
--- /dev/null
+++ b/server/services/ami/trigger/script/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/ami/trigger/urlforward/index.js b/server/services/ami/trigger/urlforward/index.js
new file mode 100644
index 0000000..97181ef
--- /dev/null
+++ b/server/services/ami/trigger/urlforward/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/client.js b/server/services/email/client.js
new file mode 100644
index 0000000..e94f808
--- /dev/null
+++ b/server/services/email/client.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/index.js b/server/services/email/index.js
new file mode 100644
index 0000000..50f2038
--- /dev/null
+++ b/server/services/email/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/lib/email.js b/server/services/email/lib/email.js
new file mode 100644
index 0000000..06e2cfe
--- /dev/null
+++ b/server/services/email/lib/email.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/lib/imap.js b/server/services/email/lib/imap.js
new file mode 100644
index 0000000..18b6214
--- /dev/null
+++ b/server/services/email/lib/imap.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/lib/smtp.js b/server/services/email/lib/smtp.js
new file mode 100644
index 0000000..a019a98
--- /dev/null
+++ b/server/services/email/lib/smtp.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/lib/utils.js b/server/services/email/lib/utils.js
new file mode 100644
index 0000000..c11480c
--- /dev/null
+++ b/server/services/email/lib/utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/model/mailAccount.js b/server/services/email/model/mailAccount.js
new file mode 100644
index 0000000..fdcbf41
--- /dev/null
+++ b/server/services/email/model/mailAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/realtime/index.js b/server/services/email/realtime/index.js
new file mode 100644
index 0000000..7008fbe
--- /dev/null
+++ b/server/services/email/realtime/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/rpc/mailAccount.js b/server/services/email/rpc/mailAccount.js
new file mode 100644
index 0000000..8fc0ce6
--- /dev/null
+++ b/server/services/email/rpc/mailAccount.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/rpc/setting.js b/server/services/email/rpc/setting.js
new file mode 100644
index 0000000..6145916
--- /dev/null
+++ b/server/services/email/rpc/setting.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/email/server/index.js b/server/services/email/server/index.js
new file mode 100644
index 0000000..e601b99
--- /dev/null
+++ b/server/services/email/server/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/express/index.js b/server/services/express/index.js
new file mode 100644
index 0000000..bf81200
--- /dev/null
+++ b/server/services/express/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/client.js b/server/services/routing/client.js
new file mode 100644
index 0000000..cc8d813
--- /dev/null
+++ b/server/services/routing/client.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/index.js b/server/services/routing/index.js
new file mode 100644
index 0000000..686d71c
--- /dev/null
+++ b/server/services/routing/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/lib/rule-engine.js b/server/services/routing/lib/rule-engine.js
new file mode 100644
index 0000000..a0228aa
--- /dev/null
+++ b/server/services/routing/lib/rule-engine.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/mailRpc/index.js b/server/services/routing/mailRpc/index.js
new file mode 100644
index 0000000..2c31476
--- /dev/null
+++ b/server/services/routing/mailRpc/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/agent.js b/server/services/routing/model/agent.js
new file mode 100644
index 0000000..174c069
--- /dev/null
+++ b/server/services/routing/model/agent.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/chatQueue.js b/server/services/routing/model/chatQueue.js
new file mode 100644
index 0000000..a42ffbd
--- /dev/null
+++ b/server/services/routing/model/chatQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/faxQueue.js b/server/services/routing/model/faxQueue.js
new file mode 100644
index 0000000..6f4bfeb
--- /dev/null
+++ b/server/services/routing/model/faxQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/interval.js b/server/services/routing/model/interval.js
new file mode 100644
index 0000000..59c2601
--- /dev/null
+++ b/server/services/routing/model/interval.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/mailQueue.js b/server/services/routing/model/mailQueue.js
new file mode 100644
index 0000000..1df2209
--- /dev/null
+++ b/server/services/routing/model/mailQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/openchannelQueue.js b/server/services/routing/model/openchannelQueue.js
new file mode 100644
index 0000000..cde677b
--- /dev/null
+++ b/server/services/routing/model/openchannelQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/smsQueue.js b/server/services/routing/model/smsQueue.js
new file mode 100644
index 0000000..bd0cc99
--- /dev/null
+++ b/server/services/routing/model/smsQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/model/whatsappQueue.js b/server/services/routing/model/whatsappQueue.js
new file mode 100644
index 0000000..bb2b904
--- /dev/null
+++ b/server/services/routing/model/whatsappQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/realtime/index.js b/server/services/routing/realtime/index.js
new file mode 100644
index 0000000..0471911
--- /dev/null
+++ b/server/services/routing/realtime/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/chatInteraction.js b/server/services/routing/rpc/chatInteraction.js
new file mode 100644
index 0000000..5854942
--- /dev/null
+++ b/server/services/routing/rpc/chatInteraction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/chatMessage.js b/server/services/routing/rpc/chatMessage.js
new file mode 100644
index 0000000..2cad043
--- /dev/null
+++ b/server/services/routing/rpc/chatMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/chatQueue.js b/server/services/routing/rpc/chatQueue.js
new file mode 100644
index 0000000..12b302c
--- /dev/null
+++ b/server/services/routing/rpc/chatQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/chatQueueReport.js b/server/services/routing/rpc/chatQueueReport.js
new file mode 100644
index 0000000..c5f3f23
--- /dev/null
+++ b/server/services/routing/rpc/chatQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/faxInteraction.js b/server/services/routing/rpc/faxInteraction.js
new file mode 100644
index 0000000..00b82ed
--- /dev/null
+++ b/server/services/routing/rpc/faxInteraction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/faxMessage.js b/server/services/routing/rpc/faxMessage.js
new file mode 100644
index 0000000..d547759
--- /dev/null
+++ b/server/services/routing/rpc/faxMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/faxQueue.js b/server/services/routing/rpc/faxQueue.js
new file mode 100644
index 0000000..832a357
--- /dev/null
+++ b/server/services/routing/rpc/faxQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/faxQueueReport.js b/server/services/routing/rpc/faxQueueReport.js
new file mode 100644
index 0000000..3238f83
--- /dev/null
+++ b/server/services/routing/rpc/faxQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/interval.js b/server/services/routing/rpc/interval.js
new file mode 100644
index 0000000..b39532d
--- /dev/null
+++ b/server/services/routing/rpc/interval.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/mailInteraction.js b/server/services/routing/rpc/mailInteraction.js
new file mode 100644
index 0000000..804f6f4
--- /dev/null
+++ b/server/services/routing/rpc/mailInteraction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/mailMessage.js b/server/services/routing/rpc/mailMessage.js
new file mode 100644
index 0000000..886a384
--- /dev/null
+++ b/server/services/routing/rpc/mailMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/mailQueue.js b/server/services/routing/rpc/mailQueue.js
new file mode 100644
index 0000000..1280f4c
--- /dev/null
+++ b/server/services/routing/rpc/mailQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/mailQueueReport.js b/server/services/routing/rpc/mailQueueReport.js
new file mode 100644
index 0000000..0eec1f4
--- /dev/null
+++ b/server/services/routing/rpc/mailQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/openchannelInteraction.js b/server/services/routing/rpc/openchannelInteraction.js
new file mode 100644
index 0000000..a0e14dd
--- /dev/null
+++ b/server/services/routing/rpc/openchannelInteraction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/openchannelMessage.js b/server/services/routing/rpc/openchannelMessage.js
new file mode 100644
index 0000000..2da8a39
--- /dev/null
+++ b/server/services/routing/rpc/openchannelMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/openchannelQueue.js b/server/services/routing/rpc/openchannelQueue.js
new file mode 100644
index 0000000..9f63f78
--- /dev/null
+++ b/server/services/routing/rpc/openchannelQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/openchannelQueueReport.js b/server/services/routing/rpc/openchannelQueueReport.js
new file mode 100644
index 0000000..2427c12
--- /dev/null
+++ b/server/services/routing/rpc/openchannelQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/smsInteraction.js b/server/services/routing/rpc/smsInteraction.js
new file mode 100644
index 0000000..053f3bc
--- /dev/null
+++ b/server/services/routing/rpc/smsInteraction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/smsMessage.js b/server/services/routing/rpc/smsMessage.js
new file mode 100644
index 0000000..dc26227
--- /dev/null
+++ b/server/services/routing/rpc/smsMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/smsQueue.js b/server/services/routing/rpc/smsQueue.js
new file mode 100644
index 0000000..4eae86a
--- /dev/null
+++ b/server/services/routing/rpc/smsQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/smsQueueReport.js b/server/services/routing/rpc/smsQueueReport.js
new file mode 100644
index 0000000..23d8b32
--- /dev/null
+++ b/server/services/routing/rpc/smsQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/user.js b/server/services/routing/rpc/user.js
new file mode 100644
index 0000000..4ed55b6
--- /dev/null
+++ b/server/services/routing/rpc/user.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/whatsappInteraction.js b/server/services/routing/rpc/whatsappInteraction.js
new file mode 100644
index 0000000..dfda00b
--- /dev/null
+++ b/server/services/routing/rpc/whatsappInteraction.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/whatsappMessage.js b/server/services/routing/rpc/whatsappMessage.js
new file mode 100644
index 0000000..7f57d89
--- /dev/null
+++ b/server/services/routing/rpc/whatsappMessage.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/whatsappQueue.js b/server/services/routing/rpc/whatsappQueue.js
new file mode 100644
index 0000000..76d4561
--- /dev/null
+++ b/server/services/routing/rpc/whatsappQueue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/rpc/whatsappQueueReport.js b/server/services/routing/rpc/whatsappQueueReport.js
new file mode 100644
index 0000000..593a26a
--- /dev/null
+++ b/server/services/routing/rpc/whatsappQueueReport.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/agent.js b/server/services/routing/server/applications/agent.js
new file mode 100644
index 0000000..930f6d7
--- /dev/null
+++ b/server/services/routing/server/applications/agent.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/amazonlex.js b/server/services/routing/server/applications/amazonlex.js
new file mode 100644
index 0000000..625bf40
--- /dev/null
+++ b/server/services/routing/server/applications/amazonlex.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/autoreply.js b/server/services/routing/server/applications/autoreply.js
new file mode 100644
index 0000000..6ae47ec
--- /dev/null
+++ b/server/services/routing/server/applications/autoreply.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/close.js b/server/services/routing/server/applications/close.js
new file mode 100644
index 0000000..8d6ee3e
--- /dev/null
+++ b/server/services/routing/server/applications/close.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/dialogflow.js b/server/services/routing/server/applications/dialogflow.js
new file mode 100644
index 0000000..92ad02f
--- /dev/null
+++ b/server/services/routing/server/applications/dialogflow.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/dialogflowV2.js b/server/services/routing/server/applications/dialogflowV2.js
new file mode 100644
index 0000000..066fa22
--- /dev/null
+++ b/server/services/routing/server/applications/dialogflowV2.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/gotoif.js b/server/services/routing/server/applications/gotoif.js
new file mode 100644
index 0000000..f426076
--- /dev/null
+++ b/server/services/routing/server/applications/gotoif.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/gotop.js b/server/services/routing/server/applications/gotop.js
new file mode 100644
index 0000000..6934894
--- /dev/null
+++ b/server/services/routing/server/applications/gotop.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/message.js b/server/services/routing/server/applications/message.js
new file mode 100644
index 0000000..3c1a2d4
--- /dev/null
+++ b/server/services/routing/server/applications/message.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/noop.js b/server/services/routing/server/applications/noop.js
new file mode 100644
index 0000000..71f6d7f
--- /dev/null
+++ b/server/services/routing/server/applications/noop.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/queue.js b/server/services/routing/server/applications/queue.js
new file mode 100644
index 0000000..617c1f0
--- /dev/null
+++ b/server/services/routing/server/applications/queue.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/strategy/agent.js b/server/services/routing/server/applications/strategy/agent.js
new file mode 100644
index 0000000..3a8ef19
--- /dev/null
+++ b/server/services/routing/server/applications/strategy/agent.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/strategy/beepall.js b/server/services/routing/server/applications/strategy/beepall.js
new file mode 100644
index 0000000..d5761d8
--- /dev/null
+++ b/server/services/routing/server/applications/strategy/beepall.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/strategy/index.js b/server/services/routing/server/applications/strategy/index.js
new file mode 100644
index 0000000..d020b65
--- /dev/null
+++ b/server/services/routing/server/applications/strategy/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
+var _0xfa61=['./beepall','exports','./rrmemory'];(function(_0x523cc7,_0x34b3d0){var _0x268b8b=function(_0x26d073){while(--_0x26d073){_0x523cc7['push'](_0x523cc7['shift']());}};_0x268b8b(++_0x34b3d0);}(_0xfa61,0x97));var _0x1fa6=function(_0x4c6188,_0x1808d5){_0x4c6188=_0x4c6188-0x0;var _0x55259e=_0xfa61[_0x4c6188];return _0x55259e;};'use strict';module[_0x1fa6('0x0')]={'rrmemory':require(_0x1fa6('0x1')),'beepall':require(_0x1fa6('0x2')),'agent':require('./agent')};
\ No newline at end of file
diff --git a/server/services/routing/server/applications/strategy/rrmemory.js b/server/services/routing/server/applications/strategy/rrmemory.js
new file mode 100644
index 0000000..f4ff093
--- /dev/null
+++ b/server/services/routing/server/applications/strategy/rrmemory.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/strategy/util.js b/server/services/routing/server/applications/strategy/util.js
new file mode 100644
index 0000000..85fe54e
--- /dev/null
+++ b/server/services/routing/server/applications/strategy/util.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/system.js b/server/services/routing/server/applications/system.js
new file mode 100644
index 0000000..92e53ad
--- /dev/null
+++ b/server/services/routing/server/applications/system.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/tag.js b/server/services/routing/server/applications/tag.js
new file mode 100644
index 0000000..bb285ca
--- /dev/null
+++ b/server/services/routing/server/applications/tag.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/tvox.js b/server/services/routing/server/applications/tvox.js
new file mode 100644
index 0000000..8f865f3
--- /dev/null
+++ b/server/services/routing/server/applications/tvox.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/applications/utils.js b/server/services/routing/server/applications/utils.js
new file mode 100644
index 0000000..aa0739c
--- /dev/null
+++ b/server/services/routing/server/applications/utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/index.js b/server/services/routing/server/index.js
new file mode 100644
index 0000000..82f9891
--- /dev/null
+++ b/server/services/routing/server/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/routing/server/interval.js b/server/services/routing/server/interval.js
new file mode 100644
index 0000000..60f688b
--- /dev/null
+++ b/server/services/routing/server/interval.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/agents.controller.js b/server/services/xdr/agents.controller.js
new file mode 100644
index 0000000..136d350
--- /dev/null
+++ b/server/services/xdr/agents.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/calls.controller.js b/server/services/xdr/calls.controller.js
new file mode 100644
index 0000000..9f88d3d
--- /dev/null
+++ b/server/services/xdr/calls.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/core.controller.js b/server/services/xdr/core.controller.js
new file mode 100644
index 0000000..1f67ba0
--- /dev/null
+++ b/server/services/xdr/core.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/dials.controller.js b/server/services/xdr/dials.controller.js
new file mode 100644
index 0000000..c222ab9
--- /dev/null
+++ b/server/services/xdr/dials.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/index.js b/server/services/xdr/index.js
new file mode 100644
index 0000000..b2d0702
--- /dev/null
+++ b/server/services/xdr/index.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/members.controller.js b/server/services/xdr/members.controller.js
new file mode 100644
index 0000000..a04b850
--- /dev/null
+++ b/server/services/xdr/members.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/queues.controller.js b/server/services/xdr/queues.controller.js
new file mode 100644
index 0000000..65c0360
--- /dev/null
+++ b/server/services/xdr/queues.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/recordings.controller.js b/server/services/xdr/recordings.controller.js
new file mode 100644
index 0000000..fe741a4
--- /dev/null
+++ b/server/services/xdr/recordings.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/transfers.controller.js b/server/services/xdr/transfers.controller.js
new file mode 100644
index 0000000..eca94e0
--- /dev/null
+++ b/server/services/xdr/transfers.controller.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/services/xdr/utils.js b/server/services/xdr/utils.js
new file mode 100644
index 0000000..6b8e5fd
--- /dev/null
+++ b/server/services/xdr/utils.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/utils/client-side-logger.js b/server/utils/client-side-logger.js
new file mode 100644
index 0000000..d817792
--- /dev/null
+++ b/server/utils/client-side-logger.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/utils/iftime.js b/server/utils/iftime.js
new file mode 100644
index 0000000..85fbeec
--- /dev/null
+++ b/server/utils/iftime.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/utils/loggers.js b/server/utils/loggers.js
new file mode 100644
index 0000000..9292aa8
--- /dev/null
+++ b/server/utils/loggers.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/utils/mask-sensitive-data.js b/server/utils/mask-sensitive-data.js
new file mode 100644
index 0000000..0f1587f
--- /dev/null
+++ b/server/utils/mask-sensitive-data.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/utils/safe-template.js b/server/utils/safe-template.js
new file mode 100644
index 0000000..e768da0
--- /dev/null
+++ b/server/utils/safe-template.js
@@ -0,0 +1,18 @@
+// *************************************************************************
+// *                                                                       *
+// * xCALLY Motion -  The Omnichannel Contact Center                       *
+// * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * Email: [email-masked]                                                *
+// * Website: https://www.xcally.com                                       *
+// *                                                                       *
+// *************************************************************************
+// *                                                                       *
+// * The SOFTWARE PRODUCT is protected by copyright laws and international *
+// * copyright treaties, as well as other intellectual property laws and   *
+// * treaties. The SOFTWARE PRODUCT is licensed, not sold. 		           *
+// *                                                                       *
+// *************************************************************************
\ No newline at end of file
diff --git a/server/views/404.html b/server/views/404.html
new file mode 100644
index 0000000..558e7eb
--- /dev/null
+++ b/server/views/404.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <title>Page Not Found :(</title>
+  <style>
+    ::-moz-selection {
+      background: #b3d4fc;
+      text-shadow: none;
+    }
+
+    ::selection {
+      background: #b3d4fc;
+      text-shadow: none;
+    }
+
+    html {
+      padding: 30px 10px;
+      font-size: 20px;
+      line-height: 1.4;
+      color: #737373;
+      background: #f0f0f0;
+      -webkit-text-size-adjust: 100%;
+      -ms-text-size-adjust: 100%;
+    }
+
+    html,
+    input {
+      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+    }
+
+    body {
+      max-width: 500px;
+      _width: 500px;
+      padding: 30px 20px 50px;
+      border: 1px solid #b3b3b3;
+      border-radius: 4px;
+      margin: 0 auto;
+      box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
+      background: #fcfcfc;
+    }
+
+    h1 {
+      margin: 0 10px;
+      font-size: 50px;
+      text-align: center;
+    }
+
+    h1 span {
+      color: #bbb;
+    }
+
+    h3 {
+      margin: 1.5em 0 0.5em;
+    }
+
+    p {
+      margin: 1em 0;
+    }
+
+    ul {
+      padding: 0 0 0 40px;
+      margin: 1em 0;
+    }
+
+    .container {
+      max-width: 380px;
+      _width: 380px;
+      margin: 0 auto;
+    }
+
+    /* google search */
+
+    #goog-fixurl ul {
+      list-style: none;
+      padding: 0;
+      margin: 0;
+    }
+
+    #goog-fixurl form {
+      margin: 0;
+    }
+
+    #goog-wm-qt,
+    #goog-wm-sb {
+      border: 1px solid #bbb;
+      font-size: 16px;
+      line-height: normal;
+      vertical-align: top;
+      color: #444;
+      border-radius: 2px;
+    }
+
+    #goog-wm-qt {
+      width: 220px;
+      height: 20px;
+      padding: 5px;
+      margin: 5px 10px 0 0;
+      box-shadow: inset 0 1px 1px #ccc;
+    }
+
+    #goog-wm-sb {
+      display: inline-block;
+      height: 32px;
+      padding: 0 10px;
+      margin: 5px 0 0;
+      white-space: nowrap;
+      cursor: pointer;
+      background-color: #f5f5f5;
+      background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+      background-image: -moz-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+      background-image: -ms-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+      background-image: -o-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+      -webkit-appearance: none;
+      -moz-appearance: none;
+      appearance: none;
+      *overflow: visible;
+      *display: inline;
+      *zoom: 1;
+    }
+
+    #goog-wm-sb:hover,
+    #goog-wm-sb:focus {
+      border-color: #aaa;
+      box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+      background-color: #f8f8f8;
+    }
+
+    #goog-wm-qt:hover,
+    #goog-wm-qt:focus {
+      border-color: #105cb6;
+      outline: 0;
+      color: #222;
+    }
+
+    input::-moz-focus-inner {
+      padding: 0;
+      border: 0;
+    }
+  </style>
+</head>
+
+<body>
+  <div class="container">
+    <h1>Not found <span>:(</span></h1>
+    <p>Sorry, but the page you were trying to view does not exist.</p>
+    <p>It looks like this was the result of either:</p>
+    <ul>
+      <li>a mistyped address</li>
+      <li>an out-of-date link</li>
+    </ul>
+    <script>
+      var GOOG_FIXURL_LANG = (navigator.language || '').slice(0, 2),
+        GOOG_FIXURL_SITE = location.host;
+    </script>
+    <script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
+  </div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/server/views/downloadInteraction.ejs b/server/views/downloadInteraction.ejs
new file mode 100644
index 0000000..126cd0a
--- /dev/null
+++ b/server/views/downloadInteraction.ejs
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <title>PDF document</title>
+</head>
+<body>
+  <table data-pdfmake='{"widths":[100,"*","auto"],"heights":40}' class="interactionData">
+    <tbody>
+      <tr>
+        <td>
+          <div class="textblock">
+            <p class="textfield">
+              <% if (interaction.channel.toLowerCase()==='chat' ) { -%>
+                Website <% } else { %> Account <% } -%>
+            </p>
+            <p class="textcontent">
+              <%- interaction.account %>
+            </p>
+          </div>
+        </td>
+        <td>
+          <div class="textblock">
+            <p class="textfield">Agent</p>
+            <p class="textcontent">
+              <%- interaction.agent %>
+            </p>
+          </div>
+        </td>
+        <td>
+          <div class="textblock">
+            <p class="textfield">Created</p>
+            <p class="textcontent">
+              <%- interaction.createdAt %>
+            </p>
+          </div>
+        </td>
+      </tr>
+      <tr>
+        <% if (interaction.channel.toLowerCase()==='chat' ) { -%>
+          <td>
+            <div class="textblock">
+              <p class="textfield">Browser</p>
+              <p class="textcontent">
+                <%- interaction.chatInfo.browser %>
+              </p>
+            </div>
+          </td>
+          <td>
+            <div class="textblock">
+              <p class="textfield">Operating System</p>
+              <p class="textcontent">
+                <%- interaction.chatInfo.os %>
+              </p>
+            </div>
+          </td>
+          <% } else { -%>
+            <td>
+              <div class="textblock">
+                <p class="textfield">Disposition</p>
+                <p class="textcontent">
+                  <%- interaction.disposition %>
+                </p>
+              </div>
+            </td>
+            <td>&nbsp;</td>
+            <% } -%>
+              <td>
+                <div class="textblock">
+                  <p class="textfield">Closed</p>
+                  <p class="textcontent">
+                    <%- interaction.closedAt %>
+                  </p>
+                </div>
+              </td>
+      </tr>
+      <% if (interaction.channel.toLowerCase()==='openchannel' ) { -%>
+        <tr>
+          <td colspan="3">
+            <div class="textblock">
+              <p class="textfield">Visibility</p>
+              <p class="textcontent">
+                <%- interaction.visibility %>
+              </p>
+            </div>
+          </td>
+        </tr>
+        <% } -%>
+          <% if (interaction.channel.toLowerCase()==='chat' ) { -%>
+            <tr>
+              <td>
+                <div class="textblock">
+                  <p class="textfield">Referer</p>
+                  <p class="textcontent">
+                    <%- interaction.chatInfo.referer %>
+                  </p>
+                </div>
+              </td>
+              <td>
+                <div class="textblock">
+                  <p class="textfield">Originating TCP Port</p>
+                  <p class="textcontent">
+                    <%- interaction.chatInfo.customerPort %>
+                  </p>
+                </div>
+              </td>
+              <td>
+                <div class="textblock">
+                  <p class="textfield">Originating IP Address</p>
+                  <p class="textcontent">
+                    <%- interaction.chatInfo.customerIp %>
+                  </p>
+                </div>
+              </td>
+            </tr>
+            <% } -%>
+    </tbody>
+  </table>
+  <div class="messageContainer">
+    <% interaction.messages.forEach(function(message) { -%>
+      <p>
+      <div class="messageInfo">[<%- message.direction %>] <%- message.date %> | <%- message.sender %>
+              <% if(interaction.channel.toLowerCase()==='chat' && message.read) { -%><i>&radic;</i>
+                <% }-%>
+      </div>
+      <% if (interaction.channel.toLowerCase()==='openchannel' && message.attachment) { -%>[ATTACHMENT] <% } -%>
+          <%- message.body %>
+            </p>
+            <% }); -%>
+  </div>
+</body>
+</html>
\ No newline at end of file