First Thoughts on Slack Status Updater

I love Slack's status feature to bits. I love every chat programs status feature to bits really. My first experience with status messages came from MSN chat. Sorry, my first experience with chat was not IRC. Not geeky enough for that. And we'd post all kinds of stuff in the status messages. From favourite lyrics of a song to getting winamp to change the "Now playing" in my status bar. Although I'm not sure if the latter came about only when Live Messenger came out.

Whatever. It was a ton of fun.

When Slack came out, it didn't have a status message bar. And honestly, I understand that. MSN and other tools have always been more on the fun side. It didn't matter if you had the status message "sleeping like a rock in a hard place" while you were chatting with your friends. It matters a lot more on Slack where someone might be trying to decide whether or not to buzz you while your message says "Out sick" even though you are clearly active in chat rooms at that very moment.

Also, given that it's a work environment, one would really like to not give a tool to micro managing managers to institute a process around that dictates updating status even when you are in the bathroom. Although, in the bigger scheme of things, if a micro manager wants to micro manage, they'll find a way regardless of the lack of existence of a given tool.

But I digress. Slack status messages arrived finally some time back and I love them. Except I keep forgetting to update my status message. And the reason for that is that it's wayyyy too cumbersome to update a status message. Here are the steps involved:

  1. Click my profile on the top left of the screen
  2. Move mouse down to the edit status area
  3. Click on the emoji finder
  4. Type in the emoji I want
  5. Select it
  6. Type in the status I want
  7. Hit Enter

Ok fine, those steps are a little inflated and I'm being very bratty about it. BUT! The thing is, this is enough to make me forget to set my status from :chompy: Lunching to :computer: Working on dev environment

There's a lot to be said about friction.

But what if it was as simple as a slack message:

/status lunch or /status dev?

What if it was as simple as typing slackstatus lunch into your terminal?

slackstatus update via terminal

I think I might feel more inclined to use it.

I also did my research to see what exists, and strangely enough, I couldn't find anything. Which makes me think either my DuckDuckGo/Google-fu needs improving, or no one else is going to need this.

What would this involve?

I'll have more planning details in the dev logs but the first thing I wanted to think through was overall how might this structure look?

  • First up I'll probably want to deliver it as a CLI rather than a tool to install into Slack. That means less friction for someone who wants to use it.
  • It would be great to have some kind of limit on how many status presets can be saved. Just as an opinionated design to ensure that the tool doesn't become as cumbersome as setting a custom status in the GUI. I'd set it to 15 saved statuses and give the ability to run something like slackstatus --custom <status_emoji> <status_message> as an escape hatch.
  • I'll still want some kind of server functionality that can be treated as optional. If you want to do something like slackstatus lunch till 2 PM I'd like the tool to update slack in one of two ways:  Either update the status to :emoji: lunch. Be back by 2 PM and require a manual message to change the status. OR! Update the status to :emoji: lunch. Be back in x minutes where x gets counted down and the status gets reset automagically at 2 PM. This would activate only if the CLI is connected to a server component.  
  • Having a server would also allow things like sync your FIFTEEN SAVED STATUSES (OMG THE DATA!!!!)
  • In a perfect world, it'd be great to have an accompanying mobile app that uses the FIFTEEN SAVED/SYNCED STATUSES. Sorry. I'm childish.

I'll first build out the CLI though. And see if I even use the thing. Then if that looks good, I'll build a server component that does the whole 'be back in x minutes' bit. And only then, I'll think about a mobile app.

Posted on December 20 2017 by Adnan Issadeen