Erstellen Sie einen Notfall-KontaktaufnahmeBenachrichtigungskanal
Erstellen Sie einen Benachrichtigungskanal, um Integritätsstatusanforderungen mithilfe der bevorzugten Kommunikationsmethode Ihres Unternehmens zu senden, z. B. SlackOder Microsoft TeamsZusammenarbeitsplattformen. Erstellen Sie den Benachrichtigungskanal mithilfe eines Skripts oder Subflows.
Vorbereitungen
Erforderliche Rolle: sn_imt_checkin.checkin_admin oder admin
Warum und wann dieser Vorgang ausgeführt wird
Beispielsweise hat die IT-Netzwerkgruppe Ihres Unternehmens eine SlackKanal, den sie genauer überwachen als E-Mail. Erstellen Sie ein SlackBenachrichtigungskanal. Um mit IT-Netzwerkgruppenmitgliedern zu kommunizieren, wählen Sie die Gruppe als Zielgruppe aus, und wählen Sie aus SlackBenachrichtigungskanal.
Wenn E-Mail-Benachrichtigung Und Now Mobile-Push-Benachrichtigung Kontrollkästchen sind aktiviert, alle drei Benachrichtigungen werden gesendet. Zur Verwendung nur von SlackBenachrichtigungskanal: Deaktivieren Sie diese beiden Kontrollkästchen.
Prozedur
Wenn eine Kontaktaufnahme über einen anwenderdefinierten Benachrichtigungskanal gesendet wird, wird in der Nachricht „Kontaktaufnahme“ eine zugehörige Liste „Zustellprotokolle“ angezeigt.
- Testen Sie den Benachrichtigungskanal auf eine Kontaktkontaktnachricht, und öffnen Sie den fehlgeschlagenen Datensatz, um die Fehlermeldung zu überprüfen.
- Beheben Sie Fehler, die zum Fehlschlagen der Benachrichtigung geführt haben.
- Fahren Sie mit dem Testen des Benachrichtigungskanals fort, bis er nicht mehr fehlschlägt.
Slack Kanalskript
(function notify(responses, channelGr) {
var createClient = function () {
var client = new sn_ws.RESTMessageV2();
client.setRequestHeader('Authorization', 'Bearer xoxb-222222222222-1111111111111-000000000000000000000000');
client.setRequestHeader("Accept", "application/json");
client.setRequestHeader('Content-type', 'application/json');
return client;
};
var getEmailToSlackIdMap = function (users) {
var emailToSlackIdMap = {};
for (var i = 0; i < users.length; i++) {
var email = users[i].profile.email;
if (email) {
emailToSlackIdMap[email] = users[i].id;
}
}
return emailToSlackIdMap;
};
var runSlackCommand = function (method, params) {
var client = createClient();
client.setHttpMethod('post');
client.setEndpoint('https://slack.com/api/' + method);
client.setRequestBody(JSON.stringify(params));
var response = client.execute();
if (response.getStatusCode() < 200 || response.getStatusCode() > 299) {
throw new Error('Failure running ' + method + ':\n' + response.getBody());
}
var body = JSON.parse(response.getBody());
if (!body.ok) {
throw new Error(body.error);
}
return body;
};
var sendMessage = function (userId, message) {
var openConversationResponse = runSlackCommand('conversations.open', { users: userId });
var channel = openConversationResponse.channel.id;
runSlackCommand('chat.postMessage', { channel: channel, text: message });
};
var users = runSlackCommand('users.list').members;
var emailToSlackIdMap = getEmailToSlackIdMap(users);
var body = channelGr.getValue('body') || '<p></p>';
var record = responses.mode === 'acknowledgements' ? responses.acknowledgementsGr : responses.surveyInstancesGr;
var numSent = 0;
while (record.next()) {
var email = record.user.email + '';
var link = responses.mode === 'acknowledgements'
? gs.getProperty('glide.servlet.uri') + record.getLink(true)
: gs.getProperty('glide.servlet.uri') + 'sp?id=take_survey&instance_id=' + record.getUniqueValue();
var message = body + '\n' + link;
var slackId = emailToSlackIdMap[email];
if (slackId) {
sendMessage(slackId, message);
numSent += 1;
}
}
return { sent_count: numSent };
})(responses, channelGr);