Criar um Emergency Outreach 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 as plataformas de colaboração Slack ou Microsoft Teams. 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 admin
Por Que e Quando Desempenhar Esta Tarefa
Por exemplo, o grupo de rede de TI da sua empresa tem um canal Slack que eles monitoram mais de perto do que o e-mail. Crie um canal de notificação Slack. Para se comunicar com membros do grupo de rede de TI, selecione o grupo como público-alvo e selecione o canal de notificação Slack.
Se as caixas de seleção Notificação por e -mail e Notificação porpush do Now Mobile estiverem marcadas, todas as três notificações serão enviadas. Para usar somente o canal de notificação Slack, desmarque essas duas caixas de seleção.
Procedimento
Quando uma divulgação é enviada usando um canal de notificação personalizado, uma lista relacionada de 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 de 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);