The Blog

The what's what of the Flowdock atmosphere.

UserVoice Integration

Antti Pitkänen July 26th, 2012

UserVoice is a feedback and help desk product that makes responding to customer needs fast and effortless. We at Flowdock have previously integrated with UserVoice only by plain email notifications. Seeing that UserVoice has recently rolled out its neat Service Hooks, we just couldn’t resist making the integration even better.

With the new integration you will be notified of all that is happening in your UserVoice community, and the entire team can participate in responding to the feedback. Now that the feedback is sent directly to Flowdock, your email inbox no longer gets overflowed with notifications. In addition, the Service Hook configuration makes it easy to define which notifications you want to see in your team inbox.

Setting up the integration

To get started, visit our UserVoice help page and follow the short list of instructions. You should be integrated and receiving notifications from UserVoice in no time.

Here is an example notification in the team inbox:

P.S.

In a deal we struck with the awesome UserVoice folks, the ten first Flowdock teams to sign up to UserVoice by using the code hiflowdockers will receive 25 % off for a year of UserVoice.

ScrumDo integrates with Flowdock

Otto Hilska July 12th, 2012

ScrumDo is a project management tool that’s built from ground up for agile teams doing Scrum. It helps you to plan your iterations, manage your backlog and visualize your progress.

If ScrumDo is your project management tool of choice, it’s now even easier to follow your team’s activity. Just follow the simple configuration instructions and all relevant activity will be streamed to Flowdock.

Naturally, the integration was built using Flowdock’s API.

Open-sourcing Our Hosted IRC Gateway

Otto Hilska June 26th, 2012

Some time ago, we released Flowdock‘s IRC support. Anything that helps our customers get the whole team onboard is a win for us, and sometimes using their favorite IRC clients does just that.

I wrote the initial version of the IRC gateway myself during a train trip, and while I considered connecting it directly to our Redis message queue, it’s actually simply using our API. Hence, you could actually write a similar gateway yourself.

To help similar projects get started, we’re now open-sourcing the IRC gateway (Oulu on GitHub). It’s a simple Ruby app, using EventMachine, and it does a custom implementation of the IRC protocol. The name Oulu of course refers to the Finnish city where IRC was originally invented.

Whether you want to add features to Oulu, fork it as your own XMPP gateway, or simply like hacking something on your own, let us know. Our 100 Beer Ventures Fund even likes to reward active developers in our ecosystem!

Flowdock iOS App Now Available On The App Store

Mikael Roos June 19th, 2012

Flowdock available on the App Store We are happy to tell you that the official Flowdock iOS app is now available on the App Store. The app lets you tap into your Flowdock flows on your device and works on any iOS device running iOS 5.0 or newer. You can chat with your teams, upload photos using your camera and scroll into history to keep up with discussions.

Two major things you can expect coming into the iOS app are push notifications and team inbox support. Later we’ll bring in searching and filtering plus tagging support.

Flowdock iOS App Internals

To give you a peek under the hood of the Flowdock app, let’s take a look at a fairly new player in the iOS development platform game, AppGyver, now taking on against the likes of PhoneGap and several others.

AppGyver provides a WebView-driven JavaScript context to create iPhone apps using multiple WebViews and combining them with native features such as navigation stack, document previews, native transitions and nice fine-tunings like momentum scrolling to break you away from the run-of-the-mill HTML5 apps.

Our app is written in CoffeeScript and we use Backbone models in conjunction with the Flowdock API to move data around.

Major painkillers in AppGyver’s development flow include things like completely Xcode-less cloud builds and real-time in-device and simulator previews. They already have Android support in the works, too (shush!).

We have developed the Flowdock app in close cooperation with the AppGyver guys. To get a better idea on how it’s built, also take a look at the AppGyver API Docs and of course try the Flowdock app itself, to check how smooth the scrolling actually is.

Have fun chatting on the go and let us know any and all feedback you have!

Flowdock Makes Xobni More Productive

Mikael Roos May 31st, 2012

