SlideShare a Scribd company logo
App Development
February 23, 2018 | Serhat Can
@srhtcn
About me
MSc at METU
Previously Software Engineer
Technical Evangelist at OpsGenie
About
● Searchable Log of All Conversations and Knowledge
● The fastest growing SaaS company. Of all time.
● Over 6 million apps installed (2016 number)
More than 6 million daily active users
Introduction to Slack App Development
Introduction to Slack App Development
Introduction to Slack App Development
Introduction to Slack App Development
Twitter Chatbot
ChatOps is
“Placing tools directly in the middle of
the conversation”
  — Jesse Newland, GitHub
Outline
● Terminology
● App Development Lifecycle
● Features
● Slack APIs
● Designing Slack Messages
● Tips and Tricks
Terminology (for Slack beginners)
Workspace
(Team)
channel
channel
channel
Workspace
(Team)
channel
channel
Message
Terminology
Development Terminology
Custom Integrations (Old)
Incoming Webhooks
Slash Commands
Bot Users
Outgoing Webhooks
Web API
Legacy Tokens
Development Terminology
Custom Integrations (Old)
Incoming Webhooks
Slash Commands
Bot Users
Outgoing Webhooks
Web API
Legacy Tokens
Internal integrations (apps)
Published apps
Apps
Internal integrations
Only for your team
Easy installation
SSL is recommended but not required
Published Apps
For you and other workspaces
Implement OAuth flow
SSL is required
App Development
Lifecycle
App Development Lifecycle
Void of features, uninstalled
Has features but can only be installed by your workplace
Open to installation by other workspaces
Submitted to the Slack app directory
Introduction to Slack App Development
Creating Apps
Slack App Features
Incoming Webhooks
Incoming Webhooks
The simplest way to send messages into Slack.
HTTP requests with a JSON payload
curl -X POST -H 'Content-type: application/json' 
--data '{"text":"This is a line of text.nAnd this is another one."}' 
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXX
XXXXXXXXX
Incoming Webhooks
Slack's standard message markup *bold* _italic_
Message attachments to display richly-formatted message
blocks
Interactive Messages
Interactive Messages
Simplify complex workflows and empower users to
take decisive action
Interactive Messages
■ Buttons
■ Menus
■ Dialogs
Interactive Messages - Buttons
Simplify complex workflows and empower users
to take decisive action
Interactive Messages - Menus
Choose from a series of
options
Easy to fill up Slack users
and channels
Interactive Messages - Dialogs
Triggered by clicking on buttons,
selecting from menus, or invoking
slash commands.
Dialogs contain a variety of guided
input types.
Interactive Messages
Configure a Request URL for your application
Interactive Messages
You send JSON payload as always
Your registered action URL would receive a payload of JSON
You receive:
● the callback_id you set when creating the message
● the specific name of the clicked button
● and the corresponding value of that same clicked button
Slash Commands
Slash Commands
Interact with your app directly from Slack.
Slash Commands
Built-in Commands
/topic
/remind
/search
/invite
Slack App Commands
/genie
/giphy
/deploy
/hangout
Slash Commands
Your registered URL receives the response via HTTP POST.
Responding to a command
You’ve got 3000 milliseconds to respond
If it takes more than 3000 ms, return 200 OK
Send your message ASYNC
Bots (Bot Users)
Bot Users
Conversationally interact with external services or your custom
code by building bot users
Bot Users
● Profile photo, name, bio
● Post message, upload file
● Invite and kick
Difference:
● They can’t login
Bot Users
Slack app bot users Custom bot users
Bot Users
Bot users interact with people two ways:
● Real Time Messaging API (RTM)
○ Websocket connection
○ Receive all messages and activity
● Events API
Event Subscriptions (Events API)
Event Subscriptions (Events API)
Don’t call us, we’ll call you
Event Subscriptions (Events API)
Subscribe to the event types you need
Event Subscriptions (Events API)
Governed by OAuth permission scopes
If you have files:read scope
You can choose to subscribe to any or none of the
file-related events like file_created and file_deleted
Introduction to Slack App Development
RTM
Websocket connection
(Stay connected)
Subscribe to everything
Events API
Call you with HTTPS requests
(Push subscription)
Subscribe to only what you want
If the RTM API is a fire hose,
the Events API is a watering can — easy to wield and useful
Permissions
Permissions
OAuth permission scopes
● Web API,
● Events API,
● RTM API,
● Slash Commands,
● Incoming Webhooks
Scope Actions
There are currently only three classes of action:
● read: Reading the full information about a single resource.
● write: Modifying the resource in any way e.g. creating, editing, or
deleting.
● history: Accessing the message archive of channels, DMs, or private
channels.
Installing Apps
Installing Apps
Installing Apps
Introduction to Slack App Development
Slack API
● Authenticate with OAuth 2.0
● HTTPS is a must
● JSON response with failure info in the response body
● HTTP RPC-style methods https://slack.com/api/METHOD
Slack API
● Web API
● Events API
● Real Time Messaging API
● New Conversations API (Part of Web API)
Public channels, private channels, DMs... They are all conversations!
● SCIM API
The Slack SCIM API is used by SSO partners to help provision and manage user accounts and groups.
Only available on the Plus plan and Slack Enterprise Grid
Web API Object Types
Meet the tokens
Messages
How to Send Messages
● Incoming Webhooks
● Web API
● RTM API
● Responding to slash commands
● Responding to message button actions
Guidelines for Building Messages
● Stay in the flow
● Keep formatting simple
● Don’t get too attached
In Channel means everyone in the channel can see the response
“In Channel” vs “Ephemeral” responses
Ephemeral means only the command issuer can see the response
Delayed and Multiple Responses
You have to respond to a command or button
within 3000 milliseconds
If your execution takes more time;
● Return the 200 OK response immediately
● Use response_url or Web API to send your response
Advanced
Message
Formatting
https://api.slack.com/docs/messages/builder
Tips and Tricks
Slack Developer Kits
● Slack Developer Kit for Node
● Slack Developer Kit for Python
● Slack Developer Kit for Hubot
● Botkit
● Microsoft Bot Framework
● Widely-used open source libraries available for a lot of languages
NLP for Bots
Bot users should try to understand what you are saying.
You can use services like;
● Amazon Lex
● Api.ai
● Wit.ai
And...
● Read the “Best Practices” pages
● Understand your audience
● Check App blueprints to start quickly
● Talk with Slack DevRel Team if necessary
● Follow Slack’s Roadmap
Work with us
engineering.opsgenie.com
opsgenie.com/careers
@srhtcn
@serhatcan
@serhatcan
Demo
Services
AWS Lambda
APIs Involved
Events API
OpsGenie API
Web API
https://github.com/serhatcan/serverless-opsgenie-slack-alert-unfurling
https://github.com/serhatcan/serverless-opsgenie-slack-alert-unfurling

