lazyweb: trying to find a blog post with tips for how to design bots that interact over SMS
less "how to use the Twilio API" (that's easy), more "what state to store in the database, tips for designing state machines, how to keep it simple, etc”
lazyweb: trying to find a blog post with tips for how to design bots that interact over SMS
less "how to use the Twilio API" (that's easy), more "what state to store in the database, tips for designing state machines, how to keep it simple, etc”
@b0rk couple of years ago, when my friend was at a local hackathon / competition, he needed to automate sending/receiving SMS, but since we live in Armenia, a country that Twilio probably never even heard of, I built my friend a unscalable version of Twilio using Nokia N900, Python 2.5 and DBus. He just had to interact with it via an HTTP API.
So… I feel you.
@b0rk ooohhh I've worked with survey responses via sms bot, but it was in a larger context of other response channels too, so that might be overkill for only sms. I'll see if I have any good write ups in my notes tho to link you to.
@b0rk wasn’t there a hype cycle around “conversational interfaces” 5 or 10 years back? Maybe that’s a search term that’d help?
also very interested in good libraries (no AI please!) you've used for making SMS bots
(libraries like BotKit https://github.com/howdyai/botkit, not like Twilio, I'm interested in the interface the library provides for managing state etc)
@b0rk If you’re using Ruby I maintain a gem that extracts away the twilio API and gives DB tables and mounts as an engine to abstract lots away. But it emphasizes the phone much more than SMS. And is North America centric. Could still maybe be useful? https://github.com/kmcphillips/twilio-rails
@b0rk you could look at BotPress for inspiration: https://github.com/botpress
@b0rk My tip after working for a company that sent out party invitations via SMS is to watch out for and guard against infinite reply loops. The easiest way to do that is probably to store a DB record for each SMS and add rate limiting added on outbound number.
Something like only 6 messages per minute and 20 per hour.
@b0rk on the state machine side, at some point I've developed a library that allows to describe the states as properties of classes or descriptors https://python-tuco.readthedocs.io/en/stable/readme.html
@kmcphillips thanks, will take a look! really appreciate any examples of interfaces people are building on top of twilio :)