Integrating with Slack

Slack is a digital workspace that powers your organization - all the pieces and the people - so you can get things done.

A team is a group of people that use Slack to communicate. Larger organizations - possibly comprised of many locations, people, and sub-groups -  may have multiple interconnected Slack workspaces. The Slack workspace is comprised of channels. Channels hold conversations between team members. They can be organized around anything - departments, projects, or even office locations - and you can create as many as you need.

eG integration with Slack ensures that eG alerts are automatically routed to a configured channel, so that they can be circulated amongst all team members using that channel. For instance, if help desk personnel are part of a team, then that team can be associated with a channel. You can have eG Enterprise integrate with that channel. This way, help desk personnel are instantly notified of problem conditions, and can effectively work together for a speedy resolution.

The steps in this regard are as follows:

  1. Login to the eG administrative interface.
  2. Select the Manager option from the Settings tile.

  3. Figure 1 will then appear. From the manager settings tree in the left panel of Figure 1, select the ITSM/Collaboration Integration node. The third-party ITSM/Collaboration tools that eG Enterprise can integrate with will be listed in the right panel.

    Figure 1 : Viewing the ITSM/Collaboration tool options

  4. Now, click on the Slackoption in the right panel (see Figure 1). A Slack section will now appear in the right panel (see Figure 2).

    Figure 2 : Configuring integration with Slack

  5. To enable integration with Slack, first slide the Slack slider in Figure 2 to the right.
  6. Then, specify the following in Figure 2:

    • Webhook URL: Incoming Webhooks are a simple way to post messages from external sources into a Slack channel. eG Enterprise uses these Webhooks to send event notifications to a specific Slack channel. Against Webhook URL, specify the Slack channel URL to which the eG alerts are to be transmitted. 
    • Channel: Specify the name of the Slack channel to which the eG alerts are to be sent.
    • Token: Specify the token required to access the Slack Channel configured above.
    • Incident title: Specify the format in which the title of the trouble ticket is to be displayed in Slack. The default format is as follows:

      $prior - $ctype / $cname  - $pdesc

      The ‘dollared’ ($) text in the format above is a key, the value of which varies at run time, depending upon the information contained in the eG alarms. For example, in the default format above, $prior is a key that represents the alarms priority, and changes according to the priority of the actual alarm that is sent by the eG manager to Slack. You are advised against changing any of the key names.

      The other keys that are part of the default format are discussed in the table below:

      $cname

      Will display the name of the problem component

      $ctype

      Will display the component type to which the problem component belongs

      $pdesc

      Will display a brief problem description

    • Custom Payload: Use custom payload to customize the alert information you send to Slack, so that it includes additional static information.

      Typically, the details of an eG alert are sent as a JSON file to the configured URL. Every piece of information contained within an eG alert - eg., priority, component name, component type etc. - is represented in the JSON file as a $key:$value pair, where 'key' denotes the alert field, and 'value' denotes the actual value of that field at run time. The 'key' is configured based on the keys supported by the Slack REST API. For instance, if the REST API represents alarm priorities using the key 'prior', then the same key will be used in the JSON file for denoting alarm priorities. Accordingly, the entry for alarm priority in the JSON file will be $prior:$value. The $value will be Critical, Major, Minor, or Normal, depending upon the actual priority of the alarm being sent.

      • First, check whether the Slack REST API supports a 'key' that can be used for capturing the 'source' of alerts/incidents. If no such key exists, then you cannot proceed with the Custom Payload configuration. On the other hand, if such a key is available, then proceed to replace the $key in your Custom Payload specification, with that key value. For the purpose of our example, let us assume that the REST API supports the key named 'source'. In this case therefore, substitute '$key' with 'source'.
      • Then, proceed to explicitly specify the FQDN of your eG manager in the place of $value. This is because, you can use the Custom Payload configuration to add only 'static' information - i.e., information that you explicitly configure, and hence will never change. In the case of our example therefore, the $value will be egmanager.innovations.com.
      • The complete Custom Payload specification will now be: source:egmanager.innovations.com

      If you want eG incidents routed to Slack to include additional information, then you can define a Custom Payload for that information as a $key:$value pair. For example, say, you want incidents to indicate the FQDN of the eG manager that generated the incidents. Say that the FQDN of your eG manager is egmanager.innovations.com. To include this information in Slack incidents, do the following:

  7. Finally, click the Update button in Figure 2.