You can use Surveypal surveys to gather feedback from Zendesk Talk tickets. The process sends an SMS to the customer with a short link which opens the survey to their mobile phone browser.
This integration requires your Surveypal account to have SMS sending enabled. Please contact Surveypal helpdesk at helpdesk@surveypal.com if you are interested in using SMS to collect feedback.
Set default sms invitation message
- Open your survey and go to Distribute-view, then select "Email invitations"
- Remove the default message entirely (you can ignore To, From, Reply-to, Subject and Sender profile)
- Set SMS message to body field. Remember that Surveypal will add a short link to the message that is 22 characters long so your message length can be only 138 characters. If the total message exceeds 160 characters, you will be billed for multiple messages.
- Once the message is ready click "Save message" and then click "Cancel" to exit the view.
NB!
- If you send SMS invitations to United States you must add your company name to the message. It's not possible to use alphanumeric sender name to mask the sending number in SMS messages sent to US numbers.
- Sending messages in United States and United Kingdom requires you to provide additional information about the purpose of sending them. Surveypal will forward the needed information to their SMS provider for registering the information with local carriers. Please contact helpdesk@surveypal.com for more information.
Add endpoint in Zendesk
Create a new HTTP Target in Zendesk.
1. Click Admin (gear icon) from left menu
2. Click "Extensions" under "Settings" title
3. Click "add target" and select "HTTP target"
Url
Example: https://my.surveypal.com/api/rest/survey/<add your survey ID here>/answer/sms/invite/batch?unique=false&anonymous=false
Survey ID
You can copy survey ID from the survey list in Surveypal when you select your survey and scroll down the survey information view
Parameter anonymous
If you want that respondent is anonymous (number is hidden in Surveypal) then add value "true" instead of "false".
Method
Select PUT
Content type
Select JSON
Basic authentication
Enable basic authentication.
Username is your Surveypal username.
Password is combination of text "token-" and your API key.
To create an API key, select your name from the bottom left corner on the Surveypal front page. Then select 'Your account'. In the account page select: API keys
- Create your first token by clicking 'Create key'.
- Give your API key a name and click 'Create'.
When you have API key, you can generate Basic Auth password so that you combine text "token" and your API key. For example if API key is "AA_HvXX0A1Y1X11113ZV3v11cXX" then Basic Auth password is
token-AA_HvXX0A1Y1X11113ZV3v11cXX
NB! Change "Test target" on the dropdown menu to "Update target" before clicking Submit. Remember also to select "Update target" if you need to do any changes to the endpoint.
Here is an example:
Add a trigger in Zendesk
Create a new trigger which will call your new HTTP target when ticket status is changed to solved.
NB! Pay attention to the order of your triggers in Zendesk, since they are run from top to bottom. Some prior trigger may hinder your feedback trigger from running.
- Click Admin (gear icon) from left menu
- Click "Triggers" under "Business rules" title
- Click "Add trigger"
- Give the trigger a clear name e.g. Surveypal CSAT and
- Add conditions for testing :
- Status - Changed to - Solved.
- Ticket: Tags - Contains at least one of the following - sms_test
- If testing was successful, set the actual trigger rules; here's what we recommend
- ALL: Status - Changed to - Solved
- ALL: Ticket: Tags - Contains none of the following - survey_sent (+ any additional tags you may use)
- ANY: Channel - is - Phone call: Incoming
- ANY: Channel - is - Phone call: Outgoing
- ACTION: "Notify target" and then select your new HTTP target name from next dropdown.
- Add below JSON to your action JSON body field
- ACTION: Add tags - survey_sent
[
{
"phoneNumber":"{{ticket.requester.phone}}",
"meta":[{"key":"ZendeskTicketId","value":"{{ticket.id}}"},{"key":"RequesterPhone","value":"{{ticket.requester.phone}}"},{"key":"ZendeskAgentEmail","value":"{{ticket.assignee.email}}"},{"key":"ZendeskAgent","value":"{{ticket.assignee.name}}"},{"key":"ZendeskFirstName","value":"{{ticket.requester.first_name}}"}]
}
]
This JSON picks ticket requester phone number and other information from the ticket and adds them as background information to the Surveypal survey response.
Here is an example of the notify target action:
Test your integration
Call to your support number, set the test tag to the ticket and solve it. You should receive an SMS message containing a short survey link.
Multilingual surveys
If you have more than one language in your survey then you need one trigger/automation per language and also one HTTP target endpoint per language.
First follow above steps and create one trigger/automation and one endpoint. Then you can add rest of the languages.
Add locale id to your endpoint URL
You have to add language id (locale id) to your HTTP target.
How to find language id:
1. Open your survey in Surveypal
2. Go to Build view
3. Click language menu (next to Settings) and select "Edit languages..."
4. Right click one language name from left side list and select "Inspect"
5. You can see that every language is has a div element which class is "item". Every of these items have "id" parameter and parameter value is language locale id. Copy id value.
Add locale id to your endpoint URL:
1. Click Admin (gear icon) from left menu
2. Click "Extensions" under "Settings" title
3. Click "Edit" next to your target name
4. Add &localeId=YOURLOCALEID to end of URL field and replace YOURLOCALEID with the value what you copied from the survey.
Change endpoint name so that it match your locale ID.
Select "Update target" from dropdown next to Submit button and then press Submit.
You need one HTTP target per language so copy everything from your current target and create new target. Change only target name and localeId in URL field.
Edit your current trigger/automation conditions
You have to create one trigger/automation per language.
First edit your current trigger/automation. Add there new conditions which checks phone number country code from ticket subject text. Below example we check if subject contains Finnish country code.
Check that your trigger/automation Action have correct Notify target name:
Save your trigger/automation after this.
Next duplicate your trigger/automation.
Hover over your trigger/automation, click three dots and select Clone.
Change the name so it match your second survey language.
Change condition "Subject text - Contains the following string -" to match your second language country code.
Change Notify target and select your second language endpoint name from dropdown.
You don't need to edit target JSON body.
Save your trigger/automation.
Troubleshooting
If your integration doesn't work then check API error messages from Zendesk.
1. Click Admin (gear icon) from left menu
2. Click "API" under "Channels" title
3. Select tab "Target failures"