Trello integration in Unity

Trello is one of the main tools that I use for any type of project. It doesn’t matter if is a Unity game, some side project or even real life meetings or projects.

To be honest, it just works. The kanban organization style is a bunch of notes one on top of another, and that is as simple as it gets. I don’t know about you, but when I use something almost as much as I use Unity, I start to think on how to link them together, so that I can use both at the same time.


Why open source


I started by searching if someone already managed to connect both applications, and to my surprise, somebody did.

The original repository Trello-Cards-Unity by bfollington is now over 3 years old, and it has not been receiving updates since then (the license was added 1 year ago, more on that later).

But, at the time the simple implementation was enough for me to send stuff from Unity directly to Trello.

Go some time in the future and a mysterious Trello integration appears on the Asset Store, for about $15. It included some simple UI and a little bit more features (calls to the same API, so nothing you couldn’t do on your own) than the open source version.

Long story short, the Asset Store package was just the open source version with minimal changes, published by a third party without even mentioning the original author.
As far as I know, as of today the package is still on the store, but I’m not going to link it for obvious reasons.

The open source repository at the time didn’t have a license file at all, which apparently means that is fully copyrighted but I’m no legal expert so I’m not going to make assumptions if the package on the store is “illegal” or not.

I contacted the original author with all the information and he ended up adding an MIT license, but the damage was already done.

For this reasons, I decided to remove the dust from my old implementation, improve it with the new API (Trello and Unity updated a bunch of stuff), add a demo UI and include as much features as possible, do that you don’t need to pay for something that was already free from the start.


Using Trello as a bug report tool


Probably the first thing that comes to mind. If you ever released a game to a small audience in the form of an Alpha or Beta, handling bug reports, feedback and other comments is always a mess.

In the end, you either direct the user to a forum or an email, or you end up building a really complicated report system of some sort that no one will use.

Having a forum is probably the best idea, but requires the user to not only leave your game, but also to be registered in some website, and well, you also need a hosting solution to put your forum in.

Directing the user to an email is the easiest, but also the most unorganized way, and no one wants to write an email anyway.

The idea here is to use a Trello board with some columns (bugs, feedback, etc) and then build a simple UI on Unity, that will send the user comments, a screenshot and the system requirements to the correct column.

You get all the information you need, everything is organised from the start and the implementation is painless.


Using Trello as an internal notes tool


Maybe reporting bugs is not your thing, or the development team is big enough (or is scattered around the world) that you end up sharing development notes everywhere, and they end up lost, or on private conversations without external input.

Instead of using one “Anonymous” user for all calls to the API, create an app on Trello and ask your coworkers to link their accounts with it, create a simple database with all the tokens and public keys, and make a simple UI that let’s you choose who you are before posting the note to Trello.

The result is a board of development ideas and notes organised all in the same place, with the correct user who added them.


Using Trello as a database


What about showing your game on events or in a booth in some convention?

If you never attended an event as a developer, just think that if someone stops in your booth and plays your game for some time, they probably liked it.

You should probably ask them for their email so that you can send your awesome newsletter with all the development updates, but you don’t know how.

You can always go around with a tablet and a Google form, or even with pen and paper, but now you have Trello! Just create a small popup that will show up at the end of the demo, or when the player dies, or after x amount of time (you get the idea) and ask them for their email directly in the game.

With this approach you can not only get their email, but also a report of the entire game, like lives left, levels played, time played or other specific data from your game, without the need to be looking over the shoulder of every attendee (you still should engage with them, though).

You could even unlock special items directly in the demo in return of an email, so that at release users that played your demo can get some nice skins or cosmetics!


Security and data integrity


Ok, let’s talk security for a second. The README file in the repository goes a lot deeper on how to protect your data and what are you exposing in terms of keys and security issues, but I’m going to do a little resume here just in case.

All data you send through the API is secured like in any other application (uses HTTPS for all the endpoints, and the Unity side is using UnityWebRequest), so any development screenshots or emails are secure during the transfer.

Keep in mind though that the Trello API is token based, meaning that to use it, you need your personal key, an application, and a token. Someone with the public key and the private token has full access to the account they are related to.

Knowing this, if you expect to distribute your application to the general public (an open Beta, or similar), don’t include or ask for any personal information, and use private accounts for the API. Getting the private token form a compiled game is not that easy, but don’t underestimate the Internet.


Conclusion


Use it, break it, fix it and then commit your changes! The license is MIT so you can choose to send your improved versions back as pull requests, or keep it to yourself (if you hate open source, or you are working on a closed source environment).

If you end up doing anything cool with it (or just using it), I love to see with what you came up!
You can tweet to me at @Engyne with your cool creation.

That’s everything. If you find any issue just submit it on the Github Issues tab and I’ll look at it.