by Salva

Flybot - Our Hackweek bot project


Why a bot?

Flywire has grown a lot in the last 2 years, people are joining our team every month. Therefore, the communication with other Flymates and departments is key to continue building a service that allows thousands of users around the world to pay their school tuitions, accommodations or daily expenses.

One of the tools we use to reduce the communication gap is Slack. It helps us to organize the internal communication having it all in one place and structured by topics (channels). Why Slack? That could be a topic for another post, but in this one, what we want to communicate is that it does not matter if you use Slack, Hipchat, Campfire or any other of the infinite available chat tools, what is important is that you get the maximum benefit from them.

In the dev or engineering community it is well known the use that we give to these type of tools, in which we integrate great functionalities using our magic coding skills and create bots that help us with our daily tasks like deployments, configurations,… or just to have some fun. These techniques are recently known as chatops.

Then, why can’t these bots be useful to other people in the company using the chat? How could help them to improve the communication across different teams? Just taking a look through the channels we got plenty of ideas to answer these questions.

The Hackweek

The ideas about a company-wide bot were rounding our minds for some time, but it wasn’t until this year’s Hackweek that we started to develop them and to get feedback from other people outside the Product & Dev teams.

The plan of a Hackweek in Flywire is quite simple, you just pick an idea, gather a team, work on it and deliver it in just one week (there are other posts that talk about past editions).

This year’s HackWeek included great projects, some of them are:

  • Flywire Tv: A repository service with internal and external videos about Flywire related content.
  • Donate: This project was born with the idea of incorporating the option to make a charity donation when paying through Flywire.
  • Company Timeline: An internal timeline where anyone at Flywire could find the most important company related events.
  • Our Payment Widget with Steroids + Wordpress Plugins: This project allows people configuring our Flywire widget with different settings. In addition, we built a Wordpress plugin for it.
  • Flywire Mobile: A prototype of a possible Flywire mobile app.
  • Flywire Knowledge Base Revitalization: CSR guys were participating (even coding) on this one in order to see how we could improve our FAQ section.
  • Pricing Matrix the way it was intended: In this project the participants made a review and analysis about our current pricing solution and how it could be improved and evolved to absorb further changes.
  • Upgrade the team directory in Lounge: We have an internal tool to manage the information about the mates at Flywire, but there were some functionalities missing for the People & Culture department. We tried an integration with Bamboo HR.
  • Make meetings recorder OpenSource: Along last year with the help of Iñigo, a mate that worked with us for 6 months, we built a meetings recorder on top of Google Hangouts, the work done during the Hackweek was with the intention of open sourcing it. And …

Flybot

Some mates brought their opinions about how a bot could help them in their daily tasks in Slack. In addition, we detected that most of them were using some of the channels just to:

  • Notify about a new opened or updated client case.
  • Notify about a new test payment waiting for the approval and confirmation from others.
  • Talk about a customer payment having to copy & paste and check its information in our internal dashboard. …

All these communications and interactions could be improved just by offering an url or providing the information about the case or payment when they type its reference in a channel. So we got started in this project right away.

To create a bot, like the one we had in mind, there are multiple options in multiple languages. As we develop almost everything in Ruby, we decided to go with Lita. We created a new app in our platform as a Lita project and then inside it, we created our bot via a Lita plugin. (Sorry!, We are not writing down and showing the code and configuration here, there is a talk that our mate Jose Luis gave about chatops in Valencia Devops meeting, in Spanish).

This is how our new friend Flybot was born. With Flybot, our mates from other departments now can do things like:

Look for information about a payment with its reference
Look for information about a payment with its reference
Get the url of a customer case by its number
Get the url of a customer case by its number
Get the url to open a support ticket with us
Get the url to open a support ticket with us
Look for places where we can find food near our offices
Look for places where we can find food near our offices

These are examples of some of the basic commands we implemented in the Hackweek, but there is room to do more things and continue giving tools to our mates with the intention to do daily actions easier. Moreover, it helps all of us to improve the communication through one of our main communication channels, which is the chat.

I’m sure that in your dev or tech team you already have something similar to automate your daily tasks, but probably, like us before Flybot, you haven’t yet shared your magic skills to help other mates in your company. Try it and let us know ;) We are sure that there are multiple of advantages you and your company can take from it.

Resources we used to build Flybot

https://www.lita.io https://github.com/kenjij/lita-slack https://slack.com/integrations https://www.quora.com/Which-are-some-of-the-most-interesting-Slack-bots

Salva Revert Pedron Developer at Flywire