Transantiago Bot
Smart virtual assistant for Santiago de Chile's public transit bus network.
The Chilean Ministry of Transport's Official Bot
Back in 2017, during the boom of Facebook Messenger, and a year after Meta (then Facebook) announced Bots for Messenger, the Chilean Ministry of Transport launched its own chatbot for Santiago's public transit bus network. The bot, called "Predictor Transantiago," was meant to help users navigate Transantiago (the city's public transit bus system at the time) by providing live bus ETAs.
But it kind of sucked.
The official chatbot didn't offer any guidance or feedback on how to use it. It only responded to a predefined command format from the Ministry of Transport, and it didn’t take advantage of modern Messenger Platform APIs for chatbots (like quick replies or persistent menus). It was as basic as a chatbot could get. To make things worse, the bot only really worked about half the time, making it both hard to use and unreliable.
I figured the city deserved better. So, in an attempt to bring some dignity to the digital side of Santiago's transit system, I took a stab at making my own.
Transantiago Bot
By leveraging modern Messenger Platform APIs, Transantiago Bot delivered a consistently better and more approachable experience than the official alternative.
Modern APIs allowed it to have buttons, images, and even a persistent menu pinned at the bottom of the screen, with shortcuts to its main features, for easy access.
It used natural language, complemented its replies with imagery when useful, and was packed with features to make it the perfect on-the-go transit assistant for Santiago's bus network—beyond just bus ETAs.
To check bus ETAs, users could send the bot a plain stop code—like in the example above—or ask the chatbot in natural language. Alternatively, they could use the persistent menu, which guided users on what was needed to proceed.
One fun detail I added (because why not?) was marking the next bus with a lightning emoji if it was electric. Back in 2017, Santiago was in the midst of becoming the #1 city with the most electric buses outside of China, and the first new buses were starting to arrive—so I figured I’d celebrate that.
This feature wasn’t straightforward to implement, though, as there wasn’t any publicly available data on which buses were electric at the time, and the Ministry of Transport’s official endpoints didn’t provide that info either.
To make this work, I relied on third-party sources (e.g., people who worked at internal transit agencies) to maintain my own internal database of electric bus license plates. Each time Transantiago Bot generated a bus ETA response, it compared the license plates of buses approaching a specific stop to my database, and marked them with the emoji if they matched.
While this approach was evidently not scalable over time, it quickly proved to be a delightful little detail, and it was even incorporated into the Ministry of Transport's official transit apps later on.
On top of asking for all bus ETAs within a stop, users could also specify a service, like "When's the next 516 bus coming to PA385?"
For requests about specific bus routes, Transantiago Bot provided everything it knew about the service (stops, disruptions, etc.).
Routes linked users to a complementary map webview I developed specifically for Transantiago Bot, allowing for a more familiar browsing experience.
Besides buses, you could also check your Bip card (Santiago's bespoke contactless transit card) balance, and even save it on Transantiago Bot for easier access.
Guiding assets varied between regular and student cards, honoring their real-world design differences.
As a little easter egg, Transantiago Bot was also capable of some light chit-chatting. It was no artificial intelligence, but it could hold its own in simple back-and-forths, and even use GIFs to lighten the mood.
After serving around ~300 organic monthly active users, Transantiago Bot was eventually sunsetted in 2019, following a failed acquisition attempt by Chile's Ministry of Transport.
In the words of their own technical project lead, it was cheaper for them to just "copy what I did," so they pulled back. They never iterated on their official product, though. Instead, they hired—I'm not kidding—a human employee to manually reply to their own chatbot behind the scenes. Unsurprisingly, it eventually stopped working a few months later.
Maybe the real chatbots were the friends we made along the way.
Period
2018 — 2019
Sector
Mobility & Transport
Product Design
Laura Sandoval
Engineering
Laura Sandoval
Special thanks to
Rodrigo Ramírez
Cristóbal Alfaro