SMS de notification : global
L’include de script 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 à des appareils à l’aide de leurs numéros de téléphone ou d’un GlideRecord dont le champ contient des informations de numéro de téléphone.
Pour utiliser cet include de script, vous devez activer le module d’extension Notification (com.snc.notify).
NotifySMS : NotifySMS()
Crée une 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 de Notification 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 envoyant le message SMS. |
| toNumber | Tableau | Liste des numéros de téléphone pour recevoir le message 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]. L’enregistrement d’incident à l’origine de la génération du message SMS est lié à ce message SMS. Par défaut : aucune. Si ce paramètre n’est pas transmis, ces informations ne sont pas suivies. |
| Type | Description |
|---|---|
| ScriptableFlowRunnerResult | ScriptableFlowRunnerResult : inclus dans l’étendue objet. |
L’exemple de code suivant montre comment vous pouvez utiliser cette méthode pour envoyer un message SMS en masse.
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 Notification 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 envoyant le message 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]. L’enregistrement d’incident à l’origine de la génération du message SMS est lié à ce message SMS. Par défaut : aucune. 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 permettant de recevoir le message SMS. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant illustre comment envoyer un message SMS à un numéro de téléphone spécifié et marquer 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 Notification spécifié vers une liste de numéros de téléphone.
En outre, vous pouvez éventuellement associer l’enregistrement d’incident ayant entraîné la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification envoyant le message 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]. L’enregistrement d’incident à l’origine de la génération du message SMS est lié à ce message SMS. Par défaut : aucune. 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 message SMS. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant illustre comment envoyer un message 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 ayant entraîné la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification envoyant le message 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]. L’enregistrement d’incident à l’origine de la génération du message SMS est lié à ce message SMS. Par défaut : aucune. 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 résout le 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 des numéros 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 de 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 marquer 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 ayant entraîné la génération du message SMS au message SMS.
| Nom | Type | Description |
|---|---|---|
| fromNumber | Chaîne | Numéro de téléphone de Notification envoyant le message 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]. L’enregistrement d’incident à l’origine de la génération du message SMS est lié à ce message SMS. Par défaut : aucune. 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 résout le 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 des numéros 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 de 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 dans un include de script à utiliser pour obtenir le numéro de téléphone cible dans le GlideRecord 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 à partir 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. |
| scriptIncludeInstance | Objet | Instance de l’include de script 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 l’include 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
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');
}
}