slackapi / template-actionable-notifications

Sample Slack app to illustrate how incoming webhooks and interactive messages can be used to build a helpdesk integration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Actionable notifications template

Updated January 2020: As we have introduced some new features, this tutorial and the code samples have been updated!

Read diff.md for more info!


When a helpdesk ticket is created in a 3rd party system, send an actionable notification in Slack that allows the user to claim the ticket or apply a label.

Screenshot of template application

Setup

Create a Slack app

  1. Create an app at api.slack.com/apps
  2. Activate Incoming Webhooks from the Features > Incoming Webhooks then click 'Add New Webhook to Workspace', install the app and select a channel
  3. Navigate to the OAuth & Permissions page and add the following bot scopes:
    • incoming-webhook (This should be pre-selected)
    • chat:write (to send messages)
    • im:write (to open a DM channel between your bot and a user)

Run the app

Clone this repo to run locally or Remix on Glitch

  1. Get the code
  2. Set the following environment variables to .env (see .env.sample):
    • SLACK_TOKEN: Your app's xoxb- token (available on the OAuth & Permissions)
    • SLACK_WEBHOOK: The webhook URL that you copied off the Incoming Webhook
    • SLACK_SIGNING_SECRET: Your app's Signing secret (available on the Basic Information)
  3. If you're running the app locally:
    1. Start the app (npm start)
    2. In another window, start ngrok on the same port as your webserver (ngrok http $PORT)

Enable Interactive Components

  1. Go back to the app settings and click on Interactive Components.
  2. Set the Request URL to your ngrok URL (or Glitch URL) + /interactive-message (such as https://my-project.glitch.me/interactive-message)
  3. Save

Send a mock new ticket notification

Post the mock ticket JSON to the /incoming endpoint:

curl -X POST -H 'Content-type: application/json' --data "`cat ./ticket.json`" <Your app server URL + /incoming>

Example: curl -X POST -H 'Content-type: application/json' --data "`cat ./ticket.json`" https://slack-actionable-notification-blueprint.glitch.me/incoming

You need the ticket.json file in the same directory where you are sending the curl command!

About

Sample Slack app to illustrate how incoming webhooks and interactive messages can be used to build a helpdesk integration

License:MIT License


Languages

Language:JavaScript 100.0%