NotifySMS – Global
Die NotifySMS- API stellt Methoden bereit, mit denen Sie SMS-Nachrichten (Short Message Service) von Notify-Telefonnummern an Geräte senden können, indem sie entweder deren Telefonnummern oder einen GlideRecord verwenden, der ein Feld enthält, das Telefonnummerninformationen enthält.
Um diese API zu verwenden, müssen Sie das Notify-Plugin (com.snc.notify) aktivieren.
NotifySMS – NotifySMS()
Erstellt eine Instanz eines NotifySMS-Objekts.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
Dieses Beispiel zeigt, wie ein NotifySMS-Objekt instanziiert wird.
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)
Löst eine asynchrone Flow-Aktion aus, die eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an eine Liste von Telefonnummern sendet.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, an die die SMS-Nachricht gesendet wird. |
| toNumber | Array | Liste der Telefonnummern, die die SMS-Nachricht empfangen sollen. |
| Nachricht | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord | Optional. Incident-GlideRecord, der im Feld Quelle des zugeordneten SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| Typ | Beschreibung |
|---|---|
| ScriptableFlowRunnerResult | ScriptableFlowRunnerResult – Scoped Objekt. |
Das folgende Codebeispiel zeigt, wie Sie mit dieser Methode eine Massen-SMS senden können.
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)
Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an eine angegebene Telefonnummer.
Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, der SMS-Nachricht zuordnen.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, an die die SMS-Nachricht gesendet wird. |
| Nachricht | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord – Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugeordneten SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| toNumber | Zeichenfolge | Telefonnummer des Geräts, das die SMS-Nachricht empfangen soll. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie eine SMS-Nachricht an eine angegebene Telefonnummer senden und den zugehörigen Incident-Datensatz mit den Nachrichteninformationen versehen.
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)
Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an eine Liste von Telefonnummern.
Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpfen.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, an die die SMS-Nachricht gesendet wird. |
| Nachricht | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord – Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugeordneten SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| toNumber | Array | Liste der Telefonnummern, die die SMS-Nachricht empfangen sollen. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie eine SMS-Nachricht an mehrere Telefonnummern gesendet und die Informationen im zugehörigen Incident-Datensatz gespeichert werden.
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)
Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Telefonnummer an den Benutzer, der in einem angegebenen GlideRecord identifiziert wurde.
Diese Methode extrahiert die Telefonnummer aus dem angegebenen GlideRecord. Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpfen.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, an die die SMS-Nachricht gesendet wird. |
| Nachricht | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord – Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugeordneten SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| bisGr | GlideRecord – Global | GlideRecord eines Datensatztyps, der ein Feld enthält, das in die Telefonnummer eines Benutzers aufgelöst wird. Der Datensatztyp muss mit dem Datensatztyp korrelieren, der vom derzeit implementierten Telefonnummern-Resolver verwendet wird. Ein Telefonnummern-Resolver ist einfach eine Methode, die die Telefonnummer des Benutzers aus einem bestimmten Typ von GlideRecord erhält, z. B. einem Benutzerdatensatz oder einem Falldatensatz. Bei Verwendung des Standard-Resolvers entsprechen die Datensätze der Benutzertabelle [sys_user]. Verwenden Sie die Methode NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String methodName), um den Typ des Datensatzes zu ändern, den der Resolver zum Abrufen der Telefonnummer verwendet. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Beispiel zeigt, wie Sie eine SMS-Nachricht an einen im zugehörigen Incident-Datensatz identifizierten Benutzer senden und den zugehörigen Incident-Datensatz mit den Nachrichteninformationen versehen.
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)
Sendet eine SMS-Nachricht (Short Message Service) von einer angegebenen Notify-Telefonnummer an Benutzer, die in einem angegebenen GlideRecord gefunden wurden.
Diese Methode extrahiert die Zieltelefonnummern aus dem übergebenen GlideRecord. Darüber hinaus können Sie optional den Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit der SMS-Nachricht verknüpfen.
| Name | Typ | Beschreibung |
|---|---|---|
| fromNumber | Zeichenfolge | Notify-Telefonnummer, an die die SMS-Nachricht gesendet wird. |
| Nachricht | Zeichenfolge | Zu sendende Nachricht. |
| QuelleDatensatz | GlideRecord – Global | Optional. Incident-GlideRecord, der im Feld Quelle des zugeordneten SMS-Nachrichtendatensatzes in der Notify-Nachricht-Tabelle [notify_message] gespeichert werden soll. Dadurch wird der Incident-Datensatz, der die Generierung der SMS-Nachricht verursacht hat, mit dieser SMS-Nachricht verknüpft. Standard: Keine. Wenn dieser Parameter nicht übergeben wird, werden diese Informationen nicht nachverfolgt. |
| bisGr | GlideRecord – Global | GlideRecord eines Datensatztyps, der ein Feld enthält, das in die Telefonnummer eines Benutzers aufgelöst wird. Der Datensatztyp muss mit dem Datensatztyp korrelieren, der vom derzeit implementierten Telefonnummern-Resolver verwendet wird. Ein Telefonnummern-Resolver ist einfach eine Methode, die die Telefonnummer des Benutzers aus einem bestimmten Typ von GlideRecord erhält, z. B. einem Benutzerdatensatz oder einem Falldatensatz. Bei Verwendung des Standard-Resolvers entsprechen die Datensätze der Benutzertabelle [sys_user]. Verwenden Sie die Methode NotifySMS – setRecordToNumberResolver(Object scriptIncludeInstance, String methodName), um den Typ des Datensatzes zu ändern, den der Resolver zum Abrufen der Telefonnummer verwendet. |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel zeigt, wie eine SMS-Nachricht an Benutzer innerhalb eines angegebenen Incident-Datensatzes gesendet wird.
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)
Legt die Methode innerhalb einer Skripteinbindung fest, die zum Abrufen der Zieltelefonnummer im GlideRecord verwendet werden soll, der in den Methoden NotifySMS.sendToUser() und NotifySMS.sendToUsers() übergeben wird.
Standardmäßig wird die NotifyUtil.getSMSNumberForUser()- Methode verwendet, um die Telefonnummer von einem auf Benutzer [sys_user] basierenden GlideRecord abzurufen. Verwenden Sie die setRecordToNumberResolver()- Methode, wenn Sie eine benutzerdefinierte Methode erstellen müssen, um diese Informationen aus einem anderen Datensatztyp zu erhalten, z. B. einem Falldatensatz.
| Name | Typ | Beschreibung |
|---|---|---|
| methodName | Zeichenfolge | Name der Methode, die zum Abrufen der Zieltelefonnummer in einem GlideRecord verwendet werden soll. |
| scriptIncludeInstance | Objekt | Instanz der Skripteinbindung, die die angegebene Nummernauflöser-Methode enthält. |
| Typ | Beschreibung |
|---|---|
| Keine |
Dieses Beispiel zeigt, wie der Telefonnummern-Resolver innerhalb der csmUtils-Skripteinbindung auf die Methode getSMSNumberForConsumer() festgelegt wird.
// 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
Dieses Beispiel zeigt den Code, der für die Telefon-Resolver-Methode getSMSNumberForConsumer() erforderlichist.
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');
}
}