Feedback type

This SDK option allows your users to categorize their feedback.


When submitting their feedback, your users immediately categorize it as either a bug report, an improvement suggestion, or just a question.

Depending on their choice, you automatically receive the bug, suggestion or question tag next to their ticket in your Shake Dashboard. This way, you can filter and browse them efficiently!

Custom types

You can configure Shake to display any number of custom categories related to your product.

Shake exposes an internal SHKFeedbackEntry type which is used to encapsulate the properties of your custom category.

The snippet below showcases an example usage of the feature.

let hardwareCategory = SHKFeedbackEntry(title: "Hardware issue", andTag: "hardware", icon: hardwareIssueIcon)
let callCategory = SHKFeedbackEntry(title: "Call audio problem", andTag: "call_audio", icon: nil)
let syncCategory = SHKFeedbackEntry(title: "File sync issue", andTag: "file_sync", icon: nil)
Shake.setFeedbackTypes([hardwareCategory, callCategory, syncCategory])

There is no limit to the number of categories you can enter.

Along with setFeedbackTypes method, Shake also exposes the getFeedbackTypes method which allows you to grab the current set of SHKFeedbackEntry and use them how you like.

Common use case is that some portions of your application can "unlock" certain features, so you can have different feedback types for different "parts" of your application. This enables you to , in a sense, "follow" your application context and filter out the possible issues on the SDK itself.

func enableVideoCallFeature(contactID: String) {
let videoCallCategory = SHKFeedbackEntry(title: "Video Call", andTag: "video_call", icon: nil)
let existing = Shake.getFeedbackTypes()


If you don’t want your users to have to categorize their feedback, simply hide this option using the following method:

Shake.configuration.isFeedbackTypeEnabled = false

On your Shake Dashboard, all these tickets won't have any specific type (and tag).