Dev

Slack as a Notification Center

Feb 06, 2016

Slack is commonly used as a chat tool for teams, but for the past year and a half, I’ve used Slack as a notification center. Until recently, I’ve been a one-person team, so people were always surprised when they learned that I had a Slack for Cushion. When you consider all of Slack’s integrations and how trigger-happy most services are with emails, Slack becomes the perfect solution for wrangling notifications into one place.

Initially, I set up every integration to use the #general channel, but this quickly became a mess of alerts. I found myself sifting through dozens of notifications, hoping to see new subscribers, but finding mostly error alerts. That’s when I decided to split the notifications into several channels.

slack-for-notifications-build

The #build channel consists of two integrations—GitHub and Codeship. The GitHub integration is less useful for solo devs, but nice to have when referencing commits in the latest pull request. Cushion deploys through Codeship, which runs all of its tests prior to pushing to Heroku. Codeship notifications are very important because I instantly know when a build fails and, with one click, I can find out what went wrong.

slack-for-notifications-errors

The #errors channel is tied to Sentry, which catches any errors along with their stacktraces. Fortunately, Cushion hasn’t seen too many serious bugs, but when the occasional hiccup comes through, I try to fix it same-day. Because this channel is pretty quiet, I allow Sentry to catch non-bug errors, too, like validation errors. This helps me spot any usability issues, like a specific form field that might trip people up.

slack-for-notifications-marketing

The #marketing channel keeps track of people who sign up for the newsletter. This was originally handy when Cushion was in private beta. Now, it simply gives me a positive boost with each signup. When Cushion’s expenses page reached #1 on Hacker News, this channel was a firehose. That was a good day.

slack-for-notifications-users

The #users channel listens for new Stripe customers. Cushion requires a payment method upfront, so Stripe is a good indicator of new (real) users. These certainly aren’t guaranteed customers, but I can get a sense of how much Cushion is making the rounds based on the number of signups I see in a day. Since most users are freelancers, I often visit the website tied to their email address and check out their work. Eventually, I’d like to build a Slack integration that inserts a screenshot of a new user’s website when they sign up—that would be next level.

slack-for-notifications-stripe

Cushion also has a #stripe channel for new subscribers and charges. I originally included cancelled subscriptions, but those quickly became too depressing. To protect morale, I only whitelist the positive notifications while keeping an eye on cancellations on a day-to-day basis. Now, this is my favorite channel. Anytime it’s highlighted, I know I either received money or, even better, someone subscribed to Cushion. I can’t stress enough how important these boosts are when you’re building an app for so long.

slack-for-notifications-support

The #support channel is tied to Intercom, which I use for Cushion’s customer support. When a user emails support or sends a message in the in-app chat widget, I receive an abridged notification in Slack. This helps me know exactly when a user needs help, so I can respond right away. This is important to me because delighting a users with an instant response goes a long way. At this point, I need whatever advantage I can get, so lightning-quick support is my leg-up.

Since Cushion is still young and the traffic is bearable, I’m able to handle support by myself. Considering I’m the one who designed and wrote the app, I’m also the best person to respond to questions. I often go into great detail with answers, so the user feels closer to the app than they would with a trained support person using canned responses. If Cushion really takes off, I might eventually need help with support, but I still plan to stay in the loop as long as I can.


Running Cushion with Slack as a notification center has helped me immensely these past couple years. Without it, I imagine my inbox would be overflowing and I’d be behind with what’s happening at any given moment. Support emails would be gathering dust and the build server would be on fire. Maybe that’s too dramatic, but it goes to show how much I love Slack.

ps – Sign up for Slack with this link and you’ll get a $100 credit, which is 15 months free for solo paid accounts.

Share this on Twitter or Facebook

Archive

  1. Restructuring an Evolving App: Part 1
    Design
  2. My Typical Week as a Founder
    Story
  3. Building Components in a Sandbox
    Dev
  4. Reactive Time with Vue.js
    Dev
  5. Visualizing Daylight Saving Time
    Dev
  6. Recording Screencast GIFs
    Dev
  7. Writing a Job Listing
    Story
  8. Using Feature Flags to Run Betas
    Dev
  9. Our First Company Lunch
    Story
  10. How to embed Vue.js & Vuex inside an AngularJS app... wait what?
    Dev
  11. Funding Cushion
    Story
  12. Hiring a Team of Freelancers
    Story
  13. Taking a Real Break From Work
    Story
  14. Slack as a Notification Center
    Dev
  15. Document Your Features
    Story
  16. 300
    Story
  17. Vacations
    Design
  18. Offering Discounts
    Design
  19. Waves of Traffic
    Story
  20. Less Blogging, More Journaling
    Story
  21. Retention Through Useful Features
    Design
  22. The Onboarding Checklist
    Design
  23. Spreading the Word
    Story
  24. From Beta to Launch - The Subdomain
    Dev
  25. From Beta to Launch - Sign up
    Design
  26. From Beta to Launch - Messaging
    Design
  27. Launch
    Story
  28. Authenticating with 3rd Party Services
    Dev
  29. Intro to Integrations
    Design
  30. Inspiration vs Imitation
    Story
  31. The Emotional Rollercoaster
    Story
  32. Designing Project Blocks
    Design
  33. Everything in Increments
    Story
  34. Deleting Your Account
    Design
  35. Designing the Subscription Page
    Design
  36. Rewriting the Timeline
    Dev
  37. Restructuring the Individual Project Page
    Design
  38. Project Blocks
    Story
  39. Redesigning the Homepage
    Design
  40. Multiple Timelines
    Design
  41. Archiving and Estimate Differences
    Design
  42. Multiple Financial Goals
    Design
  43. Zooming in on the Timeline
    Design
  44. Currency
    Dev
  45. Preferences, Accounts, and a Typeface Change
    Design
  46. Sending Out the First Email
    Story
  47. Currency Inputs, Notifications, and Invoice Nets
    Design
  48. Dots and Lines
    Design
  49. Calculating in the Database and Revealing Tendencies
    Dev
  50. Improved Form UX
    Design
  51. Cushion is Online
    Story
  52. Schedule Timeline Patterns
    Design
  53. A Slimmer Schedule Timeline
    Design
  54. The Schedule Timeline
    Design
  55. Plugging in Real Data for the First Time
    Design
  56. Transitions and Project Lists
    Design
  57. Death to Modals
    Design
  58. The Individual Project Page
    Design
  59. Estimated Incomes and Talks with Other Freelancers
    Story
  60. Statuses to Lists and the Paid Beta
    Story
  61. The Timeline
    Story
  62. Invoice Terminology
    Dev
  63. Modal Forms
    Dev
  64. Wiring the Backend to the Frontend
    Dev
  65. Balancing Design and Dev
    Story
  66. Timecop, Monocle, and Vagrant
    Dev
  67. Going with Ruby and Sinatra
    Dev
  68. Ditching local-first and trying out Node.js
    Dev
  69. Switching to AngularJS
    Dev
  70. Building the Table with Vue.js
    Dev
  71. Clients, Projects, and Invoices
    Dev
  72. Introduction
    Story

Running Costs

Take a close look at the costs that go into running a web app and why we use specific services.

View the Costs

How It’s Made

Follow along with the journal for insight into the overall experience of building an app.

Read the Journal