Home
/
Desk
/
JavaScript
/
Messages

CSAT message

Customer satisfaction rating (CSAT) message enables your customers to give a score or leave a comment on the support provided within a ticket. The satisfaction rating scale ranges from 1 to 5, and the average CSAT score an agent or a team received can be found in Reports on the Sendbird Dashboard.


Prerequisite

To send a CSAT message to a client app, turn on the Customer satisfaction rating feature on your dashboard first. The message is customizable in Settings > Triggers on the dashboard.


CSAT message types

CSAT messages can have two types of states as below:

Request states

StateDescription

WAITING

Set when an agent sends a CSAT message.

CONFIRMED

Set when a customer sends a response to a CSAT message.


Submit feedback

To submit feedback from a client app, call the ticket.submitFeedback() method on the client app. When a customer replies to the CSAT message, the state of the message changes from WAITING to CONFIRMED.

Light Color Skin
Copy
ticket.submitFeedback(USER_MESSAGE, SCORE, COMMENT, (ticket, error) => {
    if (error) {
        // Handle error.
    }

    ...
});
Arguments
RequiredTypeDescription

USER_MESSAGE

string

Specifies a text message for a CSAT message.

SCORE

int

Specifies the score of satisfaction rating scale. Values range from 1 to 5.

COMMENT

string

Specifies a comment on the provided support. The value can be null.


Update the CSAT message

Sendbird server notifies the updates to your app through theonMessageUpdate() method of the channel event handler. You can implement your code to customize the UI of the updated message depending on the request status.

Light Color Skin
Copy
channelHandler.onMessageUpdated = (channel, message) => {
    SendBirdDesk.Ticket.getByChannelUrl(channel.url, (ticket, error) => {
        if (error) {
            // Handle error.
        }

        let data = JSON.parse(message.data);
        const isFeedbackMessage = data.type === SendBirdDesk.Message.DataType.TICKET_FEEDBACK;
        if (isFeedbackMessage) {
            const feedback = data.body;
            switch (feedback.state) {
                case SendBirdDesk.Message.FeedbackState.WAITING:
                    // Implement your code for the UI when there is no response from a customer.
                    break;
                case SendBirdDesk.Message.FeedbackState.CONFIRMED:
                    // Implement your code for the UI when there is a response from a customer.
                    break;
            }
        }
    });
};

message.data

You can find the stringified JSON object of the following in the message.data property within the onMessageUpdate() method of the channel event handler.

Light Color Skin
Copy
{
    "type": "SENDBIRD_DESK_CUSTOMER_SATISFACTION",
    "body": {
        "state": "CONFIRMED",
        "customerSatisfactionScore": 3,                             // Score ranges from 1 to 5
        "customerSatisfactionComment": "It was really helpful :)."  // Comment is optional.
    }
}