Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
We Make Bots. For Real
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Андрей Листочкин (Andrey Listochkin)
April 08, 2017
Programming
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
We Make Bots. For Real
Андрей Листочкин (Andrey Listochkin)
April 08, 2017
More Decks by Андрей Листочкин (Andrey Listochkin)
See All by Андрей Листочкин (Andrey Listochkin)
Everybody Stand Back! I Know Regular Expressions
listochkin
0
230
Command-line scripting with Rust. Wait, what?!
listochkin
0
420
Server Memory - BuildStuff Ukraine 2019
listochkin
0
71
Server Memory - Chernivtsi JS 2019
listochkin
1
170
10 Years Later
listochkin
0
400
Managing Managers - DevTalks iHUB
listochkin
0
86
Time, Numbers, Text
listochkin
1
670
Software Licensing: A Minefield Guide
listochkin
0
190
Devops for A Busy Developer - XP Days 2016
listochkin
0
190
Other Decks in Programming
See All in Programming
ALB ログから Trace を気合で繋げる技術
fohte
7
840
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
130
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
760
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.4k
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
110
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.6k
Oxlintはいいぞ(続)
yug1224
1
520
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
130
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
510
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
570
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.6k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
How GitHub (no longer) Works
holman
316
150k
Building the Perfect Custom Keyboard
takai
2
860
HDC tutorial
michielstock
2
840
We Have a Design System, Now What?
morganepeng
55
8.3k
Code Reviewing Like a Champion
maltzj
528
40k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Transcript
None
@listochkin
<3 Ruby
No Ruby today
None
Rust Favorite language Ruby Extensions WASM
RustFest Workshops Intro Advanced Adoption
Mozilla Travis CI Samsung Chef CloudFlare Evo
Steve Klabnik lislis Ingvar Stepanyan Paul Colomiets
Rust is for Rubyists
http://bit.ly/rustfest2017ruby 50% off
I’ll talk about my work
None
Bot building system
None
None
Conceived about 6 years ago
We’ve been building bots before it was cool
Bot
IRC WoW bots Web Scrapers
Chatbots
Conversational Commerce
A bot pretends to be a human
Makes stuff happen
Emphasis on “Human” aspect
Wit.ai API.ai Motion.ai Microsoft Bot Framework Init.ai <Whatever>.ai
Can you <deliver> <my order> to <my work address> instead?
What to do when there’s no match?
Guess Bail out
AI + Human
Facebook M 70% required human
Leaky abstraction
Bots are Dead End of story
“Human”-like is a red herring
How vs What
Goal Scenario Guidance
Humanize later
Scenario
Workflow
Do X Do Y Do Z
Customer case: PeopleReady
Workforce matching
“Uber for Workers”
I’m a construction worker I’m free next Friday
I need 5 extra construction workers on site next Friday
Phone Decision Tree
“If you need X press 1”
IVR “Interactive Voice Response”
Step 1: Static Tree
Step 2-∞: Refinements Shortcuts A/B tests
Identify a person/role Reduce tree
Known pending request: top-level notification
Global shortcuts
Keywords, numbers, etc.
Bot-to-Bot IVR-to-IVR
Pass context
Session storage HTTP/SIP headers Forward DTMFs
Dumb Boring
Efficient Predictable Less frustrating
None
Workflow Builder Execution Services Operator Apps Reporting
Many competitors Not a winner-takes-all
Lessons Learned
1. Providers
Slack, Messenger, Telegram, Skype, Email, sms, HipChat, WeChat, LINE, etc
The more the better?
SMS Phone Email
No middle man apps Brand <=> Phone
2. Execution model
State Machine
State Machine as Data
Flow Tree => Data Structure Executor
State Machine as Code
Flow Tree => Data => Code
Separate Infrastructure Separate Deploys Separate Load
AWS Lambda
3. Steps are the key
if … else Choice 10-15
Smart Steps 100s
Phone Transfer
Transfer to X Backup number? Voicemail? Transcode?
Feature discovery
Higher quality Bots by default
Programmable steps
Flow => Step
Step = Logic + UI both programmable
Custom JS Step
4. Service Flows
Pick up the phone Identify a User Voice Choice …
Number Provisioning API Adapter Reporting Events Hide Secrets …
Service flows Global Events with ACL
5. Dogfooding
Everything is a bot
Admin tools Monitoring Reporting Billing
6. UI and Reporting Sell Platform retains
UI! So many capabilities!
“Can you set it up for us?”
Typical Customer: sets thing up once receives reports
7. Reporting!
SQL Server OLAP Direct access
Let customers play with the data
8. AWS Lambda
async (req, context) => { ... }
Node 4.3 (6!) Python Java
Use Large
1 request = 1 new process
Dynamo & Redis :) Mongo, SQL :(
Dynamo is amazing!
9. Voice
Voice is inherently hard!
Twilio Best API and DevTools Still hard :(
Larger customers need cheaper voice
TwiML Twilio SIP + Custom Voice Direct SIP-to-SIP
SIP + RTP
SIP Commands & Events Bi-directional
RTP - audio
Often Arcane practices
Huge Risk
Opens doors
10. Small things Big Impact
Haiti Earthquake SMS Fundraiser
Suicide Prevention Hotline
Washington DC city bot
Roadside assistance Match-making Marketing Customer support Sales
OneReach
29-30 RustFest http://bit.ly/rustfest2017ruby 50% off
29-30 RustFest http://bit.ly/rustfest2017ruby 50% off 2 free tickets today