Skip to content

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

License

Notifications You must be signed in to change notification settings

slackapi/template-actionable-notifications

Repository files navigation

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

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published