Development teams thrive when they’re able to receive valuable user feedback on their work. Keeping the lines of communication open allows them to request features, ask questions, or to inform you of bugs or unexpected behaviour. While there are a number of options, with email being the most popular, we opt to use Slack to receive user feedback.

Email is one of the more common ways of handling user feedback in your app, whether it is using the native iOS email client or a service like MailChimp. Sending email natively from a user’s device has the disadvantage of requiring the user to have email set up. It also results in a rather clumsy user flow because the native client must be presented in your app (even if you pre-populate the form’s fields). Using a service like MailChimp improves the experience, but still results in a bunch of emails that get easily buried among all the other emails you receive. If “Inbox Zero” is your goal, these methods aren’t going to help.

Using Slack to receive user feedback has a whole host of benefits, and is very easy to set up. We’ve been posting user feedback to an app-specific Slack channel, which keeps all feedback organized and in one place. The feedback is also visible to all team members that are in the channel, making for more efficient internal communication. From a UX perspective, Slack integrates seamlessly into your app, requiring nothing more from your users other than their feedback message. Including an optional email field for users allows for the possibility of dialogue if they’d like a response.


Setting up Slack to receive user feedback is easy and straightforward:

Step 1: Create a Slack channel

First, you need to create an app-specific Slack channel to receive feedback.

Step 2: Create a Slack app

Go to to create a new app. After you’ve created the Slack app by giving it a name and choosing the workspace (the workspace needs to match the one for the channel you created above), select “Incoming Webhooks” and turn it on. Next, click “Add New Webhook” to Workspace and then select the channel you created above. Be sure to keep this page open because you will need the webhook URL when you add the necessary code in the app.

Step 3: Code

In the app, we have to make a POST request to the webhook URL with the feedback message in order to post it to the Slack channel. Assuming we have the message from the user (which you can format any way you like), here is the code for sending it to the Slack channel:


let feedbackMessage: String = ...
let json = [“text”: feedbackMessage]
let bodyData = try! json, options: JSONSerialization.WritingOptions.init(rawValue: 0))
let url = URL(string: “[webhook URL]”)
var request = URLRequest(url: url!)
request.httpMethod = “POST”
request.addValue(“application/json”, forHTTPHeaderField: “Content-Type”)

let session = URLSession(configuration: URLSessionConfiguration.ephemeral)
let task = session.uploadTask(with: request, from: bodyData) { data, response, error in
if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 {
// OK

Other than updating [webhook URL] with the actual URL from your Slack app’s page, it’s just a simple copy and paste. Now, as users submit feedback it will automatically appear in the Slack channel you set up for managing user feedback.

As we said, user feedback is an incredible tool to help move your apps forward. Slack makes managing that feedback remarkably easy and efficient.