diff --git a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod
index 47b0a2253721888ace0a233eb08692be82c179b5..c83cda0bd567d2bf66cf349b78e2ea0ba307de42 100644
--- a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod
+++ b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod
@@ -22,20 +22,6 @@
       <name>CampaignParticipantsProvider</name>
       <documentation>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignparticipantsprovider/documentation.adoc</documentation>
       <recordContainer>db</recordContainer>
-      <dependencies>
-        <entityDependency>
-          <name>f28945cd-4613-4dfa-91f7-a7d9d64cef58</name>
-          <entityName>Campaign_entity</entityName>
-          <fieldName>CampaignParticipants</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-        <entityDependency>
-          <name>7ad08378-b36f-4512-8891-db727c6ddcd7</name>
-          <entityName>CampaignStep_entity</entityName>
-          <fieldName>CampaignParticipantsConsumer</fieldName>
-          <isConsumer v="false" />
-        </entityDependency>
-      </dependencies>
       <children>
         <entityParameter>
           <name>ContactId_param</name>
@@ -50,6 +36,20 @@
           <expose v="true" />
         </entityParameter>
       </children>
+      <dependencies>
+        <entityDependency>
+          <name>f28945cd-4613-4dfa-91f7-a7d9d64cef58</name>
+          <entityName>Campaign_entity</entityName>
+          <fieldName>CampaignParticipants</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+        <entityDependency>
+          <name>7ad08378-b36f-4512-8891-db727c6ddcd7</name>
+          <entityName>CampaignStep_entity</entityName>
+          <fieldName>CampaignParticipantsConsumer</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
     </entityProvider>
     <entityParameter>
       <name>CampaignStepId_param</name>
@@ -144,11 +144,6 @@
     <entityConsumer>
       <name>CampaignSteps</name>
       <refreshParent v="true" />
-      <dependency>
-        <name>dependency</name>
-        <entityName>CampaignStep_entity</entityName>
-        <fieldName>CampaignSteps</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>campaignId_param</name>
@@ -156,6 +151,11 @@
           <expose v="true" />
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
     </entityConsumer>
     <entityField>
       <name>CONTACTCONTEXT</name>
@@ -203,17 +203,17 @@
     </entityConsumer>
     <entityConsumer>
       <name>CommRestrictionIcon</name>
-      <dependency>
-        <name>dependency</name>
-        <entityName>KeywordAttribute_entity</entityName>
-        <fieldName>SpecificContainerKeyword</fieldName>
-      </dependency>
       <children>
         <entityParameter>
           <name>ContainerName_param</name>
           <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/commrestrictionicon/children/containername_param/valueProcess.js</valueProcess>
         </entityParameter>
       </children>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordAttribute_entity</entityName>
+        <fieldName>SpecificContainerKeyword</fieldName>
+      </dependency>
     </entityConsumer>
     <entityField>
       <name>STANDARD_EMAIL_COMMUNICATION</name>
@@ -271,7 +271,7 @@
     </entityConsumer>
     <entityField>
       <name>RESPONSIBLE_CONTACT_ID</name>
-      <title>Verantwortlicher</title>
+      <title>Responsible</title>
       <consumer>ResponsibleEmployees</consumer>
       <groupable v="true" />
       <linkedContext>Person</linkedContext>
diff --git a/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/stateProcess.js b/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/stateProcess.js
index f5e9edcd5d6225637cb7ad055c09e80799997070..0bd4c4c544c99f66a5a2ce914d8abd13910ad5c5 100644
--- a/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/stateProcess.js
+++ b/entity/Document_entity/entityfields/msteam/children/synchronizedocuments/stateProcess.js
@@ -1,12 +1,7 @@
-import("Util_lib");
+import("MSTeams_lib");
 import("system.vars");
 import("system.neon");
 import("system.result");
-import("Sql_lib");
 
