Here's how to implement support via iMessage in your apps

Here's how to implement support via iMessage in your apps

Two weeks ago, we decided to cancel our Intercom subscription and spent the weekend thinking of a reliable, fast and private way to assist the thousands of people who use WeatherKit.

So, what were the alternatives?  

  • Mail? People are scared that you're adding them to your newsletter.  
  • Intercom-like solutions at scale can be pricey and they collect too much information about the user.
  • Apple's Business Chat, which is in beta. We're currently being reviewed by Apple for access to it.

What about iMessage?

It's fast, private and reliable. People love it and continue buying Apple devices to be able to send blue messages around. We knew this was something we had to try out, in production with real-life examples of people needing support.

Here's how you can implement it into your apps.

  @IBAction func supportiMessage(_ sender: Any) {
        let body = "Change this text and ask the people to send this first message, where you can also include things that can help you debug their situation like the app version."
        let sms = URL(string:"sms:[email protected]&body=\(String(describing: body.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!))")!, options: [:], completionHandler: nil)

Additionally, in your Info.plist file, you'll have to add sms to LSApplicationQueriesSchemes. It was that easy!

Ultimately, this might not be for everyone — but it felt right for us and for our volume of support. These 10 minutes of work turned out to be a really good deep dive into how to offer a good customer support solution while keeping the costs down.

Four days ago WeatherKit passed Apple's app review with brio, so you can try it out from your iOS device. In our case, adding this unique support method was the right call with more than 95% of the help requests being through iMessage.  

P.S. Remember Apple's Business Chat? It's been in beta for more than a year now and Apple could open up the API for the developers. Using that, we could have real-time diagnostics and data about the device, offer a simple way to review the app after issues were solved. That little thing could scale and we're sure that many developer would adopt it. Apple?