2017-04-04 39 views
0

我需要集成servicenow和slack,這有助於將高警報和重要的P1警報發送到冗餘通道。ServiceNow與slack的集成

我在尋找可以完成的服務,以使serviceNow與slack集成。

請建議。

回答

1

你應該創造的ServiceNow業務規則上插入/更新。

條件: 優先級= 1個或優ChangesTo 1

高級/腳本:

var request = new sn_ws.RESTMessageV2('SLACK_EndpointURL', 'POST'); 
request.setRequestHeader("Accept","application/json"); 
request.setRequestHeader('Content-Type','application/json'); 
//OR METHOD # request.setEndpoint('SLACK_EndpointURL'); 

// Your message 
var reqBody = '{\"text\":\"This is a line of text.\nAnd this is another one.\"}';  
request.setRequestBody(reqBody); 

var response = request.execute(); 
var responseBody = response.getBody(); 

//See response in System Logs # gs.log(responseBody); 
0

您可以簡單地使用`編寫基於REST的集成。還有什麼你需要知道的,或者你想要的東西?

+0

我正在尋找幫助我將SERVICENOW與SLACK集成在一起的步驟,並將高度和重要的P1警報發送到鬆弛通道。 - 謝謝! – suboss87

1

有多種方式可以整合ServiceNow和Slack。但是,對於您的案例,一個簡單而直接的方法是在Slack中創建一個提供URL的Incoming WebHook,並且您需要從ServiceNow實例執行的操作是將JSON發佈到該URL。

您可以找到有關創建和定製這裏斯萊克網絡掛接更多的細節:https://api.slack.com/incoming-webhooks

+0

謝謝,是否有任何插件可用於集成servicenow和slack。 – suboss87

+0

這篇博客文章詳細討論瞭如何創建一個前面提到的傳入webhook:http://joeyday.com/2015/03/02/integrating-servicenow-with-slack/ – bprat

+0

謝謝,但不知道爲什麼我我無法訪問您分享的鏈接。它給我一個錯誤「建立數據庫連接時出錯」。 – suboss87

1

你可以使用一個BR與所需的條件來觸發。該函數將我們的消息發佈到Slack。端點是在農閒創建入站網絡掛接地址:

function postMessage(inPayload, inEndpoint, inTimeout) { 
    var sResponseBody = '', nResponseCode = 0, sResponseMessage = '', sResponseEndpoint = '', sResponseHeaders = []; 

    var rest = new sn_ws.RESTMessageV2(); 
    rest.setEndpoint(inEndpoint); 
    rest.setHttpTimeout(inTimeout); 
    rest.waitForResponse(inTimeout); 
    rest.setRequestHeader('Content-Type', 'application/json'); 
    rest.setRequestHeader('Accept', 'application/json'); 
    rest.setHttpMethod('post'); 
    rest.setRequestBody(inPayload); 
    for (var i = 0; i < 3; i++) { 
    try { 
     var response  = rest.execute(); 
     sResponseBody  = response.getBody(); 
     nResponseCode  = response.getStatusCode(); 
     sResponseEndpoint = response.getEndpoint(); 
     sResponseHeaders = response.getRequestHeaders(); 
     break; 
    } catch(err) { 
     sResponseMessage = err.getMessage(); 
     gs.sleep(5000); 
    } 
    } 
    return {"ResponseCode":nResponseCode,"ResponseBody":sResponseBody,"ResponseMessage":sResponseBody,"ResponseEndpoint":sResponseEndpoint, "ResponseHeaders":sResponseHeaders}; 
} 

這會告訴你如何創建入站網絡掛接: https://api.slack.com/incoming-webhooks

下面是我們用一個例子有效載荷。 $ {tags}是我們用來從源工單獲取價值的簡單宏。你可以簡單地在無線電通信中進行散步。

{ 
    "username":"${SlackUsername}", 
    "attachments":[{ 
      "title":"Short description", 
      "title_link":"${URL}", 
      "text":"${ShortDescription}", 
      "fallback":"${ShortDescription}", 
      "color":"${Color}", 
      "footer":"${SlackUsername}", 
      "fields":[ 
       {"title":"State","value":"${State}","short":true}, 
       {"title":"Priority","value":"${Priority}","short":true}, 
       {"title":"Assignment group","value":"${AssignmentGroup}","short":true}, 
       {"title":"Assigned to","value":"${AssignedTo}","short":true}, 
       {"title":"Technical Service","value":"${TechnicalService}","short":true}, 
       {"title":"Configuration item","value":"${ConfigurationItem}","short":true}, 
       {"title":"Details","value":"${Description}","short":false} 
      ], 
      "ts":"${TimeStampEpoch}" 
     } 
    ] 
} 

對於信息: 我們使用自定義表設置爲觸發後懈怠的條件。用戶可以根據需要簡單地創建自己的過濾器。使用的端點是用戶提供的入站webhook。 異步業務規則在任務上運行,以根據需要審查條件和操作。

當前的工作是使用Slack應用程序,因此我們可以通過頻道ID發佈到任何頻道。這意味着我們不會冒有人創建入站webhook然後離開公司的問題。