Use case: Team Collaboration

Uniting developers and PMs with Asana, Github, and Slack

Core integrations

Alexandre Rimthong is Unito’s Platform Lead. In this article, he reveals how Unito’s product and engineering teams use the tool to keep tickets in Asana automatically updated with work from GitHub.

When building software, new features and fancy tools don’t mean much if users can’t…well…use them. Solving bugs and other quality issues depends on the effective collaboration between multiple teams. The steps required demand transparency and frictionless communication, from initial detection by a customer success expert, through triage by the product team and, finally, building an engineering solution.

Our product managers use Asana as their work hub, while engineers build solutions in GitHub, and everyone relies on Slack for general communications. Keeping information flowing across these channels can be daunting.

The tool stack

Asana

This is the work hub for the entire company. When the support team finds a bug, they file it here. Before each sprint, product managers go through tickets, feature requests, and more in Asana before deciding what they need to prioritize. Whenever our software teams need to collaborate with other departments, that begins here, too.

GitHub

Every little bit of development work that goes into our tool happens in GitHub. We use version control to handle multiple code branches, merging when we’ve fixed particularly nasty bugs or finished development on a feature.

Slack

Everyone at Unito communicates through Slack, and it’s an essential tool for collaboration. We also use it to keep the company at large aware of development work, with channels dedicated to deployments and other software updates.

Before Unito

Uncertain ticket status

Before automating this workflow, we needed engineers to manually update a ticket’s status in Asana as they worked on it — and once it was done. Given that our engineers work mostly in GitHub, it’s easy to forget to jump into Asana to give an update after pushing or merging their code. This adds up, meaning PMs couldn’t really trust ticket status as displayed in Asana. That meant they had to poke engineers for a ticket’s true status. That makes the PMs work less efficient and disturbs an engineer that could be in the middle of a deep work session.

Communication delays mean shipping delays

This manual workflow added multiple layers of communication between teams and tools. Having to go through them all to get the latest updates created delays whenever someone needed to know a ticket’s status. Because each team works at its own pace, this means that a bug fixed in the morning may only be tested by the product team the next day — when they do their daily triage. If the update is ready for deployment, that means an extra day is lost. If it’s not, more time is lost in the eventual back-and-forth between teams.

How things changed with Unito

We now use Unito to bridge the gap between Asana, GitHub, and Slack. Tickets are still kept in Asana, but they’re kept automatically updated with the work happening in GitHub. Then, the most important updates are pushed to Slack — without anyone having to write the same status update every week.

Accurate status updates 

Whenever an engineer takes a ticket from Asana and marks it as “in progress,” we shift the work to GitHub, where the code lives. As soon as the code is integrated into the main codebase and ready for our staging environment, the associated ticket in Asana’s Status in queue field is updated automatically. This means that the status of our Asana ticket is always accurate. PMs and other collaborators know how a ticket is progressing without needing to interrupt an engineer’s work for status updates.

PMs can validate fixes as they’re available

As soon as an engineer’s work is merged and deployed in staging, PMs are notified in a Slack channel. That means they can immediately execute user acceptance tests. Notifications are pushed automatically instead of forcing anyone to scan Asana for updates periodically or manually copy-and-paste status updates into Slack. That means our product and engineering teams can deliver value faster with less manual work.

The Unito flow in detail

Everything starts in our work hub: Asana. We’ve connected this project to three GitHub repositories — each representing a different part of our engineering work — with individual Unito flows. By using a custom Repo field in Asana and a filtering rule in Unito, we can automatically sync a ticket from Asana to the right repository without any extra work.

We’ve also built a flow connecting Asana with a Slack channel, so status updates are automatically sent to the people who need them.

The flows connecting Asana with GitHub each have an additional trigger, which looks at the Status in queue custom field. This field lets people know if a ticket is being evaluated, worked on, or ready for deployment. Once it’s switched to In progress, Unito will automatically create a GitHub issue and keep it in sync with the Asana task representing the ticket.

Creating a matching issue in Github also gives us an easy way to refer to the bug in our Pull Requests, where the code fix actually lives.

When we merge a PR, meaning that the bug fix code has been reviewed, accepted and is ready to be integrated into the main branch, adding the keywords “fixes issue #” will automatically close the given issue number.

Once an issue has been closed, we change the status in queue of the associated Asana task to Ready for release.

When a fix has been merged and set to Ready for release, we notify the Slack #quality channel so that any last-minute checks can be done before we release to production and notify our customers.


A headshot of Alexandre Rimthong, Platform Lead at Unito.

“With Unito, our engineers can stay in GitHub and give real-time updates asynchronously. That means our PMs in Asana know the true status of a ticket without disrupting anyone, helping us ship more value to our customers faster.”

— Alexandre Rimthong, Platform Lead

Ready to optimize your workflow?

Try Unito for 14 days, absolutely free.

Try it free