NotifyUtil - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 8 min. de leitura
  • . NotifyUtil A inclusão de script fornece métodos de utilitário a serem usados ao interagir com chamadas do Notify e mensagens SMS usando scripts do lado do servidor.

    Para usar esta inclusão de script, você deve ativar o plug-in Notify (com.snc.notify).

    Usando o. NotifyUtil inclusão de script você pode:

    • Obtenha todos os números de telefone do Notify e as informações do Notify relacionadas de um registro de origem especificado.
    • Obtenha uma lista de números de telefone exclusivos do Notify.
    • Determine se há chamadas em conferência ativas para o registro de origem especificado.
    • Obtenha o número compatível com SMS associado ao usuário do Notify especificado.
    • Valide um número de telefone do Notify especificado.

    NotifyUtil - NotifyUtil()

    Instancia um objeto de classe NotifyUtil.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum(a)

    Este exemplo instancia um objeto NotifyUtil.

    var notifyUtil = new NotifyUtil(); 
    notifyUtil.getTelephonyProviers();

    NotifyUtil - getListOfNotifyNumbersAndProviders(cadeia de caracteres sourceTable, cadeia de caracteres sourceSysId, cadeia de caracteres notificyGroupSelectorSysId, filtro booliano SMSCapaphNums)

    Retorna todos os números de telefone do Notify e as informações do Notify relacionadas de um registro de origem especificado, como um incidente.

    Você pode usar essas informações para iniciar uma chamada ou enviar uma mensagem SMS em um registro de origem específico. As informações retornadas são baseadas na configuração da estrutura do Seletor de provedor do Notify. Para obter informações adicionais, consulte Notificar

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    FilterSMSCapableNums Booliano Opcional. Sinalizador que indica se somente números compatíveis com SMS devem ser retornados.
    Valores válidos:
    • Verdadeiro: Retorna somente números de telefone compatíveis com SMS e informações.
    • Falso: Retorna todos os números de telefone e informações do Notify.

    Padrão: falso

    NotifyGroupSelectorSysId Cadeia de caracteres Opcional. Sys_id de um grupo do Notify para o qual retornar os números e as informações do Notify.

    Padrão: Todos os grupos

    sourceSysId Cadeia de caracteres Sys_id do registro de origem para o qual os números e as informações do Notify serão retornados. Por exemplo, pode ser o sys_id de um registro na tabela Incidente [incidente].
    sourceTable Cadeia de caracteres Nome da tabela que contém o registro de origem que contém os números e as informações do Notify desejados.
    Tabela 3. Retornos
    Tipo Descrição
    ConfProviders Lista de provedores de conferência disponíveis.

    Tipo de dados: Matriz

    números Lista de objetos, cada um descrevendo um único número do Notify.

    Tipo de dados: Matriz

    "numbers": [{
      "defaultFlag": Boolean,
      "name": "String",
      "number": "String",
      "shortCode": Boolean,
      "sysId": "String
    }]
    numbers.defaultFlag Sinalizador que indica se o número do Notify associado é o número padrão.
    Valores possíveis:
    • Verdadeiro: Número padrão
    • Falso: Não é o número padrão

    Tipo de dados: Booliano

    numbers.name Nome ou rótulo do número.

    Tipo de dados: Cadeia de caracteres

    numbers.number Número do Notify.

    Tipo de dados: Cadeia de caracteres

    Numbers.shortcode Sinalizador que indica se o número do Notify associado é um código curto.
    Valores possíveis:
    • Verdadeiro: Código curto
    • Falso: Não é um código curto

    Tipo de dados: Booliano

    Numbers.SYSID Sys_id do número do Notify.

    Tipo de dados: Cadeia de caracteres

    Este exemplo mostra como obter os números de telefone do Notify e as informações do Notify relacionadas de um registro de origem especificado.

    function updateConferenceBridges(sourceTable, sourceId) {
    
      var notifyUtil = new global.NotifyUtil();
      var numbersAndProviders = notifyUtil.getListOfNotifyNumbersAndProviders(sourceTable, sourceId);
      var confBridges = [];
      if (numbersAndProviders.confProviders) {
        numbersAndProviders.confProviders.forEach(function(provider){
        confBridges.push(provider);
        });
      }
      if (numbersAndProviders.numbers) {
        numbersAndProviders.numbers.forEach(function(number){
          confBridges.push(number.name);
        });
      }
    } 

    NotifyUtil - getSMSNumberForUser(cadeia de caracteres userGrOrId)

    Retorna o número compatível com SMS associado ao usuário do Notify especificado.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    UserGROrId Cadeia de caracteres ou GlideRecord - Global Sys_id do registro do usuário,

    Tabela: Tabela do usuário [sys_user] ou o sys_user GlideRecord do usuário para quem retornar o número de telefone compatível com SMS.

    Tabela 5. Retornos
    Tipo Descrição
    Cadeia de caracteres Número de telefone compatível com SMS do usuário. Retorna nulo se o usuário especificado não for encontrado.

    Este exemplo mostra como obter um número de telefone compatível com SMS usando o GlideRecord associado.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var nUtil = new NotifyUtil();
      var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
      var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
      if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
      }
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      }
      return prop;
    } 
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    } 

    NotifyUtil - getUniquePhoneNumbersForUsersAndGroups(Números de matriz, usuários de matriz, grupos de matriz, tipo de cadeia de caracteres, getData booliano)

    Retorna uma lista de números de telefone exclusivos do Notify.

    Se você não passar nenhum parâmetro na chamada, todos os números do Notify na tabela Número de telefone do Notify [notify_number] serão verificados quanto a duplicatas, com cada número de telefone disponível aparecendo apenas uma vez na lista retornada. Você pode refinar os resultados retornados especificando uma lista de usuários ou grupos a serem verificados ou especificando um conjunto de números ou tipos de números (SMS ou voz). Você também pode solicitar que os metadados associados a cada número sejam retornados junto com os números exclusivos. Se você não quiser usar um parâmetro, basta passar nulo como um espaço reservado. Por exemplo: Retorna nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userids, null, 'sms', false); .

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    ObtData Booliano Opcional. Sinalizador que indica se os metadados devem ser retornados junto com a lista de números de telefone exclusivos.
    Valores válidos:
    • Verdadeiro: Retorna metadados.
    • Falso: Não retorna metadados.

    Padrão: falso

    grupos Matriz Opcional. Lista de grupos sys_id a serem verificados.

    Padrão: Marque todos os grupos.

    Tabela: Grupo [sys_user_group]

    números Matriz Opcional. Lista de números de telefone específicos do Notify a serem verificados.

    Padrão: Verifique todos os números de telefone.

    tipo Cadeia de caracteres Opcional. Tipos de números de telefone a serem verificados.
    Valores válidos (diferencia maiúsculas de minúsculas):
    • serviços de voz
    • sms

    Padrão: Marque todos os tipos de número de telefone

    usuários Matriz Opcional. Lista de sys_ids de usuários específicos a serem verificados.

    Padrão: Marque todos os usuários

    Tabela: Usuário [sys_user]

    Tabela 7. Retornos
    Nome Descrição
    números Números de telefone exclusivos do Notify.

    Tipo de dados: Matriz

    resultado Retornado somente se getDatadefinido como verdadeiro. Metadados associados a cada número exclusivo.
    Tipo de dados: Objeto
    "result": {
      "number": "String",
      "sysId": "String",
      "type": "String",
      "valid": Boolean
    }
    resultado.número Número de telefone exclusivo do Notify.

    Tipo de dados: Cadeia de caracteres

    SYSID.resultado Sys_id do registro que contém o número de telefone do Notify.

    Tipo de dados: Cadeia de caracteres

    Tabela: Número de telefone do Notify [notify_number]

    result.type Sempre contém "u" para o usuário.

    Tipo de dados: Cadeia de caracteres

    resultado.válido Sinalizador que indica se o número de telefone do Notify está no formato E.164 válido.
    Valores possíveis:
    • Verdadeiro: Formato E.164 válido.
    • Falso: Não está no formato E.164.

    Tipo de dados: Booliano

    Este exemplo mostra como solicitar um conjunto específico de números de telefone do Notify exclusivos que tenham recursos de SMS.

    var fromNumber = getFromNumber();
    var toNumbers = getRecipientNumbers();
    var message = 'This is an example SMS';
    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var notifySMS = new NotifySMS();
      notifySMS.sendToNumber(fromNumber, toNumbers, message, sourceRecord);
    }
    
    function getRecipientNumbers() {
      var userGr = new GlideRecord('sys_user');
      userGr.addActiveQuery();
      userGr.addQuery('first_name', 'STARTSWITH', 'A');
      userGr.setLimit(5);
      userGr.query(); 
      var userIds = [];
      while (userGr.next()) {
        userIds.push(userGr.getUniqueValue());
      }
      if (userIds.length > 0) {
        var nUtil = new NotifyUtil();
        return nUtil.getUniquePhoneNumbersForUsersAndGroups(null, userIds, null, 'sms', false);
      } 
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      } 
      return prop; 
    }
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    }

    NotifyUtil - hasActiveConferenceCalls(cadeia de caracteres sourceRecSysId)

    Determina se há chamadas em conferência ativas para o registro de origem especificado.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    SourceRecSysId Cadeia de caracteres Sys_id do registro para verificar se há chamadas em conferência ativas. Por exemplo, o sys_id de um registro na tabela Incidente.
    Tabela 9. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o registro especificado tem chamadas em conferência ativas associadas.
    Valores possíveis:
    • Verdadeiro: Chamadas em conferência ativas estão disponíveis para o registro especificado.
    • Falso: Não há chamadas em conferência ativas.

    Este exemplo exibe uma mensagem informativa se houver chamadas em conferência ativas associadas a um registro de incidente.

    (function executeRule(current, previous /*null when async*/) {
      var nUtil = new NotifyUtil();
      if (nUtil.hasActiveConferenceCalls(current.getUniqueValue())) {
        gs.addInfoMessage("There are active conference calls related to this Incident.");
      } 
    })(current, previous);

    NotifyUtil - validateOutboundNotifyPhoneNumber (número de cadeia de caracteres)

    Valida um número de telefone do Notify especificado.

    O método executa três tipos de validação:
    1. Se o número do Notify existe na tabela Número de telefone do Notify [notify_number].
    2. Se o número do Notify tem um grupo do Notify associado a ele.
    3. Se o número do Notify está ativo.
    Se qualquer uma dessas validações falhar, o método lançará uma exceção.
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    número Cadeia de caracteres Número do Notify a ser validado.
    Tabela 11. Retornos
    Tipo Descrição
    Nenhum(a)

    Este exemplo ilustra como validar um número do Notify.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var nUtil = new NotifyUtil();
      var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
      var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
      if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
      }
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      }
      return prop;
    } 
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    } 

    NotifyUtil - validatePhoneNumber (número de cadeia de caracteres)

    Verifica se o número especificado é um número de telefone E.164 válido.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    número Cadeia de caracteres Número de telefone a ser validado.
    Tabela 13. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se o número especificado é um número de telefone válido.
    Valores possíveis:
    • Verdadeiro: Número de telefone E.164 válido.
    • Falso: Número de telefone inválido.

    Este exemplo ilustra como validar um número de telefone.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var nUtil = new NotifyUtil();
      var toNumber = nUtil.getSMSNumberForUser(sourceRecord.assigned_to.getRefRecord());
      var message = 'Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you.';
      if (fromNumber && nUtil.validateOutboundNotifyPhoneNumber(fromNumber) && toNumber && nUtil.validatePhoneNumber(toNumber)) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToNumber(fromNumber, toNumber, message, sourceRecord);
      }
    }
    
    function getFromNumber() {
      var prop = gs.getProperty('custom_property_name', '');
      if (!prop){
        return getFallbackFromNumber();
      }
      return prop;
    } 
    
    function getFallbackFromNumber() {
      var notifyNumGr = new GlideRecord("notify_number");
      notifyNumGr.addActiveQuery();
      notifyNumGr.addQuery('has_sms_out', 'yes');
      notifyNumGr.query();
      if (notifyNumGr.next()) {
        return notifyNumGr.number + '';
      }
      return '';
    }