Feedback#

Users shall have the possibility to provide simple feedback when using Skalio products. To reuse the effort, the functionality to record feedback is located inside Skalio ID.

Skalio ID provides an API to receive feedback submissions. The request must be authenticated with a UID token and the feedback might be anonymous or related to a Skalio ID user.

Feedback may be submitted at any time, and as often as rate-limiting allows it. However, it is recommended that clients/frontends ask users to provide feedback at an opportune time as to not interrupt the user's flow. There is also the possibility to allow users to submit feedback manually.

Additionally, the same API can be used for support requests, i.e. if clients want to allow users to request some kind of support related to the app. A support request usually indicates that the user will be gotten in touch with to clarify their problem.

Payload#

The payload of the feedback request shall be relatively simple and easy to be extended by the frontend.

  • productId: enum, required - hardcoded in the client/frontend
  • email: string, nullable - user input
  • name: string, nullable - user input
  • stars: int, 1-5, nullable - user input
  • issues: array[string], nullable - user input
  • comment: string, nullable - user input
  • context: array[string], nullable - reserved for client/frontend use; examples "iOS", "de_DE", "A/B-testing"
  • type: enum, nullable - reserved for client/frontend use

While issues shall be under the control of the person providing feedback, the field context is to be set by the clients/frontends only.

In addition to the payload, Skalio ID will log the submission timestamp and the user-agent.

Invitations#

Product backends can "invite" individual persons to provide feedback. This results in a FEEDBACK_INVITATION SignalingEvent sent to the requested person. A client can use this event as a "gate", preparing the feedback-collection-form for presentation whenever possible.

After receiving feedback, Skalio ID sends a FEEDBACK_RECEIVED SignalingEvent. A client can use this event to close this gate again. This should protect a person from seeing the feedback form appear on multiple active clients at the same time.

Note that these events are not persisted and only delivered to clients subscribed to the event feed at the time. If a person is subscribed from multiple clients, events get delivered to all of them.

Image

Persistence and analysis#

Feedback submissions are recorded into the Logstash stack for analysis by Kibana. Submissions are not stored in a relational database. They cannot be deleted.