-var isArchived = Utils.toBoolean(newSelect("IS_ARCHIVED")
-    .from("MST_TEAM")
-    .whereIfSet("MST_TEAM.MST_TEAMID", "$param.MSTTeamId_param")
-    .cell(true));
-
-result.string(isArchived ? neon.COMPONENTSTATE_DISABLED : neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
+var isEnabled = MSTeamsUtils.isTeamsEnabled() && MSTeamsUtils.isTeamActive(vars.get("$param.MSTTeamId_param"));
+result.string(isEnabled ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_DISABLED);
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js
index 826e42316f9b497e1a22f38b25f0bfcc420d7aba..f53cd7c87d173497b7b8fd5bcbb4ba4212bac637 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js
@@ -3,5 +3,5 @@ import("system.project");
 import("system.vars");
 
 var appId = project.getInstanceConfigValue("teamsAppId", null);
-if (appId != null)
+if (appId)
     teams.addApp(vars.get("$param.MSTTeamId_param"), appId);
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js
index 8c22d355887ba359f69c392d8671aa574cdc376d..f1febe96416f12e029c6de6537cf96e5c7f4d5db 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js
@@ -5,27 +5,12 @@ import("system.result");
 import("Sql_lib");
 
 var res = neon.COMPONENTSTATE_DISABLED;
-var teamId = vars.exists("$param.MSTTeamId_param") ? vars.get("$param.MSTTeamId_param") : null;
+var teamId = vars.get("$param.MSTTeamId_param");
 if (teamId && MSTeamsUtils.isTeamsEnabled())
 {    
-    var isArchived, serviceUrl;
-    var teamData = newSelect("IS_ARCHIVED, SERVICE_URL")
-        .from("MST_TEAM")
-        .whereIfSet("MST_TEAM.MST_TEAMID", teamId)
-        .arrayRow(true);
-
-    if (teamData)
-        [isArchived, serviceUrl] = teamData;
-
-
-    if (isArchived == 1 || serviceUrl) 
-    {
-        res = neon.COMPONENTSTATE_DISABLED;
-    }
-    else
-    {
+    var teamInfo = MSTeamsUtils.getTeamInfo(teamId);
+    if (teamInfo && !teamInfo.isArchived && !teamInfo.serviceUrl)
         res = neon.COMPONENTSTATE_EDITABLE;
-    }
 }
 
 result.string(res);
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/deleteteam/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/deleteteam/stateProcess.js
index ff7327ea21424cb3394d6d204c49cc42d49296da..dcaec1cc02ac3718197fd77a80e966630bdc0e1d 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/deleteteam/stateProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/deleteteam/stateProcess.js
@@ -2,30 +2,14 @@ import("MSTeams_lib");
 import("system.vars");
 import("system.neon");
 import("system.result");
-import("Sql_lib");
 
 var res = neon.COMPONENTSTATE_DISABLED;
-var teamId = vars.exists("$param.MSTTeamId_param") ? vars.get("$param.MSTTeamId_param") : null;
+var teamId = vars.get("$param.MSTTeamId_param");
 if (teamId && MSTeamsUtils.isTeamsEnabled())
 {    
-    var isArchived, serviceUrl;
-    var teamData = newSelect("IS_ARCHIVED, SERVICE_URL")
-    .from("MST_TEAM")
-    .whereIfSet("MST_TEAM.MST_TEAMID", teamId)
-    .arrayRow(true);
-
-    if (teamData)
-        [isArchived, serviceUrl] = teamData;
-
-
-    if (isArchived == 1 || serviceUrl || !MSTeamsUtils.isUserTeamOwner(teamId)) 
-    {
-        res = neon.COMPONENTSTATE_DISABLED;
-    }
-    else
-    {
+    var teamInfo = MSTeamsUtils.getTeamInfo(teamId);
+    if (teamInfo && !teamInfo.isArchived && !teamInfo.serviceUrl && MSTeamsUtils.isUserTeamOwner(teamId))
         res = neon.COMPONENTSTATE_EDITABLE;
-    }
 }
 
 result.string(res);
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/stateProcess.js
index 19d44a29c7aa78d785175ef6ea98d680670f97d2..7aa4197a0d2f1be51667f68696e2ecf18cbf3bc1 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/stateProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/stateProcess.js
@@ -2,30 +2,12 @@ import("MSTeams_lib");
 import("system.vars");
 import("system.neon");
 import("system.result");
-import("Sql_lib");
 
 var res = neon.COMPONENTSTATE_DISABLED;
-var teamId = vars.exists("$param.MSTTeamId_param") ? vars.get("$param.MSTTeamId_param") : null;
-if (teamId && MSTeamsUtils.isTeamsEnabled())
-{    
-    var isArchived, serviceUrl;
-    var teamData = newSelect("IS_ARCHIVED, SERVICE_URL")
-    .from("MST_TEAM")
-    .whereIfSet("MST_TEAM.MST_TEAMID", teamId)
-    .arrayRow(true);
-
-    if (teamData)
-        [isArchived, serviceUrl] = teamData;
-
-
-    if (isArchived == 1 || !MSTeamsUtils.isUserTeamOwner(teamId)) 
-    {
-        res = neon.COMPONENTSTATE_DISABLED;
-    }
-    else
-    {
-        res = neon.COMPONENTSTATE_EDITABLE;
-    }
+var teamId = vars.get("$param.MSTTeamId_param");
+if (teamId && MSTeamsUtils.isTeamsEnabled() && MSTeamsUtils.isTeamActive(teamId) && MSTeamsUtils.isUserTeamOwner(teamId))
+{
+    res = neon.COMPONENTSTATE_EDITABLE;
 }
 
 result.string(res);
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/onActionProcess.js
index 19f20d51a62115ea00b95eba76f5c733eccddea5..dd6293385c56357965b6ddd53fa1f5611b6bcf72 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/onActionProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/onActionProcess.js
@@ -1,11 +1,8 @@
-import("Sql_lib");
+import("MSTeams_lib");
 import("system.vars");
 import("system.neon");
 
-var webUrl = newSelect("WEB_URL")
-    .from("MST_TEAM")
-    .whereIfSet("MST_TEAM.MST_TEAMID", "$param.MSTTeamId_param")
-    .cell(true);
+var teamInfo = MSTeamsUtils.getTeamInfo(vars.get("$param.MSTTeamId_param"));
 
-if (webUrl)
-    neon.openUrl(webUrl, true);
+if (teamInfo && teamInfo.webUrl)
+    neon.openUrl(teamInfo.webUrl, true);
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/stateProcess.js
index 43b7cdd5eadeb6f287b2e2d24f3391c91360ee68..ce25c1feb1a1c2247dc19707bd447b5096e04184 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/stateProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/stateProcess.js
@@ -5,22 +5,10 @@ import("system.result");
 import("Sql_lib");
 
 var res = neon.COMPONENTSTATE_DISABLED;
-var teamId = vars.exists("$param.MSTTeamId_param") ? vars.get("$param.MSTTeamId_param") : null;
-if (teamId && MSTeamsUtils.isTeamsEnabled())
+var teamId = vars.get("$param.MSTTeamId_param");
+if (teamId && MSTeamsUtils.isTeamsEnabled() && MSTeamsUtils.isTeamActive(teamId))
 {    
-    var isArchived = newSelect("IS_ARCHIVED")
-        .from("MST_TEAM")
-        .whereIfSet("MST_TEAM.MST_TEAMID", teamId)
-        .cell(true);
-    
-    if (isArchived == 1) 
-    {
-        res = neon.COMPONENTSTATE_DISABLED;
-    }
-    else
-    {
-        res = neon.COMPONENTSTATE_EDITABLE;
-    }
+    res = neon.COMPONENTSTATE_EDITABLE;
 }
 
 result.string(res);
\ No newline at end of file
diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/restoreteam/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/restoreteam/stateProcess.js
index f6f0a5da09790cfe007d834b76e59a4397c0355e..45ca08b1622ea01f75c5029fbb125be25fba87c5 100644
--- a/entity/Member_entity/entityfields/msteamsactiongroup/children/restoreteam/stateProcess.js
+++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/restoreteam/stateProcess.js
@@ -5,27 +5,12 @@ import("system.result");
 import("Sql_lib");
 
 var res = neon.COMPONENTSTATE_DISABLED;
-var teamId = vars.exists("$param.MSTTeamId_param") ? vars.get("$param.MSTTeamId_param") : null;
+var teamId = vars.get("$param.MSTTeamId_param");
 if (teamId && MSTeamsUtils.isTeamsEnabled())
-{    
-    var isArchived, serviceUrl;
-    var teamData = newSelect("IS_ARCHIVED, SERVICE_URL")
-    .from("MST_TEAM")
-    .whereIfSet("MST_TEAM.MST_TEAMID", teamId)
-    .arrayRow(true);
-
-    if (teamData)
-        [isArchived, serviceUrl] = teamData;
-
-
-    if (isArchived == 0) 
-    {
-        res = neon.COMPONENTSTATE_DISABLED;
-    }
-    else
-    {
+{   
+    var teamInfo = MSTeamsUtils.getTeamInfo(teamId);
+    if (teamInfo && teamInfo.isArchived)
         res = neon.COMPONENTSTATE_EDITABLE;
-    }
 }
 
 result.string(res);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 6e143f7c08f9f480a085ba81023ca54c98b26082..fe22a9591a17181e4dea12575af148e7ca1e07d4 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -7566,6 +7566,12 @@
     <entry>
       <key>Exports the knowledge entry as a html file</key>
     </entry>
+    <entry>
+      <key>The max participants count can not be equal or less then 0</key>
+    </entry>
+    <entry>
+      <key>Illegal Parent Operator in buildFilterObj-Function:</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 867c0450057feccad79678709728ae32f38fc452..eaad07dadb7c4840ff4ff363402878d1e732ad38 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -7647,6 +7647,12 @@
     <entry>
       <key>Exports the knowledge entry as a html file</key>
     </entry>
+    <entry>
+      <key>The max participants count can not be equal or less then 0</key>
+    </entry>
+    <entry>
+      <key>Illegal Parent Operator in buildFilterObj-Function:</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonView/CampaignCostChart_view/CampaignCostChart_view.aod b/neonView/CampaignCostChart_view/CampaignCostChart_view.aod
index 9c8daa4a4eb3d5133e1831909f0c9f0c7b9712f8..24159367f94612a4b7887229f13a811a9d4c1acc 100644
--- a/neonView/CampaignCostChart_view/CampaignCostChart_view.aod
+++ b/neonView/CampaignCostChart_view/CampaignCostChart_view.aod
@@ -5,7 +5,7 @@
   <dashletConfigurations>
     <neonDashletConfiguration>
       <name>CampaignCostsChart</name>
-      <title>Campaign costs</title>
+      <title>Campaign Costs</title>
       <description>Shows campaing costs graphically processed</description>
       <fragment>Campaign/full</fragment>
       <singleton v="true" />
diff --git a/neonView/CampaignFilter_view/CampaignFilter_view.aod b/neonView/CampaignFilter_view/CampaignFilter_view.aod
index 0dcb198305db9a4021ace200c99df40b0018904d..4d7c3aac1c158be044fc069bf96cff0cf4c12a3c 100644
--- a/neonView/CampaignFilter_view/CampaignFilter_view.aod
+++ b/neonView/CampaignFilter_view/CampaignFilter_view.aod
@@ -8,7 +8,7 @@
   <dashletConfigurations>
     <neonDashletConfiguration>
       <name>CurrentUsersOwnedCampaigns</name>
-      <title>My campaigns</title>
+      <title>My Campaigns</title>
       <description>Show my campaigns</description>
       <fragment>Campaign/filter</fragment>
       <singleton v="true" />
diff --git a/process/MSTeams_lib/process.js b/process/MSTeams_lib/process.js
index 16d41e7efaf86b7f58b7cb80be742348ea1696c4..95db6db28b0c7e5b1fe7ff3542b3b47408337678 100644
--- a/process/MSTeams_lib/process.js
+++ b/process/MSTeams_lib/process.js
@@ -195,7 +195,10 @@ MSTeamsUtils.getLinkedTeam = function (pRowId, pObjectType)
 }
 
 /**
+ * Loads the contactIds associated with the given azureIds
  * 
+ * @param {String[]} pAzureIds      azureIds of the users
+ * @return {Object} object with the azureIds as keys and the corresponding contactIds as values
  */
 MSTeamsUtils.getContactIdsByAzureIds = function (pAzureIds)
 {
@@ -213,21 +216,32 @@ MSTeamsUtils.getContactIdsByAzureIds = function (pAzureIds)
 }
 
 /**
+ * Generates a sql expression to resolve the roles in a team for the contacts
  * 
+ * @param {String} pTeamId          id of the team
+ * @param {String} pContactIdField  sql field that contains the contactId that is used for selecting the role
+ * @return {String} sql expression
  */
 MSTeamsUtils.getTeamRoleSubSql = function (pTeamId, pContactIdField)
 {
     if (!pTeamId)
         return "''";
     
-    var ownerIds = Object.keys(teams.getAllOwners(pTeamId));
-    var ownerContactIds = MSTeamsUtils.getContactIdsByAzureIds(ownerIds);
-    ownerContactIds = Utils.objectValues(ownerContactIds);
-    
-    var members = teams.getAllMembers(pTeamId);
-    var memberIds = Object.keys(members);
-    var memberContactIds = MSTeamsUtils.getContactIdsByAzureIds(memberIds);
-    memberContactIds = Utils.objectValues(memberContactIds);
+    try {
+        var ownerIds = Object.keys(teams.getAllOwners(pTeamId));
+        var ownerContactIds = MSTeamsUtils.getContactIdsByAzureIds(ownerIds);
+        ownerContactIds = Utils.objectValues(ownerContactIds);
+
+        var members = teams.getAllMembers(pTeamId);
+        var memberIds = Object.keys(members);
+        var memberContactIds = MSTeamsUtils.getContactIdsByAzureIds(memberIds);
+        memberContactIds = Utils.objectValues(memberContactIds);
+    } 
+    catch (err)
+    {
+        logging.log(err, logging.ERROR);
+        return "''";
+    }
     
     if (ownerContactIds.length === 0 && memberContactIds.length === 0)
         return "''";
@@ -246,7 +260,11 @@ MSTeamsUtils.getTeamRoleSubSql = function (pTeamId, pContactIdField)
 }
 
 /**
+ * Checks if the user is an owner of the team
  * 
+ * @param {String} pTeamId                  the id of the team
+ * @param {String} [pUserId=current user]   the userId of the user
+ * @return {Boolean} true if the user is an owner
  */
 MSTeamsUtils.isUserTeamOwner = function (pTeamId, pUserId)
 {
@@ -259,4 +277,50 @@ MSTeamsUtils.isUserTeamOwner = function (pTeamId, pUserId)
     if (!user)
         return false;
     return user[tools.PARAMS][tools.TEAMS_AZUREID] in teams.getAllOwners(pTeamId);
+}
+
+/**
+ * Loads the properties of the team from the database.
+ * 
+ * @param {String} pTeamId      the id of the team
+ * @return {Object} Object with these properties:
+ *  <ul>
+ *      <li>teamName</li>
+ *      <li>webUrl</li>
+ *      <li>serviceUrl</li>
+ *      <li>isArchived</li>
+ *      <li>generalChannelId</li>
+ *  </ul>
+ *  If the team was not found, null is returned.
+ */
+MSTeamsUtils.getTeamInfo = function (pTeamId)
+{
+    var teamInfo = new SqlBuilder("Data_alias")
+        .select(["TEAMNAME", "WEB_URL", "SERVICE_URL", "IS_ARCHIVED", "GENERAL_CHANNELID"])
+        .from("MST_TEAM")
+        .whereIfSet("MST_TEAM.MST_TEAMID", pTeamId)
+        .arrayRow(true);
+    
+    if (teamInfo.length === 0)
+        return null;
+    
+    return {
+        teamName: teamInfo[0],
+        webUrl: teamInfo[1],
+        serviceUrl: teamInfo[2],
+        isArchived: Utils.toBoolean(teamInfo[3]),
+        generalChannelId: teamInfo[4]
+    };
+}
+
+/**
+ * Checks if the team is active
+ * 
+ * @param {String} pTeamId      the id of the team
+ * @return {Boolean} true, if the team exists and is not archived
+ */
+MSTeamsUtils.isTeamActive = function (pTeamId)
+{
+    var teamInfo = MSTeamsUtils.getTeamInfo(pTeamId);
+    return teamInfo != null && !teamInfo.isArchived;
 }
\ No newline at end of file