NotifySMS - Global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 10 min. de leitura
  • A API NotifySMS fornece métodos que permitem enviar mensagens SMS (Short Message Service) de números de telefone do Notify para dispositivos usando seus números de telefone ou um GlideRecord que tem um campo que contém informações do número de telefone.

    Para usar esta API, você deve ativar o plug-in Notify (com.snc.notify).

    NotifySMS - NotifySMS()

    Cria uma instância de um objeto NotifySMS.

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

    Este exemplo mostra como criar uma instância de um objeto NotifySMS.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var groupId = sourceRecord.assignment_group + '';
      var toGr = getRecipientGRs(groupId);
      var message = 'An Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to your group';
      if (fromNumber && toGr) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToUsers(fromNumber, toGr, message, sourceRecord);
      } 
    }

    NotifySMS - sendBulkSMS(cadeia de caracteres fromNumber, matriz toNumber, mensagem de cadeia de caracteres, GlideRecord sourceRecord)

    Aciona uma ação de fluxo assíncrona que envia uma mensagem SMS (Short Message Service) de um número de telefone do Notify especificado para uma lista de números de telefone.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    deNúmero Cadeia de caracteres Número de telefone do Notify que envia a mensagem SMS.
    paraNúmero Matriz Lista de números de telefone para receber a mensagem SMS.
    message Cadeia de caracteres Mensagem a ser enviada.
    sourceRecord GlideRecord Opcional. Incidente GlideRecord a ser armazenado no campo Origem do registro de mensagem SMS associado na tabela Notify Message [notify_message]. Isso vincula o registro de incidente que causou a geração da mensagem SMS a essa mensagem SMS.

    Padrão: Nenhum. Se este parâmetro não for passado, essas informações não serão rastreadas.

    Tabela 3. Retorna
    Tipo Descrição
    ScriptableFlowRunnerResult ScriptableFlowRunnerResult - com escopo objeto.

    O exemplo de código a seguir mostra como você pode usar este método para enviar uma mensagem SMS em massa.

    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.sendBulkSMS(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 '';
    }

    NotifySMS - sendToNumber(cadeia de caracteres fromNumber, cadeia de caracteres toNumber, cadeia de caracteres mensagem, objeto sourceRecord)

    Envia uma mensagem SMS (Short Message Service) de um número de telefone do Notify especificado para um número de telefone especificado.

    Além disso, você pode opcionalmente associar o registro de incidente que causou a geração da mensagem SMS à mensagem SMS.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    deNúmero Cadeia de caracteres Número de telefone do Notify que envia a mensagem SMS.
    message Cadeia de caracteres Mensagem a ser enviada.
    sourceRecord GlideRecord - Global Opcional. Incidente GlideRecord a ser armazenado no campo Origem do registro de mensagem SMS associado na tabela Notify Message [notify_message]. Isso vincula o registro de incidente que causou a geração da mensagem SMS a essa mensagem SMS.

    Padrão: Nenhum. Se este parâmetro não for passado, essas informações não serão rastreadas.

    paraNúmero Cadeia de caracteres Número de telefone do dispositivo para receber a mensagem SMS.
    Tabela 5. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir ilustra como enviar uma mensagem SMS para um número de telefone especificado e carimbar o registro de incidente associado com as informações da mensagem.

    var fromNumber = getFromNumber();  
    var toNumber = '+123456789';  
    var message = 'This is an example SMS';  
    var sourceRecord = new GlideRecord('incident');  
    sourceRecord.query();  
    if (sourceRecord.next()) { 
      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 ''; 
    } 

    NotifySMS - sendToNumbers(cadeia de caracteres fromNumber, matriz toNumber, mensagem de cadeia de caracteres, objeto sourceRecord)

    Envia uma mensagem SMS (Short Message Service) de um número de telefone do Notify especificado para uma lista de números de telefone.

    Além disso, você pode opcionalmente associar o registro de incidente que fez com que a mensagem SMS fosse gerada com a mensagem SMS.

    Nota:
    Tabela 6. Parâmetros
    Nome Tipo Descrição
    deNúmero Cadeia de caracteres Número de telefone do Notify que envia a mensagem SMS.
    message Cadeia de caracteres Mensagem a ser enviada.
    sourceRecord GlideRecord - Global Opcional. Incidente GlideRecord a ser armazenado no campo Origem do registro de mensagem SMS associado na tabela Notify Message [notify_message]. Isso vincula o registro de incidente que causou a geração da mensagem SMS a essa mensagem SMS.

    Padrão: Nenhum. Se este parâmetro não for passado, essas informações não serão rastreadas.

    paraNúmero Matriz Lista de números de telefone para receber a mensagem SMS.
    Tabela 7. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir ilustra como enviar uma mensagem SMS para vários números de telefone e armazenar as informações no registro de incidente associado.

    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.sendToNumbers(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 '';
    } 

    NotifySMS - sendToUser(cadeia de caracteres fromNumber, Object toGr, String message, Object sourceRecord)

    Envia uma mensagem SMS (Short Message Service) de um número de telefone especificado para o usuário identificado em um GlideRecord especificado.

    Este método extrai o número de telefone do GlideRecord especificado. Além disso, você pode opcionalmente associar o registro de incidente que fez com que a mensagem SMS fosse gerada com a mensagem SMS.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    deNúmero Cadeia de caracteres Número de telefone do Notify que envia a mensagem SMS.
    message Cadeia de caracteres Mensagem a ser enviada.
    sourceRecord GlideRecord - Global Opcional. Incidente GlideRecord a ser armazenado no campo Origem do registro de mensagem SMS associado na tabela Notify Message [notify_message]. Isso vincula o registro de incidente que causou a geração da mensagem SMS a essa mensagem SMS.

    Padrão: Nenhum. Se este parâmetro não for passado, essas informações não serão rastreadas.

    toGr GlideRecord - Global GlideRecord de um tipo de registro que contém um campo que é resolvido para o número de telefone de um usuário. O tipo de registro deve estar correlacionado ao tipo de registro usado pelo resolvedor de número de telefone implementado no momento. Um resolvedor de número de telefone é simplesmente um método que obtém o número de telefone do usuário de um tipo específico de GlideRecord, como um registro de usuário ou um registro de caso. Ao usar o resolvedor padrão, os registros correspondem à tabela Usuário [sys_user].

    Para mudar o tipo de registro que o resolvedor usa para obter o número de telefone, use o método NotifySMS - setRecordToNumberResolver(objeto scriptIncludeInstance, cadeia de caracteres "methodName").

    Tabela 9. Retorna
    Tipo Descrição
    Nenhum

    O exemplo a seguir ilustra como enviar uma mensagem SMS para um usuário identificado no registro de Incidente associado e carimbar o registro de Incidente associado com as informações da mensagem.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var toGr = sourceRecord.assigned_to.getRefRecord();
      var message = 'An Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to you'; 
      if (fromNumber && toGr.isValidRecord()) { 
        var notifySMS = new NotifySMS();
        notifySMS.sendToUser(fromNumber, toGr, 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 ''; 
    } 

    NotifySMS - sendToUsers(cadeia de caracteres fromNumber, Object toGr, String message, Object sourceRecord)

    Envia uma mensagem SMS (Short Message Service) de um número de telefone do Notify especificado para usuários encontrados em um GlideRecord especificado.

    Este método extrai os números de telefone de destino do GlideRecord passado. Além disso, você pode opcionalmente associar o registro de incidente que fez com que a mensagem SMS fosse gerada com a mensagem SMS.

    Nota:
    Tabela 10. Parâmetros
    Nome Tipo Descrição
    deNúmero Cadeia de caracteres Número de telefone do Notify que envia a mensagem SMS.
    message Cadeia de caracteres Mensagem a ser enviada.
    sourceRecord GlideRecord - Global Opcional. Incidente GlideRecord a ser armazenado no campo Origem do registro de mensagem SMS associado na tabela Notify Message [notify_message]. Isso vincula o registro de incidente que causou a geração da mensagem SMS a essa mensagem SMS.

    Padrão: Nenhum. Se este parâmetro não for passado, essas informações não serão rastreadas.

    toGr GlideRecord - Global GlideRecord de um tipo de registro que contém um campo que é resolvido para o número de telefone de um usuário. O tipo de registro deve estar correlacionado ao tipo de registro usado pelo resolvedor de número de telefone implementado no momento. Um resolvedor de número de telefone é simplesmente um método que obtém o número de telefone do usuário de um tipo específico de GlideRecord, como um registro de usuário ou um registro de caso. Ao usar o resolvedor padrão, os registros correspondem à tabela Usuário [sys_user].

    Para mudar o tipo de registro que o resolvedor usa para obter o número de telefone, use o método NotifySMS - setRecordToNumberResolver(objeto scriptIncludeInstance, cadeia de caracteres "methodName").

    Tabela 11. Retorna
    Tipo Descrição
    Nenhum

    Este exemplo mostra como enviar uma mensagem SMS para usuários em um registro de incidente especificado.

    var sourceRecord = new GlideRecord('incident');
    sourceRecord.query();
    if (sourceRecord.next()) {
      var fromNumber = getFromNumber();
      var groupId = sourceRecord.assignment_group + '';
      var toGr = getRecipientGRs(groupId);
      var message = 'An Incident ' + sourceRecord.getDisplayValue() + ' has been assigned to your group';
      if (fromNumber && toGr) {
        var notifySMS = new NotifySMS();
        notifySMS.sendToUsers(fromNumber, toGr, 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 ''; 
    }
    
    function getRecipientGRs(groupId) {
      if (!groupId)
        return;
      var userMemberGr = new GlideRecord('sys_user_grmember');
      userMemberGr.addQuery('group', groupId);
      userMemberGr.query();
      var userIds = [];
      while (userMemberGr.next()) {
        userIds.push(userMemberGr.user + ''); 
      }
      var userGr = new GlideRecord('sys_user');
      userGr.addActiveQuery();
      userGr.addQuery('sys_id', 'IN', userIds.join(','));
      userGr.query();
      return userGr; 
    } 

    NotifySMS - setRecordToNumberResolver(objeto scriptIncludeInstance, cadeia de caracteres "methodName")

    Define o método em uma inclusão de script a ser usado para obter o número de telefone de destino no GlideRecord que é passado nos métodos NotifySMS.sendToUser() e NotifySMS.sendToUsers().

    Por padrão, o método NotifyUtil.getSMSNumberForUser() é usado para obter o número de telefone de um GlideRecord baseado em usuário [sys_user]. Use o método setRecordToNumberResolver() se precisar criar um método personalizado para obter essas informações de um tipo de registro diferente, como um registro de caso.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    nomeDométodo Cadeia de caracteres Nome do método a ser usado para obter o número de telefone de destino em um GlideRecord.
    scriptIncludeInstance Objeto Instância da inclusão de script que contém o método de resolução de número especificado.
    Tabela 13. Retorna
    Tipo Descrição
    Nenhum

    Este exemplo mostra como definir o resolvedor de número de telefone para o método getMSNumberForConsumer() na inclusão de script csmUtils.

    // Script include that contains the logic to retrieve a phone number for a consumer.
    var csmUtils = new global.CSMExampleUtils();
     
    // Example Case record used as source for sending SMS
    var caseGr = new GlideRecord('sn_customerservice_case');
    caseGr.get('3af265b3d1cb5010f877cb055160faxx'); // Case sys_id
     
    var notifySms = new global.NotifySMS();
     
    // Use the getSMSNumberForConsumer method of the csmUtils script include (CSMExampleUtils) to obtain the phone number of the consumer.
    notifySms.setRecordToNumberResolver(csmUtils, 'getSMSNumberForConsumer');
     
    // Send an SMS message to a user whose telephone number is in the specified Case GlideRecord.
    var smsText = 'This is a test message for ' + caseGr.getValue('number');
    notifySms.sendToUser('+1xxxxxxxxxx', caseGr.getValue('consumer'), smsText, caseGr); // First param is the Notify phone number

    Este exemplo mostra o código necessário para o método de resolução de telefone getMSNumberForConsumer().

    getSMSNumberForConsumer: function(consumerGrOrId) {
      if (!consumerGrOrId)
        return;
     
      var consumerId, consumerGr;
      if (typeof consumerGrOrId === "string")
        consumerId = consumerGrOrId;
      if (typeof consumerGrOrId === "object" && consumerGrOrId["isValidRecord"]) {
        consumerGr = consumerGrOrId;
        consumerId = consumerGr.getUniqueValue();
      }
              
      if (!consumerId)
        return;
              
      if (!consumerGr) {
        consumerGr = new GlideRecord('csm_consumer');
        consumerGr.get(consumerId);
      }
              
      if (consumerGr.isValidRecord()) {
        return consumerGr.getValue('mobile_phone');
      }
    }