Crie um Contato para situação emergencial canal de notificação
Crie um canal de notificação para enviar solicitações de status de integridade usando o método de comunicação preferencial da sua empresa, como Slack ou Microsoft Teams plataformas de colaboração. Crie o canal de notificação usando um script ou um subfluxo.
Antes de Iniciar
Função necessária: sn_imt_checkin.checkin_admin ou administrador
Por Que e Quando Desempenhar Esta Tarefa
Por exemplo, o grupo de rede de TI da sua empresa tem um Slack canal que eles monitoram mais de perto do que o e-mail. Crie um Slack canal de notificação. Para se comunicar com os membros do grupo da rede de TI, selecione o grupo como o público-alvo e selecione Slack canal de notificação.
. Notificação por e-mail e. Notificação por push do Now Mobile as caixas de seleção estão marcadas, todas as três notificações são enviadas. Para usar somente o. Slack canal de notificação, desmarque essas duas caixas de seleção.
Procedimento
Quando uma divulgação é enviada usando um canal de notificação personalizado, uma lista relacionada Logs de entrega aparece na mensagem de divulgação.
- Teste o canal de notificação para uma mensagem de divulgação e abra o registro com falha para revisar a mensagem de erro.
- Corrija erros que causaram a falha da notificação.
- Continue testando o canal de notificação até que ele não falhe mais.
Slack script do canal
(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);