NotifySMS : global
L’API NotifySMS fournit des méthodes qui vous permettent d’envoyer des messages SMS (Short Message Service) à partir de numéros de téléphone Notify vers des appareils à l’aide de leurs numéros de téléphone ou d’un GlideRecord dont le champ contient des informations sur les numéros de téléphone.
Pour utiliser cette API, vous devez activer le module d’extension Notify (com.snc.notify).
NotifySMS : NotifySMS()
Crée l’instance d’un objet NotifySMS.
| Nom | Type | Description |
|---|---|---|
| Néant |
Cet exemple montre comment instancier un objet 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(String fromNumber, Array toNumber, String message, GlideRecord sourceRecord)
Déclenche une action de flux asynchrone qui envoie un message SMS (Short Message Service) à partir d’un numéro de téléphone Notify spécifié vers une liste de numéros de téléphone.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification qui envoie le SMS. |
| toNumber | Tableau | Liste des numéros de téléphone pour recevoir le SMS. |
| message | Chaîne | Message à envoyer. |
| sourceRecord | GlideRecord | Facultatif. GlideRecord d’incident à stocker dans le champ Source de l’enregistrement de message SMS associé dans la table Message de notification [notify_message]. Ceci relie l’enregistrement d’incident qui a provoqué la génération du message SMS à ce message SMS. Par défaut : aucun. Si ce paramètre n’est pas transmis, ces informations ne sont pas suivies. |
| Type | Description |
|---|---|
| ScriptableFlowRunnerResult | ScriptableFlowRunnerResult : inclus dans le périmètre Objet. |
L’exemple de code de suivi montre comment vous pouvez utiliser cette méthode pour envoyer un message SMS en bloc.
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(String fromNumber, String toNumber, String message, Object sourceRecord)
Envoie un message SMS (Short Message Service) à partir d’un numéro de téléphone Notify spécifié vers un numéro de téléphone spécifié.
En outre, vous pouvez éventuellement associer l’enregistrement d’incident à l’origine de la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification qui envoie le SMS. |
| message | Chaîne | Message à envoyer. |
| sourceRecord | GlideRecord : global | Facultatif. GlideRecord d’incident à stocker dans le champ Source de l’enregistrement de message SMS associé dans la table Message de notification [notify_message]. Ceci relie l’enregistrement d’incident qui a provoqué la génération du message SMS à ce message SMS. Par défaut : aucun. Si ce paramètre n’est pas transmis, ces informations ne sont pas suivies. |
| toNumber | Chaîne | Numéro de téléphone de l’appareil qui doit recevoir le SMS. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant illustre comment envoyer un SMS à un numéro de téléphone spécifié et tamponner l’enregistrement d’incident associé avec les informations du message.
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(String fromNumber, Array toNumber, String message, Object sourceRecord)
Envoie un message SMS (Short Message Service) à partir d’un numéro de téléphone Notify spécifié vers une liste de numéros de téléphone.
En outre, vous pouvez éventuellement associer l’enregistrement d’incident à l’origine de la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification qui envoie le SMS. |
| message | Chaîne | Message à envoyer. |
| sourceRecord | GlideRecord : global | Facultatif. GlideRecord d’incident à stocker dans le champ Source de l’enregistrement de message SMS associé dans la table Message de notification [notify_message]. Ceci relie l’enregistrement d’incident qui a provoqué la génération du message SMS à ce message SMS. Par défaut : aucun. Si ce paramètre n’est pas transmis, ces informations ne sont pas suivies. |
| toNumber | Tableau | Liste des numéros de téléphone pour recevoir le SMS. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant illustre comment envoyer un SMS à plusieurs numéros de téléphone et stocker les informations dans l’enregistrement d’incident associé.
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(String fromNumber, Object toGr, String message, Object sourceRecord)
Envoie un message SMS (Short Message Service) à partir d’un numéro de téléphone spécifié à l’utilisateur identifié dans un GlideRecord spécifié.
Cette méthode extrait le numéro de téléphone du GlideRecord spécifié. En outre, vous pouvez éventuellement associer l’enregistrement d’incident à l’origine de la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification qui envoie le SMS. |
| message | Chaîne | Message à envoyer. |
| sourceRecord | GlideRecord : global | Facultatif. GlideRecord d’incident à stocker dans le champ Source de l’enregistrement de message SMS associé dans la table Message de notification [notify_message]. Ceci relie l’enregistrement d’incident qui a provoqué la génération du message SMS à ce message SMS. Par défaut : aucun. Si ce paramètre n’est pas transmis, ces informations ne sont pas suivies. |
| toGr | GlideRecord : global | GlideRecord d’un type d’enregistrement qui contient un champ qui se résout en numéro de téléphone d’un utilisateur. Le type d’enregistrement doit être mis en corrélation avec le type d’enregistrement utilisé par le programme de résolution de numéro de téléphone actuellement implémenté. Un résolveur de numéro de téléphone est simplement une méthode qui obtient le numéro de téléphone de l’utilisateur à partir d’un type spécifique de GlideRecord, tel qu’un enregistrement Utilisateur ou un enregistrement Ticket. Lors de l’utilisation du programme de résolution par défaut, les enregistrements correspondent à la table Utilisateur [sys_user]. Pour modifier le type d’enregistrement que le programme de résolution utilise pour obtenir le numéro de téléphone, utilisez la NotifySMS : setRecordToNumberResolver(Object scriptIncludeInstance, String methodName) méthode. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant illustre comment envoyer un message SMS à un utilisateur identifié dans l’enregistrement d’incident associé et tamponner l’enregistrement d’incident associé avec les informations du message.
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(String fromNumber, Object toGr, String message, Object sourceRecord)
Envoie un message SMS (Short Message Service) à partir d’un numéro de téléphone Notify spécifié aux utilisateurs trouvés dans un GlideRecord spécifié.
Cette méthode extrait les numéros de téléphone de destination du GlideRecord transmis. En outre, vous pouvez éventuellement associer l’enregistrement d’incident à l’origine de la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification qui envoie le SMS. |
| message | Chaîne | Message à envoyer. |
| sourceRecord | GlideRecord : global | Facultatif. GlideRecord d’incident à stocker dans le champ Source de l’enregistrement de message SMS associé dans la table Message de notification [notify_message]. Ceci relie l’enregistrement d’incident qui a provoqué la génération du message SMS à ce message SMS. Par défaut : aucun. Si ce paramètre n’est pas transmis, ces informations ne sont pas suivies. |
| toGr | GlideRecord : global | GlideRecord d’un type d’enregistrement qui contient un champ qui se résout en numéro de téléphone d’un utilisateur. Le type d’enregistrement doit être mis en corrélation avec le type d’enregistrement utilisé par le programme de résolution de numéro de téléphone actuellement implémenté. Un résolveur de numéro de téléphone est simplement une méthode qui obtient le numéro de téléphone de l’utilisateur à partir d’un type spécifique de GlideRecord, tel qu’un enregistrement Utilisateur ou un enregistrement Ticket. Lors de l’utilisation du programme de résolution par défaut, les enregistrements correspondent à la table Utilisateur [sys_user]. Pour modifier le type d’enregistrement que le programme de résolution utilise pour obtenir le numéro de téléphone, utilisez la NotifySMS : setRecordToNumberResolver(Object scriptIncludeInstance, String methodName) méthode. |
| Type | Description |
|---|---|
| Néant |
Cet exemple montre comment envoyer un message SMS aux utilisateurs dans un enregistrement d’incident spécifié.
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(Object scriptIncludeInstance, String methodName)
Définit la méthode au sein d’un script include à utiliser pour obtenir le numéro de téléphone cible dans le GlideRecord qui est transmis dans les méthodes NotifySMS.sendToUser() et NotifySMS.sendToUsers().
Par défaut, la méthode NotifyUtil.getSMSNumberForUser() est utilisée pour obtenir le numéro de téléphone d’un GlideRecord basé sur l’utilisateur [sys_user]. Utilisez la méthode setRecordToNumberResolver() si vous devez créer une méthode personnalisée pour obtenir ces informations à partir d’un type d’enregistrement différent, tel qu’un enregistrement de ticket.
| Nom | Type | Description |
|---|---|---|
| Methodname | Chaîne | Nom de la méthode à utiliser pour obtenir le numéro de téléphone cible dans un GlideRecord. |
| script IncludeInstance | Objet | Instance du script include qui contient la méthode de résolution de numéro spécifiée. |
| Type | Description |
|---|---|
| Néant |
Cet exemple montre comment définir le résolveur de numéro de téléphone sur la méthode getSMSNumberForConsumer() dans le script include 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
Cet exemple montre le code nécessaire pour la méthode de résolution téléphonique getSMSNumberForConsumer().
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');
}
}