More Related Content

What's hot (20)

PDF
Jira para gerenciamento de projetos
Pablo Juan ஃ
 
PPTX
Learn More About Microsoft Teams
Dock 365
 
PPTX
Jira overview
thanhlamct
 
PPTX
Jira training
Rahul Janghel
 
PPTX
Agile - Scrum Presentation
gihanlsw
 
PPTX
Azure DevOps Best Practices Webinar
Cambay Digital
 
PPTX
Jira Training
Unmesh Ballal
 
PPTX
Use of Jira Confluence as Project Management Tool
Jipin Nakarmi
 
PPT
Agile best practices
Areeba jabeen
 
PPT
Introduction To Jira Slide Share
Renjith V
 
PDF
An Introduction to Microsoft Flow
Robert Crane
 
PDF
Flutter for web
rihannakedy
 
PDF
Exploring the PowerApps advantage
Malin De Silva
 
PPTX
Power Automate Overview
TristanMobbs
 
PDF
Scrum and Agile SDLC 101
Aniruddha Ray (Ani)
 
PPTX
Agile methodology
Dhruv Kumar
 
PPTX
Integration of mule esb with microsoft azure
sivachandra mandalapu
 
PDF
Scrum - Agile Methodology
Niel Deckx
 
PPTX
AGILE METHODOLOGY
Deepak Agrawal
 
PDF
Jira as a Project Management Tool
Paolo Mottadelli
 
Jira para gerenciamento de projetos
Pablo Juan ஃ
 
Learn More About Microsoft Teams
Dock 365
 
Jira overview
thanhlamct
 
Jira training
Rahul Janghel
 
Agile - Scrum Presentation
gihanlsw
 
Azure DevOps Best Practices Webinar
Cambay Digital
 
Jira Training
Unmesh Ballal
 
Use of Jira Confluence as Project Management Tool
Jipin Nakarmi
 
Agile best practices
Areeba jabeen
 
Introduction To Jira Slide Share
Renjith V
 
An Introduction to Microsoft Flow
Robert Crane
 
Flutter for web
rihannakedy
 
Exploring the PowerApps advantage
Malin De Silva
 
Power Automate Overview
TristanMobbs
 
Scrum and Agile SDLC 101
Aniruddha Ray (Ani)
 
Agile methodology
Dhruv Kumar
 
Integration of mule esb with microsoft azure
sivachandra mandalapu
 
Scrum - Agile Methodology
Niel Deckx
 
AGILE METHODOLOGY
Deepak Agrawal
 
Jira as a Project Management Tool
Paolo Mottadelli
 

Similar to Introduction to Slack App Development (20)

PDF
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Rafael Antonio Gutiérrez Turullols
 
PPTX
Use Slack in software development processes
Igor Khomenko
 
PDF
Build apps for slack
Binod Jung Bogati
 
PPTX
Slack Integration Noida Meetup.pptx
Shiva Sahu
 
PPTX
ChatGPT and Slack Integration with MuleSoft
shyamraj55
 
PPTX
Building a slack bot
Jason Loeffler
 
PDF
Building Slack Apps with Ruby – Kirill Shevchenko
Ruby Meditation
 
PPTX
MuleSoft Slack Integration - meetup
Karthik Venkata T
 
PPTX
Slack and ChatGPT Integration using MuleSoft | MuleSoft Mysore Meetup #30
MysoreMuleSoftMeetup
 
PDF
[2019 south bay meetup] Building more contextual message with Block Kit
Tomomi Imura
 
PDF
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
apidays
 
PDF
apidays LIVE Australia 2020 - How we Build APIs and Workflows at Slack by Bea...
apidays
 
PPTX
Automatic Test Results Publishing using Slack
Yelitza Ruales
 
PDF
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
apidays
 
PPTX
Slack meetup 16 02-2020
Amit Chavan
 
PDF
Chat Bots and how to build a Slack bot
Vasu Jain
 
PDF
Identifying and solving enterprise problems
Vasu Jain
 
PPTX
Slack for the mere mortals
Abe Diaz
 
PPTX
Presentation On Slack
Rahul Khandelwal
 
PDF
Building Enterprise Chat Bots
Vasu Jain
 
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Rafael Antonio Gutiérrez Turullols
 
Use Slack in software development processes
Igor Khomenko
 
Build apps for slack
Binod Jung Bogati
 
Slack Integration Noida Meetup.pptx
Shiva Sahu
 
ChatGPT and Slack Integration with MuleSoft
shyamraj55
 
Building a slack bot
Jason Loeffler
 
Building Slack Apps with Ruby – Kirill Shevchenko
Ruby Meditation
 
MuleSoft Slack Integration - meetup
Karthik Venkata T
 
Slack and ChatGPT Integration using MuleSoft | MuleSoft Mysore Meetup #30
MysoreMuleSoftMeetup
 
[2019 south bay meetup] Building more contextual message with Block Kit
Tomomi Imura
 
apidays LIVE JAKARTA - How we Build APIs and Workflows at Slack by Bear Douglas
apidays
 
apidays LIVE Australia 2020 - How we Build APIs and Workflows at Slack by Bea...
apidays
 
Automatic Test Results Publishing using Slack
Yelitza Ruales
 
apidays LIVE Singapore - How we Build APIs and Workflows at Slack by Bear Dou...
apidays
 
Slack meetup 16 02-2020
Amit Chavan
 
Chat Bots and how to build a Slack bot
Vasu Jain
 
Identifying and solving enterprise problems
Vasu Jain
 
Slack for the mere mortals
Abe Diaz
 
Presentation On Slack
Rahul Khandelwal
 
Building Enterprise Chat Bots
Vasu Jain
 
Ad

Recently uploaded (20)

PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
PPTX
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PPTX
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Salesforce Experience Cloud Consultant.pdf
VALiNTRY360
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
Ad

Introduction to Slack App Development