A quick look at Slack's Webhook Logic Flow
Tags: slack, outsystems, api
Published: 2021-02-24 19:02:33

Slack Webhook logic flow illustrated with OutSystems

> Purpose: To show the Slack webhook logic in a dashboard integration
> For: Devs familiar with OutSystems's dev platform
> Listen: [Podcast interview](https://open.spotify.com/episode/71BEEDqPGTCTdMz3zd2wfr?si=Ht0de46USEubkMaekOwAgg&nd=1) with software eng on how Slack was built 
> Ask for help: [OutSystems Forms](https://www.outsystems.com/forums/) (2 Hour Response Time)
> Written by [@sydneylai](https://twitter.com/sydneylai)

---

## :memo: Where do I start?

### Step 1: Have an app to integrate with

- Can use a template [Download OutSystems](https://www.outsystems.com/free-edition)
- Try the incident reporting ticketing dashboard

![](https://i.imgur.com/2Kb74O9.png)


### Step 2: Create a Slack Incoming Webhook 

This is the most common integration, where you have your webapp Slack you a message when an action is triggered. 

https://api.slack.com/messaging/webhooks

> Find your specific token and Hook URL


### Step 3: Use a Slack Integration - a Forge Component

Install
https://www.outsystems.com/forge/component-overview/5381/slack-integration


:bulb: **Hint:** The way the dev decided to write this component, the token is hard-coded so this means you should create a dynamic token to allow posts in various channels. 

![](https://i.imgur.com/5HiYR4s.png)


---

### Step 4: Logic Flow Explained

See how the Issue Tracker dashboard communicates with Slack's Inbound Webhook

![](https://i.imgur.com/G6VLCpd.png)

> (Zoom In) On the left is the Logic Flow and right is the folder structure of containing the logic in the app, which includes server-side actions, functions, as well as REST and SOAP integrations

![](https://i.imgur.com/scLs9pi.png)

At the Start of the logic flow, the user is assigning a ticket status. After the ticket is created, the Server Action or Action that runs logic on the server side, assigns a ticket ID and a ticket is created.

The request is then sent to Slack

![](https://i.imgur.com/5ZXjIOj.png)
> Assign a Request

![](https://i.imgur.com/9UyVeJb.png)

> Run a Server Action

![](https://i.imgur.com/7XXt2h9.png)

> Result


---

## BONUS: OutSystems Resources 


| Features          | Tutorials               |
| ----------------- |:----------------------- |
| Chatbot Build       | [:link:][Chatbot]   |
| Join Dev community | [:link:][JoinDev]     |
| Apply for free developer school| [:link:][DevSchool]    | 
| How To Videos   | [:link:][HowTo] |

[Chatbot]:https://www.youtube.com/watch?v=fl_ZHT8ZspU&ab_channel=OutSystems
[JoinDev]:https://www.outsystems.com/community/
[DevSchool]:https://www.outsystems.com/events/developer-school/
[HowTo]:https://www.youtube.com/user/outsystems

---

## Slack Specific

| Features          | Tutorials               |
| ----------------- |:----------------------- |
| Podcast on how Slack was built | [:link:][Podcast]     |
| Blog post on interview with Slack eng | [:link:][Blog]    | 
| Video on Slack Logic Flow | [:link:][Video]    | 
[Podcast]:https://open.spotify.com/episode/71BEEDqPGTCTdMz3zd2wfr?si=Ht0de46USEubkMaekOwAgg&nd=1
[Blog]:https://www.outsystems.com/blog/posts/decoded-future-of-communication/
[Video]:https://youtu.be/O50sQDsp1mA