Xobni, one of the earlier Y Combinator funded startups (YC 06), is a Flowdock customer. They make your inbox and address book smarter by making it easy to search and discover all your contacts – even those who aren’t in your address book. Xobni’s director of marketing, Britton Montalvo paints a picture:

What if you had a magic address book that automatically identified the name and contact information for everyone you had ever communicated with? Xobni brings you that magic with our mobile and desktop solutions that automatically create rich profiles for all your contacts, including photos, complete contact info, communication history and updates from Facebook, LinkedIn and Twitter.

Xobni’s Smartr Contacts is available for iPhone (video & download) and Android (video & download). Both apps have been named “The Best Address Book Apps” by Lifehacker. You can even get it on BlackBerry. Smartr Inbox is available for Gmail and they have Xobni for Outlook.

Flowdock at Xobni

So, how does Flowdock fit into this? Xobni has been using Flowdock now for a few months. Having previously used an array of messaging clients including Skype, GTalk, Yahoo! Messenger etc, the Xobni team has seen a massive shift in communications moving to Flowdock:

Now 80% of our communications reside in Flowdock. Flowdock has also increased the Xobni Server Engineering team’s productivity tremendously with its deep integrations.

The Xobni team uses JIRA for defect tracking, Opsview for monitoring, Git for version control and also QuickBuild and Capistrano as deployment tools.

Flowdock manages to keep everyone on the same page, and working efficiently:

We are distributed across San Francisco, Montreal, Iowa and India and using Flowdock has enabled us to stay better connected with one another and work much more efficiently. At any time, anyone in the team can instantly get up to speed on what is happening in our network, so they can jump in to help resolve any issue or identify potential areas for optimization. With Flowdock, we are able to easily process and manage more than 5 billion messages for our users per month.

Redmine Plugin For Flowdock

Mikael Roos May 24th, 2012

Redmine & Flowdock

Redmine is an open source project management application, which includes basic ticketing, wiki and other functionality. We’ve just released a Flowdock Redmine plugin on GitHub, which gives you a completely real-time Flowdock integration with issues and wiki.

Flowdock Redmine Issues and Wiki Integration

Installation is straightforward and you can read the guide in the README.

How To Make A Scrum/Kanban/Whatever Magnet Out Of A Champagne Bottle

Mikael Roos May 4th, 2012

These days at Flowdock we’re using a light, modified Kanban process to handle our everyday work. Previously, we’ve also had a lot of experience with Scrum. There are also some other strange words that try to guarantee the excellence of your software team. What all of them have in common is whiteboards and magnets. Usually you need about four identical magnets for yourself to signify which tasks you are undertaking on that particular day.

We like champagne. It’s really a no-brainer.

Here’s How You Do It!

It also goes great on a fridge! Everyone wants an agile fridge!

Get To Know A Cool Flowdock Customer – Grand Cru Games

Mikael Roos April 24th, 2012

Meet Grand Cru, founded in 2011 by six Finnish game industry veterans, they are a Helsinki based team of game creators. They say they have one direction: to revolutionize mobile and social gaming.

In their quest they have found Flowdock to be an essential tool. Creative director Harri Granholm says that with Flowdock, “we can work tightly together, but at the same time everyone can concentrate on their tasks without any unnecessary interruptions”.

The Cru’s new upcoming game, the Supernauts lets you create your superhero alter ego online. As a social game, the game is naturally best when played together, so it supports real-time multiplayer on a massive scale.

The Cru team is made up of mobile gaming and virtual world veterans combined with fresh design and other talent. That makes Flowdock a great fit:

We have noticed that Flowdock works well for the Cru as it has similarities with IRC which is a familiar tool for many of us. Many features, such as embedding images in a conversation and the integration with Pivotal Tracker, are essential to our work. In addition, our graphic designers are constantly sharing the material they are working on through Flowdock.

The Cru is also hiring.

Cap Deploy Multiple Node Versions

Ville Lautanala April 11th, 2012

