Sunny is ASU's chatbot. The university was spending $1,000,000 a year to outsource a chatbot to an external vendor; we built it in-house with a five-person office. The vendor contract (and that recurring spend) went away.
I worked on both halves of Sunny: the conversational interface students hit across SMS, in-app chat, and the university website, and the React + AWS dashboard staff used to operate it. The conversational engine meant integrating with NLP backends, handling fallback flows for ambiguous queries, and structuring the conversation tree so it could grow as more student-services categories were added.
A no-code dashboard for non-technical staff
The administrators who actually run student services are not engineers. The dashboard had to make Sunny operable by them without a single line of code or a developer in the loop:
- A no-code notification builder that let non-technical staff compose scheduled outbound notifications to students and staff: pick the audience, write the message, schedule the delivery time, ship.
- Operational visibility so the same staff could see where Sunny was succeeding and where it was failing without learning a query language, then refine the conversation tree themselves.
Three surfaces, one chatbot
Sunny met students wherever they already were:
- SMS. Students texted in and got the same conversational engine.
- In-app chat inside the ASU mobile app, built in-house.
- The university website. Sunny was the engine; the embedded chat interface on the site was built by a separate team.
Same conversation logic across all three; the surfaces were just transports.
The trade-offs
Building a conversational system in-house at a five-person office instead of outsourcing means owning every failure mode yourself. When a student gets a bad answer at 2 a.m. before finals, that's on the team. The trade is unambiguous: the institution keeps the savings, the team keeps the operational lens an outsourced vendor would never have given them, and the system evolves at the speed of the people running it instead of the speed of a vendor's release cycle.