Sunshine Conversations provides a number of ways to deliver a CSAT survey to your users directly in a conversation.
Sunshine Conversations documentation on shorthand
The quickest way to assess customer satisfaction would be to use our quick reply shorthand. The agent sends the following quick reply shorthand by sending a shorthand message to the user through the agent UI.
This method is the easiest to implement, requires no coding, or modification to the agent UI, although can, and should, be integrated into the agent UI as a canned response that can be deployed very quickly. This shorthand looks great on all supported channels (channel capabilities grid).
The user sees the agent message rendered in the messenger UI as a series of buttons. Once the user clicks on one of the buttons they are replaced by his/her choice and added to the conversation as his/her response.
How would you rate our interaction?
%[π](reply:very-satisfied)
%[π](reply:satisfied)
%[π](reply:neutral)
%[π](reply:unsatisfied)
%[π ](reply:very-unsatisfied)
Note: The emojis and quick reply buttons may differ from the screenshot as they are rendered according to the channel they are in.
Sunshine Conversations documentation on quick replies
A quick reply sent through the API functions much the same as shorthand, and looks exactly the same in the userβs chat UI, but allows for more control and for custom metadata to be sent back along with the userβs reply. A quick reply message is sent via the sendMessage API.
const apiInstance = new SunshineConversationsApi.MessagesApi();
const data = new SunshineConversationsApi.MessagePost();
data.author = {
type: 'business'
};
data.content = {
type: 'text',
text: 'How would you rate our interaction?',
actions: [
{
type: 'reply',
text: 'π',
payload: 'Very Satisfied',
metadata: {
userResponseValue: '5',
agentNumber: '239',
otherSalientInfo: 'Taco'
}
},
{
type: 'reply',
text: 'π',
payload: 'Satisfied',
metadata: {
userResponseValue: '4',
agentNumber: '239',
otherSalientInfo: 'burrito'
}
},
{
type: 'reply',
text: 'π',
payload: 'Neutral',
metadata: {
userResponseValue: '3',
agentNumber: '239',
otherSalientInfo: 'pizza'
}
},
{
type: 'reply',
text: 'π',
payload: 'Dissatisfied',
metadata: {
userResponseValue: '2',
agentNumber: '239',
otherSalientInfo: 'pizza'
}
},
{
type: 'reply',
text: 'π ',
payload: 'Very Dissatisfied',
metadata: {
userResponseValue: '1',
agentNumber: '239',
otherSalientInfo: 'hamburger'
}
}
]
};
apiInstance.postMessage(appId, conversationId, data)
.then(response => /* success */)
.catch(error => /* failure */);
Sunshine Conversations documentation on Conversation extensions
If you already use a third-party survey service, e.g. SurveyMonkey, or TypeForm, you can leverage that service with Sunshine Conversations. You can render your hosted survey inside of a conversation extension, by sending the url where the survey is hosted to the user as a webview action.
const apiInstance = new SunshineConversationsApi.MessagesApi();
const data = new SunshineConversationsApi.MessagePost();
data.author = {
type: 'business'
};
data.content = {
type: 'text',
text: 'Access short survey here',
actions: [
{
type: 'webview',
size: 'full',
text: 'Access Survey', // This text is rendered as a button
uri: 'https://your-survey-url-here',
fallback: 'https://a-fallback-url'
}
]
};
apiInstance.postMessage(appId, conversationId, data)
.then(response => /* success */)
.catch(error => /* failure */);
SurveyMonkey Documentation on Custom Variables
This method allows you to quickly leverage the full power of a third-party survey. When using SurveyMonkey you can pass contextual information through query parameters in the survey URL:
e.g. https://your-survey-url-here?userId=5adf3627227dca00222750aa
.
Sunshine Conversations webview SDK documentation
It is also possible to create your own CSAT web app and send it to the user as a conversation extension. The implementation in Sunshine Conversations is exactly the same. You pass the url
where the survey is located and thatβs it.
This method is great when you need total control over the CSAT/NPS experience.
WebviewSdk.close()
, e.g. when the user clicks the βFinishβ button in the survey).This method does require you to host and maintain your own web app of the survey.