At Flowdock, we have currently four different Node.js apps. Worst case scenario: they all could require a different Node version. This blog post explains how to use chef and capistrano to deploy multiple Node.js versions.

TL;DR: Check out our deployment resources and enjoy multiple Node.js version bliss.

Chef Recipe for Node

Chef is used at Flowdock to configure servers. Naturally we wanted to use it also for managing our Node versions.

We ended up with having a recipe for compiling Node packages and uploading them to Amazon S3 and another recipe to download the correct binaries. If you want to see all the gory details, we’ve published our Node.js recipes.

As an end result, we can have a machine with all necessary Node versions set up in practically no time and applications can choose Node versions with little $PATH mangling.

Capistrano scripts for Node

Capistrano has proven itself and, above all, there’s an awesome Flowdock integration for it. There probably are Node-based alternatives, but we didn’t feel bold enough to try them out.

To avoid any hubbub during deploy, each deploy should use the Node version defined in package.json. This allows us to try out new version of Node without any changes in system configuration. Also, if the deployment is bad, we can always roll back to a working version.

To achieve this, our Capistrano script reads the package.json definition, extracts Node version constraints and uses Gem::Requirement from rubygems to choose satisfying version candidate. During deployment node and npm binaries are symlinked to $PROJECT/bin.

Keeping Node up and running

Now that the basic environment is set up, we just need something to manage our Node services. Our boxes already have runit for this task, so why not use it for our Node apps, too? You can even use foreman to export the service definitions for you.

Here’s how a runit definition looks like for our Streaming API.

#!/bin/sh
cd /home/florence/florence/current
exec chpst -u florence -e /home/florence/env sh script/run

This uses envdir to configure environment variables. script/run is responsible for mangling the $PATH and other fine-tuning.

#!/bin/sh
exec &2>1
export PATH=`pwd`/bin:$PATH
./node_modules/.bin/coffee app.coffee

Capistrano tasks are almost trivial.

task :start, :roles => :app, :except => { :no_release => true } do
  run "sudo sv up florence"
end

task :stop, :roles => :app, :except => { :no_release => true } do
run "sudo sv down florence"
end

task :restart, :roles => :app, :except => { :no_release => true } do
  run "sudo sv term florence"
end

Of course, you can also use upstart or supervisord if that suits you better.

Added bonus – Continous Integration

I’m lazy and haven’t managed to set up a setup for multiple Node versions on my personal development machine. To ensure that my changes will work when deployed, CI needs to use the same version of Node as in deployment.

To solve this, our Capistrano script has a local mode, which does the same symlinking stuff, but to a local directory. The CI script adds ./bin to $PATH before starting the test suite.

Conclusion

Having flexible Node version management on deployment and CI has been a blast. We can even try out unstable versions without extra ops work.

Integrating Jenkins to Flowdock

Antti Pitkänen April 3rd, 2012

Jenkins CI

Jenkins is a popular continuous integration system that runs on the Java platform. Up until now, you could only integrate Jenkins to your flow by setting up email notifications for builds. Thanks to the recently published Flowdock Push API, there’s no longer need to resort to just plain email notifications. We have embraced the world of Java and developed jenkins-flowdock-plugin to make integrating Jenkins to Flowdock easier and a more pleasant experience.

Installing the plugin

  • Go to Manage Jenkins -> Manage Plugins -> Available
  • Find “Flowdock plugin” and install it
  • Restart Jenkins

Now you can configure Flowdock notifications for any build by setting Post-build Actions:

Jenkins configuration for Flowdock

And here’s a happy notification in your flow:

Jenkins notification in Flowdock

Fork your own notifier!

We had some arguments about the notification message configuration and how to implement customizable notifications. Soon we figured out that there’s just no point in trying to do that. Why not publish the plugin sources and let the developers hack it?

Forking the plugin and implementing your own awesome notifications takes just a few minutes and is well worth the effort. The plugin classes already provide all the Push API features, so you can start customizing the notifications to your liking straight away.