Name

sn_oe_sfs.CIUtil

Description

No description available

Script

var CIUtil = Class.create();

CIUtil.prototype = {
  initialize: function() {
      this.CI_PRODUCT_TOUR_TYPE = '55ae0554c32111104b8e88c7c840ddfb';
      this.CI_PRODUCT_TOUR_STEP_TYPE = '1e13d918c32111104b8e88c7c840ddc4';
      this.CONTENT_BLOCK_TABLE = 'sn_ace_content_block';
  },
  PROGRESS_CARD_CONSTANTS: {
      'REMAINING': gs.getMessage('remaining'),
      'ACHIEVED': gs.getMessage('Achieved'),
      'PROGRESS_TEXT': [{
              'range': [0, 20],
              'label': gs.getMessage('Off to a good start!')
          },
          {
              'range': [21, 80],
              'label': gs.getMessage('Let\'s keep it up!')
          },
          {
              'range': [81, 99],
              'label': gs.getMessage('Almost there!')
          },
          {
              'range': [100, 100],
              'label': gs.getMessage('Your a machine!')
          }
      ]
  },
  getBrandingSetupCount: function() {
      return this.getRowCount('sys_cs_branding_setup');
  },

  getProviderCount: function() {
      return this.getRowCount('sys_cs_provider');
  },

  getIntegrationsCount: function() {
      return this.getRowCount('sys_cs_provider_application', 'provider=e177dbf3530110102f40ddeeff7b12a7^ORprovider=41a04c42731210104049dec2c4f6a706^ORprovider=7068d549c39310106c9a5230d840dd91');
  },

  getInstalledTeamsCount: function() {
      return this.getRowCount('sys_cs_provider_application', 'provider=e177dbf3530110102f40ddeeff7b12a7');
  },

  getInstalledSlackCount: function() {
      return this.getRowCount('sys_cs_provider_application', 'provider=41a04c42731210104049dec2c4f6a706');
  },

  getInstalledWorkplaceCount: function() {
      return this.getRowCount('sys_cs_provider_application', 'provider=7068d549c39310106c9a5230d840dd91');
  },

  getContextVariableCount: function() {
      return this.getRowCount('sys_cs_virtual_agent_context', 'live_agent_setup=f0acbc4c5f091300e6333654de7313c8');
  },

  getPreChatSurveyCount: function() {
      return this.getRowCount('sys_cs_survey', 'type=prechat^EQ');
  },

  getTopicContextIntentCount: function() {
      return this.getRowCount('sys_cs_context_topic');
  },

  getSystemMessagesCount: function() {
      return this.getRowCount('sys_properties_category_m2m', 'category=4f33892a533e5010ad82ddeeff7b1218');
  },

  getPortalUrlMappingCount: function() {
      return this.getRowCount('sys_cs_portal_url_mapping');
  },

  getSensitiveDataRegexCount: function() {
      return this.getRowCount('sys_sensitive_data_handling_regex');
  },

  getQuickActionsCount: function() {
      return this.getRowCount('quickactions_workspace_action');
  },

  getTopicRecommendationSettingsCount: function() {
      return this.getRowCount('sn_topic_recommend_default_setting');
  },

  getDeflectionConfigurationCount: function() {
      return this.getRowCount('ssa_deflection_configuration', 'activity_context=7b43fb645383201033cdddeeff7b1246');
  },

  getContextProfileCount: function() {
      return this.getRowCount('sys_cs_context_profile');
  },

  getIARSimulationsCount: function() {
      return this.getRowCount('sys_cs_auto_resolution_simulation_configuration');
  },

  getMessagePreviewCount: function() {
      return this.getRowCount('sys_properties', 'name=com.glide.cs.settings.show_message_preview^ORname=com.glide.cs.settings.poll_frequency');
  },

  getActiveTopicsCount: function() {
      return this.getRowCount('sys_cs_topic', 'is_system_topic=false^type!=TOPIC_BLOCK^type!=SETUP_TOPIC^active=true');
  },

  isSensitiveDataHandlingInstalled: function() {
      return GlidePluginManager.isActive('com.glide.sensitive_data_handling');
  },

  isChatbotInstalled: function() {
      return GlidePluginManager.isActive('com.glide.cs.chatbot');
  },

  isChatbotLiteInstalled: function() {
      return GlidePluginManager.isActive('com.glide.cs.chatbot.lite');
  },

  isTopicRecommenderInstalled: function() {
      return GlidePluginManager.isActive('com.snc.va_topic_recommender');
  },

  isLiveAgentSettingsInstalled: function() {
      return GlidePluginManager.isActive('com.glide.cs.live_agent_settings');
  },

  isProfanityInstalled: function() {
      return GlidePluginManager.isActive('com.sn.va.profanity');
  },

  isQuickActionsInstalled: function() {
      return GlidePluginManager.isActive('com.glide.quickactions');
  },

  isVAAnalyticsInstalled: function() {
      return GlidePluginManager.isActive('sn_ci_analytics');
  },

  isIARInstalled: function() {
      return GlidePluginManager.isActive('com.glide.cs.auto_resolution');
  },

  isConnectSupportInstalled: function() {
      return GlidePluginManager.isActive('com.glide.connect.support');
  },

  isQuickActionsAvailable: function() {
      if (CIPlugin.QuickActions().isActive()) {
          var actionsGr = new GlideRecord('quickactions_workspace_action');
          var quickActionsAvailable = actionsGr.isValid() && actionsGr.canRead();
          return quickActionsAvailable;
      }
      return false;
  },

  isNluEnabled: function() {
      var generalSettingsGR = new GlideRecord("sys_cs_general_settings");
      if (generalSettingsGR.isValid()) {
          generalSettingsGR.query();
          if (generalSettingsGR.next()) {
              return generalSettingsGR.getValue('nlu_enabled') == 1;
          }
      }
      return false;
  },

  isEmailDigestEnabled: function() {
      var emailDigestGR = new GlideRecord("sys_cs_email_notification_settings");
      emailDigestGR.query();
      if (emailDigestGR.next()) {
          return emailDigestGR.getValue('enable_email_digest') == 1;
      }

      return false;
  },

  isMultipleActiveConversationsEnabled: function() {
  	var messagingChannelsGr = new GlideRecord('sys_cs_channel');
  	if (messagingChannelsGr.get('ea0cb816732110104a905ee515f6a7b5')) {
  		return messagingChannelsGr.getValue('supports_multiple_conversations') == 1;
  	}
      return false;
  },

  getDefaultConsumerAccountContext: function() {
  	var gr = new GlideRecord('sys_cs_consumer_account_context');
  	gr.addQuery('is_default', true);
      gr.query();
      if (gr.next()) {
  		if (gr.getValue('short_description')) {
  			return gr.getValue('short_description');
  		}
  		return gr.getValue('name');
  	}
  },

  isIarEnabled: function() {
      if (CIPlugin.IAR().isActive()) {
          var isIarEnabled = gs.getProperty('com.glide.cs.enable_auto_resolution') === 'true';
          var autoResolutionGR = new GlideRecordSecure('sys_cs_auto_resolution_configuration');
          if (isIarEnabled && autoResolutionGR.isValid()) {
              autoResolutionGR.addActiveQuery();
              autoResolutionGR.query();
              isIarEnabled = autoResolutionGR.hasNext();
          }
          return isIarEnabled;
      }
      return false;
  },

  isDeflectionTrackingEnabled: function() {
      return (gs.getProperty("com.glide.cs.va.deflection_tracking.enable") === "true");
  },

  isAiSearchInitialized: function() {
      return new sn_ais.StatusApi().isAisInitialized();
  },

  isAiSearchEnabled: function() {
      return new sn_ais.StatusApi().isAisEnabled();
  },

  isAiSearchServiceConfigured: function() {
      var grS = new GlideAggregate('sys_service');
      grS.addQuery('name', 'AISearch');
      if (grS.getCount() > 0)
          return true;
      return false;
  },

  isLiveAgentEnabled: function() {
      var chatSetupGr = new GlideRecord('sys_cs_live_agent_setup');
      chatSetupGr.setLimit(1);
      chatSetupGr.query();
      if (chatSetupGr.next()) {
          var liveAgentEnabled = chatSetupGr.getValue('live_agent_enabled');
          return liveAgentEnabled == "1";
      }
      return false;
  },

  getDeflectionConfigDetails: function(sysId) {
      var deflection_configuration_GR = new GlideRecord('ssa_deflection_configuration');
      deflection_configuration_GR.addQuery("sys_id", sysId);
      deflection_configuration_GR.query();
      if (deflection_configuration_GR.next()) {
          return {
              "id": sysId,
              "name": deflection_configuration_GR.getDisplayValue("name")
          };
      }
      return {};
  },

  getActivityPatternDetails: function(sysId) {
      var activityPatternGR = new GlideRecord('ssa_activity_pattern');
      activityPatternGR.addQuery("sys_id", sysId);
      activityPatternGR.query();
      var patternData = {};
      if (activityPatternGR.next()) {
          patternData.name = activityPatternGR.getValue("name");
          patternData.outcome = activityPatternGR.getValue("outcome");
          patternData.activity_table = activityPatternGR.primary_activity.activity_source_table.toString();
          patternData.feed_conditions = activityPatternGR.primary_activity.feed_conditions.getChoices();
      }
      return patternData;
  },

  getRowCount: function(tableName, encodedQuery) {
      if (!tableName) {
          return 0;
      }

      var aggregateGr = new GlideAggregate(tableName);
      if (encodedQuery) {
          aggregateGr.addEncodedQuery(encodedQuery);
      }
      aggregateGr.addAggregate('COUNT');
      aggregateGr.query();

      var count = aggregateGr.next() ? aggregateGr.getAggregate('COUNT') : 0;
      return count;
  },

  getLatestVersion: function(scopes) {
      var appDetailsMap = {};
      var appVersionGr = new GlideRecord("sys_app_version");
      appVersionGr.addQuery("block_install", false);
      var queryCondition = appVersionGr.addQuery("scope", scopes[0]);
      queryCondition.addOrCondition("scope", scopes);
      appVersionGr.query();
      while (appVersionGr.next()) {
          var scopeName = appVersionGr.getValue("scope");
          var app = {};
          app.name = appVersionGr.name.toString();
          app.version = appVersionGr.getValue("version");
          if (
              !appDetailsMap.hasOwnProperty(scopeName) ||
              (appDetailsMap.hasOwnProperty(scopeName) &&
                  new sn_appclient.VersionComparator().isUpgrade(
                      appDetailsMap[scopeName].version,
                      app.version
                  ))
          ) {
              appDetailsMap[scopeName] = app;
          }
      }
      return appDetailsMap;
  },

  getLastReviewedDate: function() {
      var dateTimeGr;
      var generalSettingsGR = new GlideRecordSecure("sys_cs_general_settings");
      if (generalSettingsGR.isValid()) {
          generalSettingsGR.query();
          if (generalSettingsGR.next())
              dateTimeGr = new GlideDateTime(generalSettingsGR.sys_updated_on);
      }
      return dateTimeGr.getDate();
  },

  isUpdateAvailable: function(scope) {

      if (!GlidePluginManager.isActive(scope))
          return false;

      var appDetailsMap = {};
      var storeAppGr = new GlideRecord("sys_app_version");
      storeAppGr.addQuery("block_install", false);
      storeAppGr.addQuery("scope", scope);
      storeAppGr.query();
      while (storeAppGr.next()) {
          var scopeName = storeAppGr.getValue("scope");
          var app = {};
          app.name = storeAppGr.name.toString();
          app.version = storeAppGr.getValue("version");
          if (
              !appDetailsMap.hasOwnProperty(scopeName) ||
              (appDetailsMap.hasOwnProperty(scopeName) &&
                  new sn_appclient.VersionComparator().isUpgrade(
                      appDetailsMap[scopeName].version,
                      app.version
                  ))
          ) {
              appDetailsMap[scopeName] = app;
          }
      }
      return Object.keys(appDetailsMap).length ? true : false;
  },

  getDaysPastTheDate: function(dateStr) {
      var todayGdr = new GlideDate();

      var lastReviewedGdr = new GlideDate();
      lastReviewedGdr.setDisplayValue(dateStr);

      var duration = GlideDate.subtract(lastReviewedGdr, todayGdr);
      return duration.getDayPart();
  },

  getDaysPastDateTime: function(dateTimeStr) {
      var dateTime = new GlideDateTime(dateTimeStr);
      var dateStr = dateTime.getDate();

      return this.getDaysPastTheDate(dateStr);
  },

  isBUPluginInstalled: function() {
      return (GlidePluginManager.isActive("com.snc.itsm.virtualagent") ||
          GlidePluginManager.isActive("com.sn_csm.virtualagent") ||
          GlidePluginManager.isActive("com.sn_hr_virtual_agent") ||
          this.isAddtnlBUPluginInstalled());
  },

  isAddtnlBUPluginInstalled: function() {
      return (GlidePluginManager.isActive("com.sn_fsm.virtualagent") ||
          GlidePluginManager.isActive("com.snc.ppm_virtualagent") ||
          GlidePluginManager.isActive("com.sn_lg_virtual_agent") ||
          GlidePluginManager.isActive("com.sn_grc_virt_agent") ||
          GlidePluginManager.isActive("com.glide.isc_virtualagent"));
  },

  isAllBUPluginsInstalled: function() {
      return (GlidePluginManager.isActive("com.snc.itsm.virtualagent") &&
          GlidePluginManager.isActive("com.sn_csm.virtualagent") &&
          GlidePluginManager.isActive("com.sn_hr_virtual_agent") &&
          this.isAllAddtnlBUPluginsInstalled());
  },

  isAllAddtnlBUPluginsInstalled: function() {
      return (GlidePluginManager.isActive("com.sn_fsm.virtualagent") &&
          GlidePluginManager.isActive("com.snc.ppm_virtualagent") &&
          GlidePluginManager.isActive("com.sn_lg_virtual_agent") &&
          GlidePluginManager.isActive("com.sn_grc_virt_agent") &&
          GlidePluginManager.isActive("com.glide.isc_virtualagent"));
  },

  isInStage1: function() {
      var isChatbotInstalled = GlidePluginManager.isActive('com.glide.cs.chatbot');
      return !isChatbotInstalled;
  },

  isInStage2: function() {
      var isChatbotInstalled = GlidePluginManager.isActive('com.glide.cs.chatbot');
      var isBUPluginInstalled = this.isBUPluginInstalled();

      return isChatbotInstalled && !isBUPluginInstalled;
  },

  isInStage3: function() {
      var isChatbotInstalled = GlidePluginManager.isActive('com.glide.cs.chatbot');
      var isBUPluginInstalled = this.isBUPluginInstalled();

      return isChatbotInstalled && isBUPluginInstalled;
  },

  getBreadCrumbPathForRoute: function(route, fields, params) {
      if (!route) {
          return [];
      }

      if (route.endsWith('/')) {
          route = route.slice(0, -1);
      }

      var experiencePath = new sn_oe_sfs.CIListRecordPropsMetadata().EXPERIENCE_PATH;
      var routePath = experiencePath + route;

      if (Array.isArray(fields) && fields.length) {
          fields.forEach(function(field) {
              routePath += '/' + fields[key];
          });
      }

      if (params && Object.keys(params).length) {
          routePath += '/params';
          Object.keys(params).forEach(function(key) {
              if (fields.hasOwnProperty(key)) {
                  routePath += '/' + key + '/' + fields[key];
              }
          });
      }

      return routePath;
  },
  _getRemainingStatusCount: function(items) {
      var count = {
          'total': 0,
          'remaining': 0
      };
      try {
          if (!items) return count;
          var remainingCount = 0;
          items.forEach(function(item) {
              if (item.props_details && item.props_details.status)
                  count.remaining += item.props_details.status == 'start' ? 1 : 0;
              count.total += 1;
          });
          return count;
      } catch (e) {
          return count;
      }
  },
  _getProgressText: function(remaining, total) {
      var pConstants = this.PROGRESS_CARD_CONSTANTS;
      var progressTextMap = pConstants.PROGRESS_TEXT;
      var completed = total - remaining;
      var percentageCompleted = parseInt(completed / total * 100);
      progressTextMap.forEach(function(progressRange) {
          if (percentageCompleted >= progressRange.range[0] && percentageCompleted <= progressRange.range[1]) return progressRange.label;
      });
      return progressTextMap[0].label;
  },
  getChecklistCardItemStatus: function(items) {
      var pConstants = this.PROGRESS_CARD_CONSTANTS;
      var status = this._getRemainingStatusCount(items);
      var response = status.remaining == 0 ? {
          'badge_color': 'positive',
          'badge_label': pConstants.ACHIEVED
      } : {
          'badge_color': 'info',
          'badge_label': status.remaining + ' ' + pConstants.REMAINING
      };
      return response;
  },
  getChecklistCardStatus: function(items) {
      var _self = this;
      var cardCount = {
          'total': 0,
          'remaining': 0,
          'progress_text': null,
          'expandedIdx': -1
      };
      items.forEach(function(item, idx) {
          var eachItemStatus = _self._getRemainingStatusCount(item.children);
          cardCount.total += eachItemStatus.total;
          cardCount.remaining += eachItemStatus.remaining;
          if (cardCount.expandedIdx === -1 && eachItemStatus.remaining > 0) {
              cardCount.expandedIdx = idx;
          }
      });
      cardCount.progress_text = _self._getProgressText(cardCount.remaining, cardCount.total);
      return cardCount;
  },

  sortChecklistCardItems: function(items) {
      items.sort(function(block1, block2) {
          if (block1.props_details.status === block2.props_details.status) return parseInt(block1.order) - parseInt(block2.order);
          if (block1.props_details.status === 'skip') return 1;
          if (block2.props_details.status === 'skip') return -1;
          if (block1.props_details.status === 'complete') return 1;
          if (block2.props_details.status === 'complete') return -1;
      });
      return items;
  },

  getContentBlockContext: function(contentBlockId, contextKey) {
      var aceContextUtil = new sn_ace.ACEAppContextUtil();
      var contextBlock = this.safeParse(aceContextUtil.getContentBlockContext(contentBlockId));

      if (contextKey) {
          return contextBlock[contextKey];
      } else {
          return contextBlock;
      }
  },

  setContentBlockContext: function(contentBlockId, contextValuesToSet) {
      if (!contextValuesToSet)
          return;

      var aceContextUtil = new sn_ace.ACEAppContextUtil();
      var contextBlock = this.safeParse(aceContextUtil.getContentBlockContext(contentBlockId));

      for (var property in contextValuesToSet) {
          contextBlock[property] = contextValuesToSet[property];
      }

      aceContextUtil.setContentBlockContext(contentBlockId, contextBlock);
  },

  setCtaCardPropsFromContext: function(ctaCard) {
      if (!ctaCard || !ctaCard.block_id)
          return;

      var cardBlockId = ctaCard.block_id;
      var propsFromContext = this.getContentBlockContext(cardBlockId);

      ctaCard.props_details = ctaCard.props_details || {};
      ctaCard.props_details.dismissed_on = propsFromContext.dismissed_on || '';
      ctaCard.props_details.last_action_on = propsFromContext.last_action_on || '';
      ctaCard.props_details.last_reviewed_on = propsFromContext.last_reviewed_on || '';

      return ctaCard;
  },

  safeParse: function(json) {
      if (!json) {
          return {};
      }

      var isObject = ((typeof json) === 'object');
      if (isObject) {
          return json;
      }

      var isString = (Object.prototype.toString.call(json) === '[object String]');
      if (isString) {
          try {
              return JSON.parse(json);
          } catch (e) {
              return {};
          }
      }
      return {};
  },

  getTopicId: function(topic) {
      if (!topic) return '';
      var gr = new GlideRecord('sys_cb_topic');
      gr.addQuery('name', topic);
      gr.setLimit(1);
      gr.query();
      if (gr.next())
          return gr.getUniqueValue();
      return '';
  },
  isAWAConsoleInStage1: function() {
      var isAWAPluginInstalled = GlidePluginManager.isActive('com.glide.awa');
      return !isAWAPluginInstalled;
  },
  getProductTour: function(appId, table) {
      try {
          var appConfigTable = new sn_ace.ACEAppBuilderMetaData().TABLES.APP_CONFIG;
          var appBuilderUtil = new sn_ace.ACEAppBuilderUtil();
          var _self = this;
          var productTours = appBuilderUtil._getContentBlocks('', {
              'document_table': appConfigTable,
              'document_id': appId,
              'type': this.CI_PRODUCT_TOUR_TYPE
          });
          var productTour = productTours.reduce(function(acc, item) {
              if (item.props_details && item.props_details.target_table && item.props_details.target_table === table) acc = item;
              return acc;
          }, null);
          if (productTour) {
              productTour.children = appBuilderUtil._getContentBlocks(productTour.block_id, {
                  'document_table': appConfigTable,
                  'document_id': appId,
                  'type': this.CI_PRODUCT_TOUR_STEP_TYPE
              });
          }
          return productTour;
      } catch (e) {
          gs.info(e.toString());
          gs.info('Failed fetching product tours for App: ' + appId + ' and table: ' + table);
          return null;
      }
  },
  isAWABUPluginInstalled: function() {
      return GlidePluginManager.isActive('com.snc.incident.awa') ||
          GlidePluginManager.isActive('com.sn_customerservice') ||
          GlidePluginManager.isActive('com.sn_hr_awa');
  },
  isAWAConsoleInStage2: function() {
      var isAWAPluginInstalled = GlidePluginManager.isActive('com.glide.awa');
      return isAWAPluginInstalled && !this.isAWABUPluginInstalled();
  },
  isAWAConsoleInStage3: function() {
      var isAWAPluginInstalled = GlidePluginManager.isActive('com.glide.awa');
      return isAWAPluginInstalled && this.isAWABUPluginInstalled();

  },

  showAWAAffinityCard: function() {
      return GlidePluginManager.isActive('com.glide.awa.agent_affinity');
  },
  showAWAShiftPluginCard: function() {
      return GlidePluginManager.isActive('com.sn_shift_planning');
  },
  showAWAAdvancedSettings: function() {
      return this.showAWAAffinityCard() || this.showAWAShiftPluginCard();
  },
  getAWAHomePlugins: function(payload) {


      var result = {
          availablePlugins: [],
          installedPlugins: []
      };

      payload.forEach(function(item) {
          var link = {
              "label": "",
              "href": "",
              "icon": "open-link-right-outline"
          };
          link.label = item.displayName;
          link.href = item.appLink;
          item.isInstalled = GlidePluginManager.isActive(item.id);
          if (item.isInstalled)
              result.installedPlugins.push(link);
          else
              result.availablePlugins.push(link);
      });

      return result;
  },

  getSSOConfigurationStatus: function() {
      var statusLabel, statusColor, statusIcon, buttonLabel;
      var azureUtils = new sn_now_azure.MSAzureUtils();
      var tenantId = azureUtils.getInstalledTenantID();
      var providerAppUtil = new VACommonProviderAppUtil();
      var providerApp = tenantId ? providerAppUtil.getProviderApplicationDetails(tenantId) : null;
      var providerAppId = providerApp ? providerAppUtil.getProviderApplicationId(tenantId) : null;
      var tenantName = providerApp ? providerApp['name'] : '';
      var appIdRecordId = tenantId && providerAppId ? this.getTeamsAppIdRecordId(providerAppId) : null;
      var buttonLink = gs.getProperty('glide.servlet.uri') + '/sn_now_azure_app_installer.do';
      var appId = providerAppId ? sn_cs.VASystemObject.getCustomAdapterPropertyWithHierarchy('app_id', providerAppId) : null;

      if (tenantId && providerApp && azureUtils.isAppConsented(azureUtils.getAzureAppId('sso')) && appId && appId != '') {
          statusLabel = gs.getMessage('On');
          statusColor = 'positive';
          statusIcon = 'check-outline';
          buttonLabel = 'Manage';
      } else {
          statusLabel = gs.getMessage('Off');
          statusColor = 'gray';
          statusIcon = 'ban-outline';
          buttonLabel = 'Configure SSO';
      }

      return {
          label: statusLabel,
          color: statusColor,
          icon: statusIcon,
          variant: 'secondary',
          tenantName: tenantName,
          tenantId: tenantId,
          buttonLabel: buttonLabel,
          buttonLink: buttonLink,
          recordSysId: appIdRecordId,
          scope: this.getSessionUserScope()
      };
  },
  getTeamsAppIdRecordId: function(providerAppId) {
      var gr = new GlideRecord('sys_cs_custom_adapter_property');

      gr.addQuery('name', 'app_id');
      gr.addQuery('document_record', providerAppId);
      gr.addQuery('document_table', 'sys_cs_provider_application');

      gr.query();

      if (!gr.next()) {
          gr.initialize();
          gr.setValue('name', 'app_id');
          gr.setValue('value', '');
          gr.setValue('document_record', providerAppId);
          gr.setValue('document_table', 'sys_cs_provider_application');
          gr.setValue('sys_scope', '8be385e4776110105d7b3882a910610e'); // setting the scope to Conversational Integration with Micosoft Teams
          gr.insert();
      }

      return gr.getUniqueValue();
  },
  getSessionUserScope: function() {
      var app = new GlideRecord('sys_scope');
      app.get(gs.getSession().getCurrentApplicationId());
      return app.getValue('name');
  },
  type: 'CIUtil'
};

Sys ID

921f0389c3d20110fc869bc8a840ddc8

Offical Documentation

Official Docs: