SlideShare a Scribd company logo
BUILDING A SLACK BOT
USING ASP.NET WEB API AND AZURE
My company in 20s
• End-to-end payments platform
• API-First
• Docker, C#, ASP.NET, Java,
Powershell, SQL
• #31 Nilsen top merchant acquirer
• Inc. 5000 fastest growing
company
• STL Top Place to Work
• Sound fun? It is. Come see me.
2
• Same idea as IRC bots
‒ Slash-commands give users a way of interacting with the system directly
‒ /join
‒ /leave
‒ /mute
‒ Administrators/moderators can manage the system from chat
‒ /kick [user]
‒ /topic [new topic]
• Can appear as a user or more like a program
‒ Paul: Where’s the wiki again?
‒ Slackbot: The wiki is at https://wiki.clearent.com
‒ Paul: /weather 63132
‒ Slackbot: Sunny and clear. 90 degrees
WHAT’S A BOT?
WHY BUILD A SLACK BOT?
4
• Fun project that you can get rolling in a
few hours – then iterate
• Automate common tasks
‒ Bots don’t get lazy. Let them do the chores.
• Provide automated help, disseminate info
‒ What’s the ip of that load balancer again?
• Automate manual workflows
• Get practice with a low-risk public API
• Build your own friend without soldering!
Anyone remember ELIZA?
5
INCOMING
WEBHOOKS
• Post messages to your Slack team from any app that can issue an HTTP request
INTERACTIVE
MESSAGES
• Let users interact with messages, such as buttons, menus, workflows
• Examples include surveys, ticket approval, kick off builds
SLASH
COMMANDS
• Commands that users can issue that call into your API
• Gives users the ability to launch simple programs from chat. ChatOps!
BOT USERS
• Bot Users look like a real user in Slack. They can respond to requests, interact with people,
or just listen in.
• Slackbot is a bot user
EVENT
SUBSCRIPTIONS
• Subscribe to events such as a message post, user joining/leaving a channel, etc
• Slack will call into your API with details about the event your bot has subscribed to
REAL-TIME
MESSAGING
• A real-time feed of Slack events. Much more involved than other options, but also very
powerful.
• Use one of the other options if possible. Event Subscriptions can usually handle these use-
cases.
SLACK CAPABILITIES
STARTING YOUR PROJECT
6
STARTING YOUR PROJECT
7
STARTING YOUR PROJECT
8
STARTING YOUR PROJECT
9
STARTING YOUR PROJECT
10
STORAGE
11
STORAGE
12
CHANGE SERVICE PLAN
13
14
• Choose the free plan while developing
• SSL not available, however
• App will spin-down when not in use
CHANGE SERVICE PLAN
15
16
• Going on call
• Who’s on call?
• Going off call
ON CALL BOT
FORMATTING MESSAGES
17
• Linking to Channels
‒ <#channel_id|channel_name>
‒ Ex. <#C024BE7LR|general>
• Linking to people
‒ <@user_id|user_name>
‒ Ex. <@U024BE7LH|bob>
• Formatting dates
‒ <!date^unix_epoch_timestamp^string_containing_date_tokens^optional_link|fallback_text>
So many options…
18
MTP BOT
19
• Change Request Approval
• Stop the presses!
• All good. Ship it.
BOTS IN THE WILD!
20
• Twitch Moobot – moderates chat, looking for abuse and escalating penalties
• Twitch Nightbot – automated giveaways, song requests, etc via slash
commands
• IRC bots are numerous and varied
• Customer support chat modals – attempts to answer common questions,
escalates to a real person when confused
• Cortana, Alexa, Siri – natural language, speech recognition, AI
• And of course, SlackBot!
21
Your ideas?
THANK YOU!
• Twitter: jmloeffler
• G+: jmloeffler
• Github: jmloeffler
• OnCallBot -
https://github.com/jmloeffler/oncallbot
22

More Related Content

What's hot

Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability Engineering
Mark Underwood
 
Best Practices for Large-Scale Websites -- Lessons from eBay
Best Practices for Large-Scale Websites -- Lessons from eBayBest Practices for Large-Scale Websites -- Lessons from eBay
Best Practices for Large-Scale Websites -- Lessons from eBay
Randy Shoup
 
Customer-centric Metrics
Customer-centric MetricsCustomer-centric Metrics
Customer-centric Metrics
Mark McBride
 
Why do you need Clever Cloud ?
Why do you need Clever Cloud ?Why do you need Clever Cloud ?
Why do you need Clever Cloud ?Quentin Adam
 
The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...
Quentin Adam
 
DevOps Best Practices and Implementation Roadmap
DevOps Best Practices and Implementation RoadmapDevOps Best Practices and Implementation Roadmap
DevOps Best Practices and Implementation Roadmap
Jason Montgomery
 
Cloud fail scaling to infinity but not beyond
Cloud fail   scaling to infinity but not beyondCloud fail   scaling to infinity but not beyond
Cloud fail scaling to infinity but not beyondKunal Johar
 
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's PerspectiveAPI Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
Niall Roche
 
Agile User Stories | The complete Review
Agile User Stories | The complete ReviewAgile User Stories | The complete Review
Agile User Stories | The complete Review
David Tzemach
 
Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'
DevOpsDays DFW
 
Continous delivery - lad koden flyde 2014
Continous delivery - lad koden flyde 2014Continous delivery - lad koden flyde 2014
Continous delivery - lad koden flyde 2014
BestBrains
 
Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
Mark McBride
 
How to manage and monitor large sql server estates
How to manage and monitor large sql server estatesHow to manage and monitor large sql server estates
How to manage and monitor large sql server estates
Red Gate Software
 
1 2 dev ops - vsts overview
1 2 dev ops - vsts overview1 2 dev ops - vsts overview
1 2 dev ops - vsts overview
Okko Oulasvirta
 
URP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to KnowURP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to Know
Todd Palino
 
Intro to event sourcing and CQRS
Intro to event sourcing and CQRS Intro to event sourcing and CQRS
Intro to event sourcing and CQRS
Savvas Kleanthous
 
Synthetic and RUM - Best of bo
Synthetic and RUM - Best of boSynthetic and RUM - Best of bo
Synthetic and RUM - Best of bo
Cliff Crocker
 
5 Cloud Migration Experiences Not to Be Repeated
5 Cloud Migration Experiences Not to Be Repeated5 Cloud Migration Experiences Not to Be Repeated
5 Cloud Migration Experiences Not to Be Repeated
Hostway|HOSTING
 
Walmart pagespeed-slide
Walmart pagespeed-slideWalmart pagespeed-slide
Walmart pagespeed-slide
Bitsytask
 
I want to be an efficient developper - APIdays Berlin 2014
I want to be an efficient developper - APIdays Berlin 2014I want to be an efficient developper - APIdays Berlin 2014
I want to be an efficient developper - APIdays Berlin 2014Quentin Adam
 

What's hot (20)

Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability Engineering
 
Best Practices for Large-Scale Websites -- Lessons from eBay
Best Practices for Large-Scale Websites -- Lessons from eBayBest Practices for Large-Scale Websites -- Lessons from eBay
Best Practices for Large-Scale Websites -- Lessons from eBay
 
Customer-centric Metrics
Customer-centric MetricsCustomer-centric Metrics
Customer-centric Metrics
 
Why do you need Clever Cloud ?
Why do you need Clever Cloud ?Why do you need Clever Cloud ?
Why do you need Clever Cloud ?
 
The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...
 
DevOps Best Practices and Implementation Roadmap
DevOps Best Practices and Implementation RoadmapDevOps Best Practices and Implementation Roadmap
DevOps Best Practices and Implementation Roadmap
 
Cloud fail scaling to infinity but not beyond
Cloud fail   scaling to infinity but not beyondCloud fail   scaling to infinity but not beyond
Cloud fail scaling to infinity but not beyond
 
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's PerspectiveAPI Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
 
Agile User Stories | The complete Review
Agile User Stories | The complete ReviewAgile User Stories | The complete Review
Agile User Stories | The complete Review
 
Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'
 
Continous delivery - lad koden flyde 2014
Continous delivery - lad koden flyde 2014Continous delivery - lad koden flyde 2014
Continous delivery - lad koden flyde 2014
 
Traffic Control with Envoy Proxy
Traffic Control with Envoy ProxyTraffic Control with Envoy Proxy
Traffic Control with Envoy Proxy
 
How to manage and monitor large sql server estates
How to manage and monitor large sql server estatesHow to manage and monitor large sql server estates
How to manage and monitor large sql server estates
 
1 2 dev ops - vsts overview
1 2 dev ops - vsts overview1 2 dev ops - vsts overview
1 2 dev ops - vsts overview
 
URP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to KnowURP? Excuse You! The Three Kafka Metrics You Need to Know
URP? Excuse You! The Three Kafka Metrics You Need to Know
 
Intro to event sourcing and CQRS
Intro to event sourcing and CQRS Intro to event sourcing and CQRS
Intro to event sourcing and CQRS
 
Synthetic and RUM - Best of bo
Synthetic and RUM - Best of boSynthetic and RUM - Best of bo
Synthetic and RUM - Best of bo
 
5 Cloud Migration Experiences Not to Be Repeated
5 Cloud Migration Experiences Not to Be Repeated5 Cloud Migration Experiences Not to Be Repeated
5 Cloud Migration Experiences Not to Be Repeated
 
Walmart pagespeed-slide
Walmart pagespeed-slideWalmart pagespeed-slide
Walmart pagespeed-slide
 
I want to be an efficient developper - APIdays Berlin 2014
I want to be an efficient developper - APIdays Berlin 2014I want to be an efficient developper - APIdays Berlin 2014
I want to be an efficient developper - APIdays Berlin 2014
 

Similar to Building a slack bot

Ottspott by Apidaze @API Days Paris 2015
Ottspott by Apidaze @API Days Paris 2015Ottspott by Apidaze @API Days Paris 2015
Ottspott by Apidaze @API Days Paris 2015
Luis Borges Quina
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
Daniel Zivkovic
 
Experience Session - Hari
Experience Session - HariExperience Session - Hari
Experience Session - Hari
SV.CO
 
SV.CO’s iterative product development
SV.CO’s iterative product developmentSV.CO’s iterative product development
SV.CO’s iterative product development
hari
 
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
Manish Kumar Yadav
 
2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...
2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...
2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...
aOS Community
 
Spc tallinn launch deck (1)
Spc tallinn launch deck (1)Spc tallinn launch deck (1)
Spc tallinn launch deck (1)
julien basselier
 
HKOSCON 2020 - Open by default
HKOSCON 2020 - Open by defaultHKOSCON 2020 - Open by default
HKOSCON 2020 - Open by default
William Chong
 
scraplr presentation
scraplr presentationscraplr presentation
scraplr presentation
anggikrisna
 
EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...
EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...
EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...
{code}
 
Bluemix DevOps Services
Bluemix DevOps Services Bluemix DevOps Services
Bluemix DevOps Services
Paula Peña (She, Her, Hers)
 
Building Enterprise Chat Bots
Building Enterprise Chat BotsBuilding Enterprise Chat Bots
Building Enterprise Chat Bots
Vasu Jain
 
Embrace the frontend revolution
Embrace the frontend revolutionEmbrace the frontend revolution
Embrace the frontend revolution
Alvaro Sanchez-Mariscal
 
Embrace the front-end revolution - Sánchez-Mariscal
Embrace the front-end revolution - Sánchez-MariscalEmbrace the front-end revolution - Sánchez-Mariscal
Embrace the front-end revolution - Sánchez-Mariscal
Codemotion
 
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
Lucas Jellema
 
Using Redis Streams To Build Event Driven Microservices And User Interface In...
Using Redis Streams To Build Event Driven Microservices And User Interface In...Using Redis Streams To Build Event Driven Microservices And User Interface In...
Using Redis Streams To Build Event Driven Microservices And User Interface In...
Redis Labs
 
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat
 
But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?
gagravarr
 
InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020 InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020
InfluxData
 
Slack Apps: Best practices & Use Cases!
Slack Apps: Best practices & Use Cases!Slack Apps: Best practices & Use Cases!
Slack Apps: Best practices & Use Cases!
TheFamily
 

Similar to Building a slack bot (20)

Ottspott by Apidaze @API Days Paris 2015
Ottspott by Apidaze @API Days Paris 2015Ottspott by Apidaze @API Days Paris 2015
Ottspott by Apidaze @API Days Paris 2015
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Experience Session - Hari
Experience Session - HariExperience Session - Hari
Experience Session - Hari
 
SV.CO’s iterative product development
SV.CO’s iterative product developmentSV.CO’s iterative product development
SV.CO’s iterative product development
 
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
MuleSoft Meetup slides_kualalumpur_19thSept_Undisturbed REST: Achieving Undis...
 
2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...
2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...
2019-08-13 - aOS Sao Paulo - Wiliam Rocha - Teams, bots e PowerPlatform um ex...
 
Spc tallinn launch deck (1)
Spc tallinn launch deck (1)Spc tallinn launch deck (1)
Spc tallinn launch deck (1)
 
HKOSCON 2020 - Open by default
HKOSCON 2020 - Open by defaultHKOSCON 2020 - Open by default
HKOSCON 2020 - Open by default
 
scraplr presentation
scraplr presentationscraplr presentation
scraplr presentation
 
EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...
EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...
EMC World 2016 - code.10 Jumpstart your Open Source Presence through new Coll...
 
Bluemix DevOps Services
Bluemix DevOps Services Bluemix DevOps Services
Bluemix DevOps Services
 
Building Enterprise Chat Bots
Building Enterprise Chat BotsBuilding Enterprise Chat Bots
Building Enterprise Chat Bots
 
Embrace the frontend revolution
Embrace the frontend revolutionEmbrace the frontend revolution
Embrace the frontend revolution
 
Embrace the front-end revolution - Sánchez-Mariscal
Embrace the front-end revolution - Sánchez-MariscalEmbrace the front-end revolution - Sánchez-Mariscal
Embrace the front-end revolution - Sánchez-Mariscal
 
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
What is Kafka & why is it Important? (UKOUG Tech17, Birmingham, UK - December...
 
Using Redis Streams To Build Event Driven Microservices And User Interface In...
Using Redis Streams To Build Event Driven Microservices And User Interface In...Using Redis Streams To Build Event Driven Microservices And User Interface In...
Using Redis Streams To Build Event Driven Microservices And User Interface In...
 
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
LF_APIStrat17_Connect Your RESTful API to Hundreds of Others in Minutes (Zapi...
 
But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?
 
InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020 InfluxDB Community Office Hours September 2020
InfluxDB Community Office Hours September 2020
 
Slack Apps: Best practices & Use Cases!
Slack Apps: Best practices & Use Cases!Slack Apps: Best practices & Use Cases!
Slack Apps: Best practices & Use Cases!
 

Recently uploaded

In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 

Recently uploaded (20)

In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 

Building a slack bot

  • 1. BUILDING A SLACK BOT USING ASP.NET WEB API AND AZURE
  • 2. My company in 20s • End-to-end payments platform • API-First • Docker, C#, ASP.NET, Java, Powershell, SQL • #31 Nilsen top merchant acquirer • Inc. 5000 fastest growing company • STL Top Place to Work • Sound fun? It is. Come see me. 2
  • 3. • Same idea as IRC bots ‒ Slash-commands give users a way of interacting with the system directly ‒ /join ‒ /leave ‒ /mute ‒ Administrators/moderators can manage the system from chat ‒ /kick [user] ‒ /topic [new topic] • Can appear as a user or more like a program ‒ Paul: Where’s the wiki again? ‒ Slackbot: The wiki is at https://wiki.clearent.com ‒ Paul: /weather 63132 ‒ Slackbot: Sunny and clear. 90 degrees WHAT’S A BOT?
  • 4. WHY BUILD A SLACK BOT? 4 • Fun project that you can get rolling in a few hours – then iterate • Automate common tasks ‒ Bots don’t get lazy. Let them do the chores. • Provide automated help, disseminate info ‒ What’s the ip of that load balancer again? • Automate manual workflows • Get practice with a low-risk public API • Build your own friend without soldering! Anyone remember ELIZA?
  • 5. 5 INCOMING WEBHOOKS • Post messages to your Slack team from any app that can issue an HTTP request INTERACTIVE MESSAGES • Let users interact with messages, such as buttons, menus, workflows • Examples include surveys, ticket approval, kick off builds SLASH COMMANDS • Commands that users can issue that call into your API • Gives users the ability to launch simple programs from chat. ChatOps! BOT USERS • Bot Users look like a real user in Slack. They can respond to requests, interact with people, or just listen in. • Slackbot is a bot user EVENT SUBSCRIPTIONS • Subscribe to events such as a message post, user joining/leaving a channel, etc • Slack will call into your API with details about the event your bot has subscribed to REAL-TIME MESSAGING • A real-time feed of Slack events. Much more involved than other options, but also very powerful. • Use one of the other options if possible. Event Subscriptions can usually handle these use- cases. SLACK CAPABILITIES
  • 14. 14 • Choose the free plan while developing • SSL not available, however • App will spin-down when not in use CHANGE SERVICE PLAN
  • 15. 15
  • 16. 16 • Going on call • Who’s on call? • Going off call ON CALL BOT
  • 17. FORMATTING MESSAGES 17 • Linking to Channels ‒ <#channel_id|channel_name> ‒ Ex. <#C024BE7LR|general> • Linking to people ‒ <@user_id|user_name> ‒ Ex. <@U024BE7LH|bob> • Formatting dates ‒ <!date^unix_epoch_timestamp^string_containing_date_tokens^optional_link|fallback_text> So many options…
  • 18. 18
  • 19. MTP BOT 19 • Change Request Approval • Stop the presses! • All good. Ship it.
  • 20. BOTS IN THE WILD! 20 • Twitch Moobot – moderates chat, looking for abuse and escalating penalties • Twitch Nightbot – automated giveaways, song requests, etc via slash commands • IRC bots are numerous and varied • Customer support chat modals – attempts to answer common questions, escalates to a real person when confused • Cortana, Alexa, Siri – natural language, speech recognition, AI • And of course, SlackBot!
  • 22. THANK YOU! • Twitter: jmloeffler • G+: jmloeffler • Github: jmloeffler • OnCallBot - https://github.com/jmloeffler/oncallbot 22