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

Ask a Freelancer

A podcast series where experienced freelancers answer questions about freelancing.

Listen to the Podcast

Talking Shop

An interview series where we talk to freelancers about important topics in the freelance world.

Read the Interviews

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