Introduction
Welcome to the Mindful Feedback REST API Reference version 1.5.8
The Feedback API allows you to programmatically add survey interactions, retrieve results and even perform surveys via your own applications.
This page details all the API resources you will need to create powerful integrations with Mindful Feedback.
Using the API
Base URL
All API calls referenced in this document can be used with one of the following base URLs:
https://surveydynamix.com/api
https://us2.surveydynamix.com/api
https://au1.surveydynamix.com/api
https://eu1.surveydynamix.com/api
https://ca1.surveydynamix.com/api
https://demo.surveydynamix.com/api
Make sure to use the base URL with the same domain as the URL you use to log into Mindful Feedback. Throughout this documentation, the URL being used for examples is https://surveydynamix.com/api
, but you may need to use a different URL.
To get the api endpoint for an individual request, append the URI listed in the request details to the base URL.
The Mindful Feedback REST API is served over HTTPS. To ensure data privacy, unencrypted HTTP is not supported.
Authentication
OAuth2
The Feedback API supports authorisation code grant and personal access token methods. This documentation assumes you are already familiar with OAuth2 grant flows.
Authorisation Code Grant
To authorise API calls using an Authorisation Code, use this code:
# Using an access token, pass the token as part of the authorisation header with each request
curl "api_endpoint_here" \
-H "Authorization: Bearer {Token}"
import requests
headers = {
'Authorization': 'Bearer {Token}',
}
response = requests.get('https://api_endpoint_here', headers=headers)
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api_endpoint_here');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$headers = array();
$headers[] = 'Authorization: Bearer {Token}';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://api_endpoint_here";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Bearer {Token}");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Make sure to replace
{Token}
with the access token.
Mindful Feedback users with admin privileges can create OAuth clients by choosing the Integrations tab on the Customer Settings page.
We use the standard OAuth2 authorisation code flow. To start, the client application must redirect the user to the Mindful authorisation endpoint at http://surveydynamix.com/oauth/authorize
. The redirect must include the following parameters:
Name | Description |
---|---|
response_type |
This will be set to code . |
client_id |
This is listed in the OAuth Clients table after you have created a client. |
redirect_uri |
This must match the redirect URL that was specified when creating the client and will be used for the callback endpoint when the user grants access. |
refresh_token |
The token used to refresh access token. |
Once the user has been redirected, they will be presented with a form allowing them to either approve or cancel the request. If the request is approved, the user will be redirected back to the redirect URL. This redirect will include a authorisation code.
To convert the authorisation code into an access token, the client application must make a final POST request to the access token endpoint at http://surveydynamix.com/oauth/token
with the following parameters:
grant_type
: This will be set toauthorization_code
client_id
: This is listed in the OAuth Clients table after you have created a client.client_secret
: This is listed in the OAuth Clients table and should be kept secure.redirect_uri
: This must match the redirect URL that was specified when creating the client and will be used for the callback endpoint when the user grants access.code
: Use the authorisation code included in the post-authorisation redirect.
This request will return a JSON response containing the access_token
attribute.
To authenticate using an access token add an authorisation header to each request in the following format:
Authorization: Bearer {access token}
Refresh Access Tokens
To refresh a access token using a
refresh_token
use this code:
curl -X POST "https://surveydynamix.com/api/oauth/token" \
-d "grant_type=refresh_token" \
-d "refresh_token=xxxxxx" \
-d "client_id=xxxxxx" \
-d "client_secret=xxxxxx"
var url = "https://surveydynamix.com/api/oauth/token";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/oauth/token');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=refresh_token&refresh_token=xxxxxx&client_id=xxxxxx&client_secret=xxxxxx");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
data = 'grant_type=refresh_token&refresh_token=xxxxxx&client_id=xxxxxx&client_secret=xxxxxx'
response = requests.post('https://surveydynamix.com/api/oauth/token', data=data)
print(response.content)
URI
/oauth/token
Method
POST
Parameters
Name | Description |
---|---|
grant_type |
The Refresh Token grant type is used by clients to exchange a refresh token for an access token when the access token has expired. To retrieve a new access token using the refresh token, set this field to refresh_token |
refresh_token |
The token used to refresh access token. |
client_id |
This is listed in the OAuth Clients table after you have created a client. |
client_secret |
This is listed in the OAuth Clients table and should be kept secure. |
Personal Access Tokens
To authorise API calls using a Personal Access Token, use this code:
# Using personal access token auth, pass the token as part of the authorisation header with each request
curl "api_endpoint_here" \
-H "Authorization: Bearer {Token}"
import requests
headers = {
'Authorization': 'Bearer {Token}',
}
response = requests.get('https://api_endpoint_here', headers=headers)
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api_endpoint_here');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$headers = array();
$headers[] = 'Authorization: Bearer {Token}';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://api_endpoint_here";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Bearer {Token}");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Make sure to replace
{Token}
with your personal access token.
Mindful users with admin privileges can create personal access tokens to authenticate API calls by choosing the Integrations tab on the Customer Settings page.
Personal access tokens are shown to the user only once upon creation and should be stored securely.
To authenticate using a personal access token add an authorisation header to each request in the following format:
Authorization: Bearer {personal access token}
Basic Authentication
To authorise API calls using Basic Authentication, use this code:
# Using Basic Auth, pass the default API credentials with each API call
curl "api_endpoint_here" \
-u CustomerUUID:AuthToken
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'api_endpoint_here');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'CustomerUUID' . ':' . 'AuthToken');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://api_endpoint_here',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
var url = "https://api_endpoint_herese";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Make sure to replace
CustomerUUID:AuthToken
with your specific api credentials.
Basic Authentication is the simplest authentication method that Mindful offers. You will use your customer Uuid as the username and your generated auth token as the password.
You can find your customer authentication credentials on the Customer Settings page under General Settings.
username: Customer Uuid
password: Auth Token
Rate Limiting
The Mindful Feedback API applies rate limiting on a per-customer basis to prevent excessive usage. The rate limit for most API methods is 120 requests per minute. When a rate limit is exceeded, the API returns an HTTP 429 response.
When a request is made to Feedback, the response will contain the following headers to indicate how close the application is to the limit and when the rate limit counter will reset.
Header | Description |
---|---|
X-RateLimit-Limit |
The maximum amount of requests you are allowed to send in the specified interval. |
X-RateLimit-Remaining |
The amount of requests you can still make in the current interval before exceeding the limit. |
X-RateLimit-Reset |
A unix timestamp indicating when the rate limit counter will reset to 0. Note that this header is only present when the rate limit has been exceeded. |
Interactions
Interaction resources follow this example format in JSON
{
"id": 24062,
"uuid": "7aa870f0-046f-11e7-9cc9-9de741d6e753",
"survey_id": 493,
"phone_number": "+61409999999",
"email": "john.bloggs@example.com",
"survey_type": "inbound",
"scheduled_at": "2016-02-19 10:30:02",
"external_ref": "example-id-235i129",
"updated_at": "2016-02-19 10:30:02",
"created_at": "2016-02-19 10:30:02",
"call_type": "support",
"agent_id": "nevilr",
"status": "Not Started",
"web_link": "https://surveydynamix.com/web_survey/<uuid>",
"respondent_language":"en-AU"
}
An interaction resource represents a request for a survey respondent to complete a specified survey. The status of all interactions with survey respondents are tracked by Mindful Feedback using the interaction resource. The interaction resource API is used to create new survey interactions, update existing interactions with new information, and view the status of existing interactions.
JSON object contains the following information:
Name | Description |
---|---|
id |
A unique interaction ID |
uuid |
A unique interaction UUID |
survey_id |
The ID of the survey that the interaction belongs to |
phone_number |
The contact phone number that will be used to perform outbound voice or SMS interactions |
email |
The email address of the survey respondent if the survey is a web survey distributed via email |
survey_type |
The medium by which the interaction will be performed. |
scheduled_at |
A timestamp scheduling when the interaction should be performed by Mindful Feedback |
external_ref |
This is the reference used to link the survey interaction with the contact center interaction. Often this value is set to the contact center interaction ID. |
call_type |
This is used to categorize survey interactions by the contact center call type. Often this value is set to the Queue Name |
agent_id |
The agent ID of a user in Mindful Feedback, used for report aggregation |
status |
A text field describing the current status of the interaction at point of retrieval. A list of statusus can be found below this table |
web_link |
Web link of the survey interaction. |
weblink_short |
Short web link of the survey interaction. |
unsubscribe_link_short |
Short URL to unsubscribe from Mindful Feedback surveys. Only available on SMS type surveys or when a short URL is explicitly requested when generating an interaction via API. |
restricted |
Interaction was restricted (not sent). This could be due to a license restriction on your Mindful Feedback account, the respondent being in the Do Not Call list, or the interaction breaching a Survey Restriction. |
respondent_language |
Language of the survey respondent. This is used to ensure the survey is played/displayed in the correct language. |
updated_at |
Timestamps specifying when the interaction was last updated |
created_at |
Timestamps specifying when the interaction was created |
updatable |
Updatable is a value returned from the interactions API indicating whether or not this interaction can be updated. If the interaction has started, completed, ended or has a sent_at value, it cannot be updated. It return true for a created interaction that has not yet started, completed, ended or has a sent_at value |
status
values that can be returned
Description |
---|
Sent to respondent <#> <minutes/hours/weeks/month> ago |
Completed <#> <minutes/hours/weeks/month>ago |
Abandoned <#> <minutes/hours/weeks/month> ago |
Not started |
In progress |
Prevented due to survey restriction <#> <minutes/hours/weeks/month> ago |
Get Interactions List
This code will return 5 outbound interactions from the survey with ID = 52:
curl -X GET "https://surveydynamix.com/api/interactions?survey_id=52&_limit=5&survey_type=outbound" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get("https://surveydynamix.com/api/interactions?survey_id=52&_limit=5&survey_type=outbound",
auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response)
$username = Customer_UUID;
$password = Auth_Token;
$URL = "https://surveydynamix.com/api/interactions?survey_id=52&_limit=5&survey_type=outbound";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result=curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code
print_r($result);
curl_close ($ch);
var url = "https://surveydynamix.com/api/interactions?survey_id=52&_limit=5&survey_type=outbound";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Gets a list of survey interactions as a JSON array of interaction resources.
URI
/interactions
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
survey_id |
The ID of the survey the interactions belong to. Found on the top right of the relevant survey page. | integer | none |
_limit |
The number of matching interactions to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit interactions are found. There is an _offset limit of 300000. | integer | 0 |
_order_by |
The interaction attribute to order the results by. This attribute only has an effect if the _order attribute is also set. If _order is not set, current interaction status will be used. | 'scheduled_at', 'completed_at', 'started_at', 'id' | 'id' |
_order |
The order that results should be returned in. | ‘ASC’: earliest first or ‘DESC’: most recent first | Default order is by current interaction status. |
_has_responses |
If true, only returns interactions that have at least one response. If false, only returns interactions with zero responses. | boolean | NONE |
_include_responses |
Whether or not to include question responses in JSON. When true, response objects (see Responses) will be appended in an array under the “responses” field. | boolean | FALSE |
_include_data |
Whether or not to include interaction data in JSON. When true, interaction data objects (see Interaction Data) will be appended in an array under the “interaction_data” field. | boolean | FALSE |
email |
The email address of the survey respondent, to be used in sending email type surveys. | An email address | empty |
phone_number |
The phone number of the survey respondent, to be used in voice/sms type surveys. | A 12 character string in the proper phone number format | empty |
survey_type |
The survey medium to use. | inbound, outbound, sms, email, web, websms | none |
scheduled_at |
The time at which an outbound voice, sms,websms, or email survey is scheduled to be sent. | dateTime | none |
external_ref |
A standard string field for referencing external system IDs. Single/Multiple values with comma seperated | string | none |
call_type |
A standard string field for report aggregation | string | none |
agent_id |
A string corresponding to an agent ID for report aggregation. | string | none |
started |
Whether or not the interaction has started | boolean | none |
completed |
Whether or not the interaction has completed | boolean | none |
survey_ended |
Whether or not the survey was successfully completed within the interaction | boolean | none |
start_date |
Only return interactions scheduled for after the specified start date | Date/time string | none |
end_date |
Only return interactions scheduled for before the specified end date | Date/time string | none |
_updated_after |
Filter response to include interactions that were updated or created after the specified timestamp. | UTC Timestamp (YYYY-MM-DD HH:mm:ss) | none |
Add New Interaction
This code will create an email interaction for respondent@example.com on survey with ID = 52 to be sent in 5 minutes:
curl -X POST "https://surveydynamix.com/api/interactions" \
-d "survey_id=52" \
-d "survey_type=email" \
-d "email=respondent@example.com" \
-d "scheduled_at=Now + 5 minutes" \
-u Customer_UUID:Auth_Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "survey_id=52&survey_type=email&email=respondent@example.com&scheduled_at=Now + 5 minutes");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
data = 'survey_id=52&survey_type=email&email=respondent@example.com&scheduled_at=Now + 5 minutes'
response = requests.post('https://surveydynamix.com/api/interactions', auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
var url = "https://surveydynamix.com/api/interactions";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "survey_id=52&survey_type=email&email=respondent@example.com&scheduled_at=Now + 5 minutes";
xhr.send(data);
Creates a survey interaction with the specified parameters.
URI
/interactions
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
survey_id |
The ID of the survey you wish to add the interaction to. Found on the top right of the relevant survey page. | integer | No default; Parameter required |
_force_new |
Force a new interaction to be added even if a pending interaction with the same phone number and survey ID exists. | boolean | FALSE |
phone_number |
The phone number to be used in surveying. Required for voice and sms interactions. | A 12 character string in the proper phone number format | empty |
phone_connection_id |
The ID of the phone connection you wish the interaction to use. Valid for voice/sms interactions. | integer | empty |
email |
The email address of the survey respondent. Required for email interactions. | An email address | empty |
survey_type |
The survey medium to use. | inbound, outbound, sms, web, email, websms | web |
scheduled_at |
The time at which an outbound voice, sms, or email survey is scheduled to be sent. Or the time after which an inbound survey is allowed to start. | dateTime string. Accepts times in standard UTC format and in the format “Now + X Days/Hours/Minutes” | now |
external_ref |
A standard string field for referencing external system IDs with single or multiple references. | string | empty |
call_type |
A standard string field for report aggregation | string | empty |
agent_id |
A string corresponding to an agent ID. Will allow an agent user with this ID to see the interaction in the dashboard, and will be used to aggregate for agent rankings. | string | empty |
respondent_language |
The specific language of the survey respondent. This is used to select survey prompts in multi-language surveys and to determine what language and dialect to use when automatically transcribing voice responses. | see Supported Languages | determined by region |
_shorten_urls |
Generate a short URL for the start survey link and unsubscribe link. | boolean | FALSE |
Custom Metadata |
parameters not otherwise listed in this table will be added as interaction data resources associated with the created interaction. | The key must only include alphanumeric characters and underscores and must start with a letter. The value may be any string. | none |
Get Specific Interaction(s)
This code will return a JSON object for the interaction resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/interactions/891234" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get("https://surveydynamix.com/api/interactions/891234",
auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interactions/891234";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
This code will return JSON objects for the interaction resources with external_ref values of 891234 and 135900:
curl -X GET "https://surveydynamix.com/api/interactions?external_ref=891234,135900" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get("https://surveydynamix.com/api/interactions?external_ref=891234,135900",
auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions?external_ref=891234,135900');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interactions?external_ref=891234,135900";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Returns the JSON object for an interaction resource specified by either:
- an {interaction_id}
- one or more {external_ref}
values, separated by commas
URI
/interactions/{interaction_id}
/interactions?external_ref={external_ref_1},{external_ref_2},...{external_ref_n}
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
_include_responses |
Whether or not to include question responses in JSON. When true, response objects (see Responses) will be appended in an array under the “responses” field. | boolean | FALSE |
_include_data |
Whether or not to include interaction data in JSON. When true, interaction data objects (see Interaction Data) will be appended in an array under the “interaction_data” field. | boolean | FALSE |
Delete Interaction
This code will delete the interaction resource with ID = 891234:
curl -X DELETE "https://surveydynamix.com/api/interactions/891234" \
-u Customer_UUID:Auth_Token
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.delete('https://surveydynamix.com/api/interactions/891234', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
var url = "https://surveydynamix.com/api/interactions/891234";
var xhr = new XMLHttpRequest();
xhr.open("DELETE", url);
xhr.setRequestHeader("Authorization", "Basic Auth_Token");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Deletes an interaction resource specified by {interaction_id}
.
URI
/interactions/{interaction_id}
Method
DELETE
Parameters
None
Update Interaction
This code will update the interaction resource with ID = 891234 using a modified JSON object:
curl -X PUT "https://surveydynamix.com/api/interactions/891234" \
-d "interaction={\"id\":891234,\"survey_id\":52,\"phone_number\":\"\",\"survey_type\":\"email\",\"scheduled_at\":\"2017-05-04 02:53:49\",\"external_ref\":\"\",\"created_at\":\"2017-05-04 02:53:49\",\"updated_at\":\"2017-05-04 02:54:55\",\"call_type\":\"\",\"agent_id\":\"\",\"uuid\":\"e67fa4e0-3074-11e7-8efe-116b9b2f6833\",\"email\":\"rileyneville@gmail.com\",\"status\":\"Completed 1 hour ago\",\"weblink\":\"https:\/\/surveydynamix.com\/web_survey\/e67fa4e0-3074-11e7-8efe-116b9b2f6833\"}" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/interactions/891234";
var xhr = new XMLHttpRequest();
xhr.open("PUT", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = 'interaction={"id":891234,"survey_id":52,"phone_number":"","survey_type":"email","scheduled_at":"2017-05-04 02:53:49","external_ref":"","created_at":"2017-05-04 02:53:49","updated_at":"2017-05-04 02:54:55","call_type":"","agent_id":"","uuid":"e67fa4e0-3074-11e7-8efe-116b9b2f6833","email":"rileyneville@gmail.com","status":"Completed 1 hour ago","weblink":"https://surveydynamix.com/web_survey/e67fa4e0-3074-11e7-8efe-116b9b2f6833"}';
xhr.send(data);
import requests
data = 'interaction={"id":891234,"survey_id":52,"phone_number":"","survey_type":"email","scheduled_at":"2017-05-04 02:53:49","external_ref":"","created_at":"2017-05-04 02:53:49","updated_at":"2017-05-04 02:54:55","call_type":"","agent_id":"","uuid":"e67fa4e0-3074-11e7-8efe-116b9b2f6833","email":"rileyneville@gmail.com","status":"Completed 1 hour ago","weblink":"https:\/\/surveydynamix.com\/web_survey\/e67fa4e0-3074-11e7-8efe-116b9b2f6833"}'
response = requests.post('https://surveydynamix.com/api/interactions/891234', auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "interaction={\"id\":891234,\"survey_id\":52,\"phone_number\":\"\",\"survey_type\":\"email\",\"scheduled_at\":\"2017-05-04 02:53:49\",\"external_ref\":\"\",\"created_at\":\"2017-05-04 02:53:49\",\"updated_at\":\"2017-05-04 02:54:55\",\"call_type\":\"\",\"agent_id\":\"\",\"uuid\":\"e67fa4e0-3074-11e7-8efe-116b9b2f6833\",\"email\":\"rileyneville@gmail.com\",\"status\":\"Completed 1 hour ago\",\"weblink\":\"https://surveydynamix.com/web_survey/e67fa4e0-3074-11e7-8efe-116b9b2f6833\"}");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Updates a specified interaction with new properties supplied in a JSON object.
Note that the new JSON object must have the same ID as the resource you are attempting to update.
URI
/interactions/{interaction_id}
Method
PUT
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
interaction |
A JSON object representing the interaction in the same format as returned by get and create requests with the fields to update altered in text. | JSON String | No default; Parameter required |
Get Responses List By Interaction
This code will return a list of survey response resources associated with the interaction resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/interactions/891234/responses" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/interactions/891234/responses";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234/responses');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/interactions/891234/responses', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of survey responses for the requested interaction.
This works the same as a GET call to the /responses resource with the interaction_id parameter set to {interaction_id}
`
URI
/interactions/{interaction_id}/responses
Method
GET
Parameters
Get Interaction Data List By Interaction
This code will return a list of interaction data resources associated with the interaction resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/interactions/891234/interaction_data" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/interactions/891234/interaction_data";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234/interaction_data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/interactions/891234/interaction_data', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of interaction data for the requested interaction
This works the same as a GET call to the /interaction_data resource with the interaction_id parameter set to {interaction_id}
URI
/interactions/{interaction_id}/interaction_data
Method
GET
Parameters
See Get Interaction Data List.
Start Survey
This code will start the survey for interaction with ID = 891234
curl -X POST "https://surveydynamix.com/api/interactions/891234/start_survey" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/interactions/891234/start_survey";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.setRequestHeader("Content-Length", "0");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234/start_survey');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.post('https://surveydynamix.com/api/interactions/891234/start_survey', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
The request will return a JSON object with the following example structure:
{
"prompts":[
"This is the first survey prompt text",
"This is the second survey prompt text",
# ...
"This is the Nth survey prompt text",],
"sound_files":[
"http://First_sound_file_url.mp3",
"http://Second_sound_file_url.mp3",
# ...
"http://Nth_sound_file_url.mp3",],
"survey_completed": 0,
"current_question":{
#question resource object for current question if survey_completed = 0
}
}
Starts a web based survey (if not already started) and returns lists of the current survey prompts and sound files if relevant. Also returns details of current question if a question response is expected.
URI
/interactions/{interaction_id}/start_survey
Method
POST
Parameters
None
Submit Survey Response
This code will submit the response "Yes" to the survey for interaction with ID = 891234
curl -X POST "https://surveydynamix.com/api/interactions/891234/submit_response" \
-d "response=Yes" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/interactions/891234/submit_response";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "response=Yes";
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234/submit_response');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "response=Yes");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
data = 'response=Yes'
response = requests.post('https://surveydynamix.com/api/interactions/891234/submit_response', auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
The request will return a JSON object with the following example structure:
{
"prompts":[
"This is the first survey prompt text",
"This is the second survey prompt text",
# ...
"This is the Nth survey prompt text",],
"sound_files":[
"http://First_sound_file_url.mp3",
"http://Second_sound_file_url.mp3",
# ...
"http://Nth_sound_file_url.mp3",],
"survey_completed": 0,
"current_question":{
#question resource object for current question if survey_completed = 0
}
}
Submits a response to the current survey question, evaluates the response, then returns lists of the current survey prompts and sound files if relevant. Also returns details of current question if a question response is expected. If the interaction has not yet started, this will redirect to the Start Survey call instead.
URI
/interactions/{interaction_id}/submit_response
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
response |
The string response sent by the survey respondent. | string or array (i.e [0,1] if multichoice) |
No default; Parameter required |
Abandon Survey
This code will finish the survey for interaction with ID = 891234
curl -X POST "https://surveydynamix.com/api/interactions/891234/abandon_survey" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/interactions/891234/abandon_survey";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.setRequestHeader("Content-Length", "0");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interactions/891234/abandon_survey');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.post('https://surveydynamix.com/api/interactions/891234/abandon_survey', auth=HTTPBasicAuth(Customer_UUID, Auth_Token), )
print(response.content)
The request will return a JSON object with the following example structure:
{
"prompts":[
"This is the first survey prompt text",
"This is the second survey prompt text",
# ...
"This is the Nth survey prompt text",],
"sound_files":[
"http://First_sound_file_url.mp3",
"http://Second_sound_file_url.mp3",
# ...
"http://Nth_sound_file_url.mp3",],
"survey_completed": 1
}
Abandons or completes a web based survey and returns lists of the current survey prompts and sound files if relevant.
URI
/interactions/{interaction_id}/abandon_survey
Method
POST
Parameters
None
Interaction Data
Interaction data resources follow this example format in JSON
{
"id": 12214125,
"interaction_id": 24062,
"custom_key": "VALUE",
"custom_value": "GOLD",
"created_at": "2016-02-19 10:30:02",
"updated_at": "2016-02-19 10:30:02"
}
An interaction data resource details a custom key value pair associated with a specific survey interaction. These can be used to tag interactions with specific data for reporting purposes.
The API can be used to retrieve lists of Interaction Data objects related to a specific interaction or survey.
JSON object contains the following information
Name | Description |
---|---|
id |
A unique interaction data ID. |
interaction_id |
A unique ID for the interaction. |
custom_key |
--- |
custom_value |
--- |
updated_at |
Timestamps specifying when the key value pair was last updated |
created_at |
Timestamps specifying when the key value pair was created |
Get Interaction Data List
This code will return a JSON array of interaction data resources associated with the interaction resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/interaction_data?interaction_id=891234" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get('https://surveydynamix.com/api/interaction_data?interaction_id=891234', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interaction_data?interaction_id=891234');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interaction_data?interaction_id=891234";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
This code will return a JSON array containing just the interaction data object with custom key = foo for the interaction resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/interaction_data?interaction_id=891234&custom_key=foo" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get('https://surveydynamix.com/api/interaction_data?interaction_id=891234&custom_key=foo',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interaction_data?interaction_id=891234&custom_key=foo');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interaction_data?interaction_id=891234&custom_key=foo";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Gets a list of interaction data resources associated with a survey or interaction resource.
URI
/interaction_data
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
survey_id |
The ID of the survey resource the interaction data is associated with. | integer | none |
interaction_id |
The ID of the interaction resource the interaction data is associated with. | integer | none |
_limit |
The number of matching interaction data resources to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit interaction data resources are found. There is an _offset limit of 300000. | integer | 0 |
_order |
The order that results should be returned in. | ‘ASC’: earliest first | DESC |
or ‘DESC’: most recent first | |||
_order_by |
The attribute to order the results by. | 'id','custom_value','custom_key' | 'id' |
custom_key |
The custom key of the interaction data. | A string consisting only of alphanumeric characters and underscores and starting with a letter | none |
Get Specific Interaction Data
This code will return a JSON object for the interaction data resource with ID = 12214125:
curl -X GET "https://surveydynamix.com/api/interaction_data/12214125" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get('https://surveydynamix.com/api/interaction_data/12214125',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interaction_data/12214125');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interaction_data/12214125";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Returns the JSON object for an interaction data resource specified by {interaction_data_id}
.
URI
/interaction_data/{interaction_data_id}
Method
GET
Parameters
None
Set Interaction Data
This code will add the custom key value pair foo=bar to the interaction resource with ID = 891234:
curl -X POST "https://surveydynamix.com/api/interaction_data" \
-d "interaction_id=891234" \
-d "custom_key=foo" \
-d "custom_value=bar" \
-u Customer_UUID:Auth_Token
import requests
data = 'interaction_id=891234&custom_key=foo&custom_value=bar'
response = requests.post('https://surveydynamix.com/api/interaction_data',auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interaction_data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "interaction_id=891234&custom_key=foo&custom_value=bar");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interaction_data";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "interaction_id=891234&custom_key=foo&custom_value=bar";
xhr.send(data);
This code will update the existing custom key value pair to foo=baz:
curl -X POST "https://surveydynamix.com/api/interaction_data" \
-d "interaction_id=891234" \
-d "custom_key=foo" \
-d "custom_value=baz" \
-u Customer_UUID:Auth_Token
import requests
data = 'interaction_id=891234&custom_key=foo&custom_value=baz'
response = requests.post('https://surveydynamix.com/api/interaction_data',auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interaction_data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "interaction_id=891234&custom_key=foo&custom_value=baz");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interaction_data";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "interaction_id=891234&custom_key=foo&custom_value=baz";
xhr.send(data);
Adds a custom key value pair associated with a specified interaction.
If the custom key already exists for that interaction, it is overwritten with the new value.
The updated interaction data JSON object will be returned.
URI
/interaction_data
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
interaction_id |
The ID of the interaction resource the interaction data is associated with. | integer | No default; Parameter required |
custom_key |
The custom key of the interaction data. | A string consisting only of alphanumeric characters and underscores and starting with a letter | No default; Parameter required |
custom_value |
The custom value of the interaction data. | string | No default; Parameter required |
Delete Interaction Data
This code will delete the interaction data resource with ID = 12214125:
curl -X DELETE "https://surveydynamix.com/api/interaction_data/12214125" \
-u Customer_UUID:Auth_Token
import requests
response = requests.delete('https://surveydynamix.com/api/interaction_data/12214125',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/interaction_data/12214125');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/interaction_data/12214125";
var xhr = new XMLHttpRequest();
xhr.open("DELETE", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Deletes an interaction data resource specified by {interaction_data_id}
.
URI
/interaction_data/{interaction_data_id}
Method
DELETE
Parameters
None
Responses
Response resources follow this example format in JSON
{
"id": 124890182,
"interaction_id": 24062,
"question_id": 879,
"response": "Lorem Ipsum dolor sit.",
"submitted_at": "2016-02-19 10:30:02",
"recording_url": "<Twilio Voice Recording URL>",
"response_type": "text",
"question_label": "<Question label for reporting use>"
}
A response resource details the response given by a survey respondent to a question during an interaction. The complete results of a survey interaction are represented by a list of survey response objects for each question in the survey.
The response resource API is used to retrieve detailed survey results from Mindful Feedback and can be queried by survey, question, or specific interaction.
JSON object contains the following information
Name | Description |
---|---|
id |
A unique Response ID. |
interaction_id |
A unique ID for the interaction. |
question_id |
A unique ID for the question |
question_label |
Question label for reporting use |
response |
A string containing response given by the survey respondent |
response_type |
the type of response it was (text , yesno , nps , number , or multichoice ) |
recording_url |
URL/link to the Twilio voice recording. |
submitted_at |
Timestamps specifying when the response was submitted |
Get Responses List
This code will return a JSON array of the most recent 100 response resources associated with the survey resource with ID = 52:
curl -X GET "https://surveydynamix.com/api/responses?survey_id=52&_limit=100&_order=DESC" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/responses?survey_id=52&_limit=100&_order=DESC";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/responses?survey_id=52&_limit=100&_order=DESC');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/responses?survey_id=52&_limit=100&_order=DESC',
auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of survey responses associated with a survey, question, or interaction resource.
URI
/responses
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
survey_id |
The ID of the survey resource the responses is associated with. | integer | none |
question_id |
The ID of the question resource the responses is associated with. | integer | none |
interaction_id |
The ID of the interaction resource the responses is associated with. | integer | none |
_limit |
The number of matching responses to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit responses are found. There is an _offset limit of 300000. | integer | 0 |
_order_by |
The attribute to order the results by. | 'submitted_at','id' | 'id' |
_order |
The order that results should be returned in. | ‘ASC’: earliest first | DESC |
or ‘DESC’: most recent first | |||
response |
Filters results to only where the response exactly equals this string. | string | none |
response_contains |
Filters results to where the response contains this string | string | none |
start_date |
Only return responses submitted after the specified start date | Date/time string | none |
end_date |
Only return responses submitted before the specified end date | Date/time string | none |
Get Specific Response
This code will return a JSON object for the response resource with ID = 124890182:
curl -X GET "https://surveydynamix.com/api/responses/124890182" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/responses/124890182";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/responses/124890182');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/responses/124890182',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Returns the JSON object for a response resource specified by {response_id}
.
URI
/responses/{response_id}
Method
GET
Parameters
None
Surveys
Survey resources follow this example format in JSON
{
"id": 52,
"name": "Test survey",
"description": "Test survey for development",
"email_from_address": "test@surveydynamix.com",
"email_from_name": "Mindful Feedback API",
"email_subject_prompt": {
"text": {
"default": "Test email survey"
}
},
"greeting_prompt": {
"text": {
"default": "Thanks for taking the time to respond to our survey!"
},
"sound_files": {
"default": "<sound file url>.mp3"
}
},
"instructions_prompt": {
"text": {
"default": "We'd love to get some feedback on your recent customer experience!"
},
"sound_files": {
"default": "<sound file url>.mp3"
}
},
"closing_prompt": {
"text": {
"default": "Thank you for participating. Goodbye."
},
"sound_files": {
"default": "<sound file url>.mp3"
}
},
"invalid_response_prompt": {
"text": {
"default": ""
}
},
"inbound_number": "+61999999999",
"outbound_number": "+61999999999",
"sms_number": "+61888888888",
"rediect_timeout": "3200"
}
A survey resource details the core properties of a survey within SDX.
The survey query API can be used to get detailed information about a survey for third party reporting or API response submission
JSON object contains the following information
Name | Description |
---|---|
id |
A unique survey ID. |
name |
The name of the survey. |
description |
Description of the survey |
email_from_address |
Email from details |
email_from_name |
Email name details |
email_subject_prompt |
Email subject text prompt |
greeting_prompt |
Greeting prompts |
instructions_prompt |
Instructions prompts |
closing_prompt |
Closing prompts |
invalid_response_prompt |
The invalid response prompt |
inbound_number |
Voice connection number for inbound |
outbound_number |
Voice connection number for outbound |
sms_number |
SMS connection number for SMS |
redirect_timeout |
--- |
Get Surveys List
This code will return a JSON array of all survey resources associated with the authenticated customer:
curl -X GET "https://surveydynamix.com/api/surveys?_limit=1000" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/surveys?_limit=1000";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
import requests
response = requests.get('https://surveydynamix.com/api/surveys?_limit=1000',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/surveys?_limit=1000');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Gets a list of survey resources associated with the authenticated customer.
URI
/surveys
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
_limit |
The number of matching results to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit results are found. There is an _offset limit of 300000. | integer | 0 |
_order |
The order of ID that results should be returned in. | ‘ASC’: earliest first | DESC |
or ‘DESC’: most recent first |
Get Specific Survey
This code will return a JSON object for the survey resource with ID = 52:
curl -X GET "https://surveydynamix.com/api/surveys/52" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/surveys/52";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/surveys/52');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/surveys/52',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Returns the JSON object for a survey resource specified by {survey_id}
.
URI
/surveys/{survey_id}
Method
GET
Parameters
None
Get Questions List By Survey
This code will return a JSON array of question resources that are part of the survey resource with ID = 52:
curl -X GET "https://surveydynamix.com/api/surveys/52/questions" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/surveys/52/questions";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/surveys/52/questions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/surveys/52/questions',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of questions that are part of the requested survey.
This works the same as a GET call to the /questions resource with the survey_id
parameter set to {survey_id}
URI
/surveys/{survey_id}/questions
GET
Parameters
Get Interactions List By Survey
This code will return a JSON array of interaction resources that are associated with the survey resource with ID = 52:
curl -X GET "https://surveydynamix.com/api/surveys/52/interactions" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/surveys/52/interactions";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/surveys/52/interactions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/surveys/52/interactions',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of interactions that are associated with the requested survey.
This works the same as a GET call to the /interactions resource with the survey_id
parameter set to {survey_id}
URI
/surveys/{survey_id}/interactions
GET
Parameters
Get Interaction Data List By Survey
This code will return a JSON array of interaction data resources that are associated with the survey resource with ID = 52:
curl -X GET "https://surveydynamix.com/api/surveys/52/interaction_data" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/surveys/52/interaction_data";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/surveys/52/interaction_data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/surveys/52/interaction_data', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of interaction data resources that associated with of the requested survey.
This works the same as a GET call to the /interaction_data resource with the survey_id
parameter set to {survey_id}
URI
/surveys/{survey_id}/interaction_data
GET
Parameters
Get Responses List By Survey
This code will return a JSON array of response resources that are associated with the survey resource with ID = 52:
curl -X GET "https://surveydynamix.com/api/surveys/52/responses" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/surveys/52/responses";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
import requests
response = requests.get('https://surveydynamix.com/api/surveys/52/responses',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/surveys/52/responses');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Gets a list of responses that are associated with the requested survey.
This works the same as a GET call to the /responses resource with the survey_id
parameter set to {survey_id}
URI
/surveys/{survey_id}/responses
GET
Parameters
Questions
Question resources follow this example format in JSON
{
"id": 509,
"survey_id": 71,
"order": 2,
"max_response": 1,
"question_type": "multichoice",
"question_label": "Multiple Choice Question",
"question_prompt": {
"text": {
"default": "What is your favourite letter?",
},
"sound_files": {
"default": "<sound file url>.mp3",
}
},
"scale_label_min_prompt": {
"text": {
"default": ""
}
},
"scale_label_mid_prompt": {
"text": {
"default": ""
}
},
"scale_label_max_prompt": {
"text": {
"default": ""
}
},
"response_options": [
{
"label": "a",
"prompt": {
"text": {
"default": "A"
}
}
},
{
"label": "b",
"prompt": {
"text": {
"default": "B"
}
}
},
{
"label": "c",
"prompt": {
"text": {
"default": "C"
}
}
}
],
"compulsory": 0,
"agent_score": 0,
"transcribe": 1
}
A question resource details the core properties of a question to be asked in an SDX survey.
The question query API can be used to get detailed information about a questions for third party reporting or API response submission
JSON object contains the following information
Name | Description |
---|---|
id |
A unique question ID. |
survey_id |
If queried for a particular survey, the survey id and question order within the survey. |
order |
Order of the question. |
max_response |
MAx amount of responses. |
question_type |
Type of question (text , yesno , nps , number , or multichoice )) |
question_label |
Label used for reporting |
question_prompt |
Question prompt object |
scale_label_min_prompt |
The minimum scale label which is a text prompt object |
scale_label_mid_prompt |
The medium scale label which is a text prompt object |
scale_label_max_prompt |
The maximum scale label which is a text prompt object |
response_options |
The response options, including a label and text prompt for each response option. This field is null when the question type is not multichoice. |
compulsory |
boolean indicating whether or not the question is considered compulsory. |
agent_score |
boolean indicating whether or not the responses to the question will affect agent scores. |
transcribe |
boolean indicating whether question responses should automatically be transcribed for text responses given over a voice channel. |
Get Questions List
This code will return a JSON array of all question resources part of the survey with id = 52 :
curl -X GET "https://surveydynamix.com/api/questions?survey_id=52" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/questions?survey_id=52";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/questions?survey_id=52');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/questions?survey_id=52', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of question resources associated with the authenticated customer.
Can be queried by survey id, question type, or question label.
URI
/questions
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
_limit |
The number of matching results to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit results are found. There is an _offset limit of 300000. | integer | 0 |
_order |
The order of ID that results should be returned in. | ‘ASC’: earliest first | DESC |
or ‘DESC’: most recent first | |||
survey_id |
The ID of the survey resource question is associated with. | integer | none |
question_type |
The type of question. | number, yesno, text, nps, multichoice | none |
question_label |
The reporting label of the question. | string up to 30 characters long | none |
Get Specific Question
This code will return a JSON object for the question resource with ID = 509:
curl -X GET "https://surveydynamix.com/api/questions/509" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/questions/509";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/questions/509');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/questions/509', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Returns the JSON object for a question resource specified by {question_id}
.
URI
/questions/{question_id}
Method
GET
Parameters
None
Get Responses List By Question
This code will return a JSON array of responses associated with the question resource with ID = 509:
curl -X GET "https://surveydynamix.com/api/questions/509/responses" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/questions/509/responses";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/questions/509/responses');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/questions/509/responses', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of responses to the requested question.
This works the same as a GET call to the /responses resource with the question_id
parameter set to {question_id}
URI
/questions/{question_id}/responses
GET
Parameters
Users
User resources follow this example format in JSON
{
"id": 4064,
"name": "Joe Smith",
"email": "joesmith@example.com",
"agent_id": "jSmith1",
"phone": "+61499999999",
"timezone": "Australia/Brisbane"
}
A user resource details the core properties of a Mindful Feedback user.
The users query API can be used to get detailed information about users for third party reporting or API interaction creation.
JSON object contains the following information
Name | Description |
---|---|
id |
A unique user ID. |
name |
The user's name |
email |
email address which serves as their unique identifier. |
agent_id |
The user’s agent ID. |
phone |
The user's phone number |
timezone |
The user's timzone |
Get Users List
This code will return a JSON array of all users with "Joe" in their name associated with the authenticated customer:
curl -X GET "https://surveydynamix.com/api/users?_limit=1000&name_contains=Joe" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/users?_limit=1000&name_contains=Joe";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/users?_limit=1000&name_contains=Joe');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/users?_limit=1000&name_contains=Joe', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets a list of user resources associated with the authenticated customer.
URI
/users
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
_limit |
The number of matching results to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit results are found. There is an _offset limit of 300000. | integer | 0 |
_order |
The order of ID that results should be returned in. | ‘ASC’: earliest first | DESC |
or ‘DESC’: most recent first | |||
name |
The exact name of the user you want to find | string | none |
name_contains |
Part of the name of the user you want to find | string | none |
agent_id |
The agent ID of the user you want to find | string | none |
phone |
The phone number of the user you want to find | string | none |
email |
The email address of the user you want to find | string | none |
Get Specific User
This code will return a JSON object for the user with the email address joesmith@example.com:
curl -X GET "https://surveydynamix.com/api/users/joesmith@example.com" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/users/joesmith@example.com";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
import requests
response = requests.get('https://surveydynamix.com/api/users/joesmith@example.com', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/users/joesmith@example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Returns the JSON object for a user resource specified by {email_address}
.
URI
/users/{email_address}
Method
GET
Parameters
None
Get Interactions List By User
This code will return a JSON array of interaction resources associated with the user with email address joesmith@example.com:
curl -X GET "https://surveydynamix.com/api/users/joesmith@example.com/interactions" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/users/joesmith@example.com/interactions";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
import requests
response = requests.get('https://surveydynamix.com/api/users/joesmith@example.com/interactions', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/users/joesmith@example.com/interactions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Gets a list of interactions associated with a user by agent id
This works the same as a GET call to the /interactions resource with the agent_id
parameter set to the selected user’s agent ID.
URI
/users/{email_address}/interactions
GET
Parameters
User Groups
User Group resources follow this example format in JSON
{
"id": 24062,
"name": "My User Group",
"updated_at": "2016-02-19 10:30:02",
"created_at": "2016-02-19 10:30:02"
}
A User Group resource details the core properties of a Mindful Feedback User Group.
The User Group API can be used to get details of user groups and manage which users belong to which User Group.
JSON object contains the following information
Name | Description |
---|---|
id |
A unique user group ID. |
name |
A unique name |
updated_at |
Timestamps specifying when the user group was last updated |
created_at |
Timestamps specifying when the user group was created |
Get User Groups List
This code will return the first 5 user groups
curl -X GET "https://surveydynamix.com/api/user_groups?_limit=5" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/user_groups?_limit=5";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
import requests
response = requests.get('https://surveydynamix.com/api/user_groups?_limit=5', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups?_limit=5');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
This code will return the next 5 user groups
curl -X GET "https://surveydynamix.com/api/user_groups?_offset=5&_limit=5" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get('https://surveydynamix.com/api/user_groups?_limit=5', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups?_offset=5&_limit=5');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/user_groups?_offset=5&_limit=5";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
Gets a list of user groups as a JSON array of User Group resources.
URI
/user_groups
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
_limit |
The number of User Groups to return. | integer between 1 and 500 | 10 |
_offset |
The row number to start at when getting _limit User Groups. Useful if you have more than 500 User Groups or wish to "paginate" your requests. | integer | 0 |
Get Specific User Group
This code will return a JSON object for the User Group resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/user_groups/891234" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/user_groups/891234";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups/891234');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/user_groups/891234', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Returns the JSON object for a User Group resource specified by {user_group_id}
URI
/user_groups/{user_group_id}
Method
GET
Parameters
None
Get Users from User Group
This code will return a JSON object of all Users in the the User Group resource with ID = 891234:
curl -X GET "https://surveydynamix.com/api/user_groups/891234/users" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/user_groups/891234/users";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
import requests
response = requests.get('https://surveydynamix.com/api/user_groups/891234/users', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups/891234/users');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Returns the JSON object for Users in the User Group resource specified by {user_group_id}
URI
/user_groups/{user_group_id}/users
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
_limit |
The number of Users to return. | integer between 1 and 500 | 10 |
_offset |
The row number to start at when getting _limit Users. Useful if you have more than 500 Users in the specified User Group, or wish to "paginate" your requests. | integer | 0 |
Create New User Group
This code will create a User Group named 'My User Group':
curl -X POST "https://surveydynamix.com/api/user_groups/create" \
-d "name=My User Group" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/user_groups/create";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "name=My User Group";
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "name=My User Group");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
data = 'name=My User Group'
response = requests.post('https://surveydynamix.com/api/user_groups/create', auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
Creates a User Group with the specified parameters.
URI
/user_groups/create
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
name |
The name given to your User Group. Must be unique. | string | No default; Parameter required |
Add Users to User Group
This code will add users with the ID 1234 and 2468 to the user group with the ID 6789.
curl -X POST "https://surveydynamix.com/api/user_groups/6789/add_users" \
-H 'Content-Type: application/json' \
-d '{"visibility_level":"all","visible":"1","user_ids":[1234, 2468]}' \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/user_groups/6789/add_users";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = '{"visibility_level":"all","visible":"1","user_ids":[1234, 2468]}';
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups/6789/add_users');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"visibility_level\":\"all\",\"visible\":\"1\",\"user_ids\":[1234, 2468]}");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
headers = {
'Content-Type': 'application/json',
}
data = '{"visibility_level":"all","visible":"1","user_ids":[1234, 2468]}'
response = requests.post('https://surveydynamix.com/api/user_groups/6789/add_users', headers=headers, data=data,auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Adds the users that match user_ids
to the User Group specified by {user_group_id}
URI
/user_groups/{user_group_id}/add_users
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
user_ids |
An array of Mindful Feedback User IDs. You can obtain User IDs from the Users Resource by getting a specific user or by getting a list of all users | Array | No default; Parameter required |
visibility_level |
The level of access the users have to other user's results within the same User Group. | "all", "individual" | No default; Parameter required |
visible |
If true, the users being added are visible to other users in the same User Group | boolean | No default; Parameter required |
Remove Users from User Group
This code will remove users with the ID 1234 and 2468 from the user group with the ID 6789.
curl -X POST "https://surveydynamix.com/api/user_groups/6789/remove_users" \
-H 'Content-Type: application/json' \
-d '{"user_ids":[1234,2468]}' \
-u Customer_UUID:Auth_Token
import requests
headers = {
'Content-Type': 'application/json',
}
data = '{"user_ids":[1234,2468]}'
response = requests.post('https://surveydynamix.com/api/user_groups/6789/remove_users', headers=headers, data=data,auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
var url = "https://surveydynamix.com/api/user_groups/6789/remove_users";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = '{"user_ids":[1234,2468]}';
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/user_groups/6789/remove_users');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"user_ids\":[1234,2468]}");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Removes the users that match user_ids
from the User Group specified by {user_group_id}
URI
/user_groups/{user_group_id}/remove_users
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
user_ids |
An array of Mindful Feedback User IDs. You can obtain User IDs from the Users Resource by getting a specific user or by getting a list of all users | Array | No default; Parameter required |
Do Not Call List
Do not call list entries follow this example format in JSON
{
"contact":"+61409999999",
"added_at": "2016-02-19 10:30:02",
"added_by_user_id":"65"
}
The do not call list defines contacts which are not allowed to be surveyed via outbound telephony or email. The API can be used to retrieve lists of do not call entries, add contacts to the the do not call list, or remove them.
JSON object contains the following information
Name | Description |
---|---|
contact |
The contact which has been blocked. This is either a phone number or an email address. |
added_at |
Timestamps specifying when the entry was created |
added_by_user_id |
The id of the user who added the entry. If the entry was added via the API or by the contact clicking an unsubscribe link, this field will be set to null. |
Get Do Not Call List
This code will return the full do not call list:
curl -X GET "https://surveydynamix.com/api/do_not_call_list" \
-u Customer_UUID:Auth_Token
import requests
response = requests.get('https://surveydynamix.com/api/do_not_call_list', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/do_not_call_list');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/do_not_call_list";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
This code will return a JSON array of do not call list entries where the contact ends with "@gmail.com":
curl -X GET "https://surveydynamix.com/api/do_not_call_list?contact=%25@gmail.com" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/do_not_call_list?contact=%25@gmail.com";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/do_not_call_list?contact=%25@gmail.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/do_not_call_list?contact=%25@gmail.com',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets the do not call list, optionally filtered by contact.
URI
/do_not_call_list
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
contact |
A string to filter the list by. This accepts the wildcard character "%", allowing for example the ability to search contacts containing a specific email domain, or phone number area code. | String | none |
_limit |
The number of matching Do Not Call resources to return. | integer between 1 and 1000 | 10 |
_offset |
The row number to start at if more than _limit Do Not Call resources are found. | integer | 0 |
_order |
The order that results should be returned in. | ‘ASC’: earliest first | DESC |
or ‘DESC’: most recent first |
Get Specific Do Not Call List Entry
This code will return a JSON object for the do not call list entry "joebloggs@example.com":
curl -X GET "https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Returns the JSON object for a do not call list entry specified by the {contact}
.
URI
/do_not_call_list/{contact}
Method
GET
Parameters
None
Add Do Not Call List Entry
This code will add the email address "joebloggs@example.com" to the do not call list:
curl -X POST "https://surveydynamix.com/api/do_not_call_list" \
-d "contact=joebloggs@example.com" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/do_not_call_list";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "contact=joebloggs@example.com";
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/do_not_call_list');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "contact=joebloggs@example.com");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
data = 'contact=joebloggs@example.com'
response = requests.post('https://surveydynamix.com/api/do_not_call_list',auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
This code will add the phone number "+61409999999" to the do not call list:
curl -X POST "https://surveydynamix.com/api/do_not_call_list" \
-d "contact=+61409999999" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/do_not_call_list";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = "contact=+61409999999";
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/do_not_call_list');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "contact=+61409999999");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
data = 'contact=+61409999999'
response = requests.post('https://surveydynamix.com/api/do_not_call_list',auth=HTTPBasicAuth(Customer_UUID, Auth_Token), data=data)
print(response.content)
Adds a contact to the do not call list.
The resulting do not call list entry JSON object will be returned.
URI
/do_not_call_list
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
contact |
The phone number or email address of the contact to add to the do not call list | String | No default; Parameter required |
Delete Do Not Call List Entry
This code will remove the email address "joebloggs@example.com" from the do not call list:
curl -X DELETE "https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com";
var xhr = new XMLHttpRequest();
xhr.open("DELETE", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.delete('https://surveydynamix.com/api/do_not_call_list/joebloggs@example.com',auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Removes do not call list entry specified by {contact}
.
URI
/do_not_call_list/{contact}
Method
DELETE
Parameters
None
Survey Prompts
Survey prompts follow this example format in JSON
{
"text": {
"default": "We'd love to get some feedback on your recent customer experience!",
"en-au": "G'day! We'd love some feedback on your recent customer experience!",
"es-default": "Nos encantaría recibir algunos comentarios sobre su experiencia reciente con el cliente"
},
"sound_files": {
"default": "<sound file url>.mp3",
"en-default": "<sound file url>.mp3",
"en-au": "<sound file url>.mp3",
"es-default": "<sound file url>.mp3"
}
}
Survey prompts define what should be shown or played to a respondent while performing a survey.
Each survey prompt JSON object contains at least the text list, while the sound files list is only present if at least the default sound file is defined.
At runtime Mindful Feedback dynamically chooses which prompt to present based on the respondent language defined in the survey interaction, using defaults if the specific language is not defined. For example, if the respondent language is set to en-AU, it will first look for the text key "en-au". If that key is not defined, it will then look for "en-default", before finally presenting the "default" text if no other is defined. For a full list of supported language codes, check here
Survey Text Prompts
Survey text prompts are used for survey prompts which are not used in voice surveys. These prompts will never contain a sound file list.
Phone Numbers
Phone number lookup results follow this example format in JSON
{
"phone_number": "+61499999999",
"country_code": "AU",
"national_format": "0499 999 999",
"phone_type": "mobile"
}
Phone numbers in SDX are required to be in a specific international format. This resource allows you to lookup a phone number and get basic details including it's correct format for SDX, where it is located, and whether it is able to receive SMS surveys.
JSON object contains the following information
Name | Description |
---|---|
phone_number |
The phone number in the correct format expected by Mindful Feedback |
country_code |
The country code of where the phone number is registered |
national_format |
The national format for the phone number |
phone_type |
The phone type. This is either mobile, landline, or voip. |
Get Phone Number Details
This code will return the details of the Australian mobile number 0499999999 in the correct format required by Mindful Feedback
curl -X GET "https://surveydynamix.com/api/phone_numbers/0499999999?country_code=AU" \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/phone_numbers/0499999999?country_code=AU";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/phone_numbers/0499999999?country_code=AU');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
response = requests.get('https://surveydynamix.com/api/phone_numbers/0499999999?country_code=AU', auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Gets the specific details of a phone number. If the phone number is not valid, a 404 response will be returned instead.
URI
/phone_numbers/{phone_number}
Method
GET
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
country_code |
The ISO country code of the phone number. This is used to specify the country when the number is provided in a national format. | String | US |
PSTN Transfer Reservations
PSTN Transfer Reservation resources follow this example format in JSON
{
"survey_id":50,
"external_ref": "7aa870f0-046f-11e7-9cc9-9de741d6e753",
"custom_data": {"call_type":"Service","respondent_language":"en-US","agent_id":"aboyd","wrapup":"Problem solved","HandleTime":"144"},
"inbound_number": "+61490000000"
}
A PSTN Transfer Reservation is a way for you to give Mindful Feedback a unique ID and set of attributes for a future incoming call, when SIP transfers are not available. In response, Mindful Feedback will send back an inbound_number
, which you can transfer a caller to and the call will be assigned the attributes of the API request you just performed.
As a basic example, your survey might support multiple languages. However, a PSTN transfer has no way to notify Feedback of the incoming caller's language. That's where the PSTN Transfer Reservation comes in, telling Feedback that a call is about to arrive where the respondent_language
attribute is en-US
. Feedback sends back the phone number to which the caller should be transferred, and when the caller arrives at Feedback, we're expecting them and can conduct the survey in the appropriate language.
JSON object contains the following information
Name | Description |
---|---|
survey_id |
The ID of the survey you want the caller to hear when they are transferred. |
external_ref |
A unique ID that will be assigned to the interaction when the caller is transferred. |
custom_data |
A set of key/value pairs, which can contain any information you want on the interaction. Common information might be respondent_language=en-AU or call_type=GeneralEnquiries, but you can add any data you need to the interaction. |
inbound_number |
The phone number to which the caller must be transferred. |
Add New PSTN Transfer Reservation
This code will create a PSTN Transfer Reservation. The response will contain an
inbound_number
attribute. If a user is transferred to this number within 10 seconds of the API call, the call with be assigned theexternal_ref
andcustom_data
and the caller will hear the survey with the ID ofsurvey_id
.
curl -X POST "https://surveydynamix.com/api/create_transfer_reservation" \
-H 'Content-Type: application/json' \
-d '{"external_ref":"7aa870f0-046f-11e7-9cc9-9de741d6e753","survey_id":50,"custom_data": {"call_type":"Service","respondent_language":"en-US","agent_id":"aboyd", "wrapup":"Problem solved", "HandleTime":"144"}}' \
-u Customer_UUID:Auth_Token
var url = "https://surveydynamix.com/api/create_transfer_reservation";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = '{"external_ref":"7aa870f0-046f-11e7-9cc9-9de741d6e753","survey_id":50,"custom_data": {"call_type":"Service","respondent_language":"en-US","agent_id":"aboyd", "wrapup":"Problem solved", "HandleTime":"144"}}';
xhr.send(data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/create_transfer_reservation');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"external_ref\":\"7aa870f0-046f-11e7-9cc9-9de741d6e753\",\"survey_id\":50,\"custom_data\": {\"call_type\":\"Service\",\"respondent_language\":\"en-US\",\"agent_id\":\"aboyd\", \"wrapup\":\"Problem solved\", \"HandleTime\":\"144\"}}");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
import requests
headers = {
'Content-Type': 'application/json',
}
data = '{"external_ref":"7aa870f0-046f-11e7-9cc9-9de741d6e753","survey_id":50,"custom_data": {"call_type":"Service","respondent_language":"en-US","agent_id":"aboyd", "wrapup":"Problem solved", "HandleTime":"144"}}'
response = requests.post('https://surveydynamix.com/api/create_transfer_reservation', headers=headers, data=data, auth=HTTPBasicAuth(Customer_UUID, Auth_Token))
print(response.content)
Creates a PSTN Transfer Reservation
URI
/create_transfer_reservation
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
external_ref |
A unique ID that will be assigned to the incoming call. | string | No default; Parameter required |
custom_data |
A set of key/value pairs that are assigned to the incoming call. | JSON. The keys must only include alphanumeric characters and underscores and must start with a letter. The values may be any string. | none |
survey_id |
The ID of the survey you want the caller to complete. | Integer | No default; Parameter required |
phone_number_prefix |
Requests an inbound phone number starting with the prefix. If none is available, the phone_number_prefix will be ignored and the next available number will be returned. |
string | none |
SIP Transfer Reservations
SIP Transfer Reservation resources follow this example format in JSON
{
"external_ref": "7aa870f0-046f-11e7-9cc9-9de741d6e753",
"custom_data": {"call_type":"General Enquiries","respondent_language":"en-AU","some_other_custom_field":"value","etc":"etc"}
}
A SIP Transfer Reservation is a way for you to give Mindful Feedback information about an incoming SIP call.
This functionality allows you to make an API call to Mindful Feedback before transferring a SIP call, so that Feedback is expecting the call and can associate it with data from the API call.
JSON object contains the following information
Name | Description |
---|---|
external_ref |
This must match the SIPHEADER_X-SDX-external_ref header on your incoming SIP call |
custom_data |
A set of key/value pairs, which can contain any information you want on the interaction. Common information might be respondent_language=en-AU or call_type=GeneralEnquiries, but you can add any data you need to the interaction. |
Add New SIP Transfer Reservation
This code will create a SIP Transfer Reservation. If an incoming SIP call arrives with the same external_ref, it will be assigned a call_type, agent_id and respondent_language:
curl -X POST "https://surveydynamix.com/api/create_incoming_sip_data" \
-H 'Content-Type: application/json' \
-d '{"external_ref":"7aa870f0-046f-11e7-9cc9-9de741d6e753","custom_data": {"call_type":"customer satisfaction","respondent_language":"en-AU","agent_id":"al_boyd"}}' \
-u Customer_UUID:Auth_Token
import requests
headers = {
'Content-Type': 'application/json',
}
data = '{"external_ref":"7aa870f0-046f-11e7-9cc9-9de741d6e753","custom_data": {"call_type":"customer satisfaction","respondent_language":"en-AU","agent_id":"al_boyd"}}'
response = requests.post('https://surveydynamix.com/api/create_incoming_sip_data', auth=HTTPBasicAuth(Customer_UUID, Auth_Token), headers=headers, data=data)
print(response.content)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://surveydynamix.com/api/create_incoming_sip_data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"external_ref\":\"7aa870f0-046f-11e7-9cc9-9de741d6e753\",\"custom_data\": {\"call_type\":\"customer satisfaction\",\"respondent_language\":\"en-AU\",\"agent_id\":\"al_boyd\"}}");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'Customer_UUID' . ':' . 'Auth_Token');
$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
var url = "https://surveydynamix.com/api/create_incoming_sip_data";
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
var data = '{"external_ref":"7aa870f0-046f-11e7-9cc9-9de741d6e753","custom_data": {"call_type":"customer satisfaction","respondent_language":"en-AU","agent_id":"al_boyd"}}';
xhr.send(data);
Creates a SIP Transfer Reservation
URI
/create_incoming_sip_data
Method
POST
Parameters
Name | Description | Allowed Values | Default |
---|---|---|---|
external_ref |
A standard string field for linking SIP Transfer Reservation to an incoming SIP call. | string | No default; Parameter required |
custom_data |
Any data that should be associated with the incoming SIP call. | JSON. The keys must only include alphanumeric characters and underscores and must start with a letter. The values may be any string. | none |
Supported Languages
Mindful Feedback Supports the following respondent languages for survey prompt and response transcription purposes:
Language | languageCode | Language (English name) |
---|---|---|
Afrikaans (Suid-Afrika) | af-ZA |
Afrikaans (South Africa) |
gjuha shqipe (Shqiperia) | sq-AL |
Albanian (Albania) |
አማርኛ (ኢትዮጵያ) | am-ET |
Amharic (Ethiopia) |
العربية (الجزائر) | ar-DZ |
Arabic (Algeria) |
العربية (البحرين) | ar-BH |
Arabic (Bahrain) |
العربية (مصر) | ar-EG |
Arabic (Egypt) |
العربية (العراق) | ar-IQ |
Arabic (Iraq) |
العربية (إسرائيل) | ar-IL |
Arabic (Israel) |
العربية (الأردن) | ar-JO |
Arabic (Jordan) |
العربية (الكويت) | ar-KW |
Arabic (Kuwait) |
العربية (لبنان) | ar-LB |
Arabic (Lebanon) |
العربية (المغرب) | ar-MA |
Arabic (Morocco) |
العربية (عُمان) | ar-OM |
Arabic (Oman) |
العربية (قطر) | ar-QA |
Arabic (Qatar) |
العربية (السعودية) | ar-SA |
Arabic (Saudi Arabia) |
العربية (فلسطين) | ar-PS |
Arabic (State of Palestine) |
العربية (تونس) | ar-TN |
Arabic (Tunisia) |
العربية (الإمارات) | ar-AE |
Arabic (United Arab Emirates) |
العربية (اليمن) | ar-YE |
Arabic (Yemen) |
Հայ (Հայաստան) | hy-AM |
Armenian (Armenia) |
Azərbaycan (Azərbaycan) | az-AZ |
Azerbaijani (Azerbaijan) |
Bahasa Indonesia (Indonesia) | id-ID |
Indonesian (Indonesia) |
Bahasa Melayu (Malaysia) | ms-MY |
Malay (Malaysia) |
বাংলা (বাংলাদেশ) | bn-BD |
Bengali (Bangladesh) |
বাংলা (ভারত) | bn-IN |
Bengali (India) |
босански (Босна и Херцеговина) | bs-BA |
Bosnian (Bosnia and Herzegovina) |
Български (България) | bg-BG |
Bulgarian (Bulgaria) |
မြန်မာစကား | my-MM |
Burmese (Myanmar) |
Català (Espanya) | ca-ES |
Catalan (Spain) |
Čeština (Česká republika) | cs-CZ |
Czech (Czech Republic) |
國語 (台灣) | cmn-Hant-TW |
Chinese, Mandarin (Traditional, Taiwan) |
廣東話 (香港) | yue-Hant-HK |
Chinese, Cantonese (Traditional, Hong Kong) |
普通话 (中国大陆) | cmn-Hans-CN |
Chinese, Mandarin (Simplified, China) |
普通話 (香港) | cmn-Hans-HK |
Chinese, Mandarin (Simplified, Hong Kong) |
Dansk (Danmark) | da-DK |
Danish (Denmark) |
Deutsch (Österreich) | de-AT |
German (Austria) |
Deutsch (Deutschland) | de-DE |
German (Germany) |
Deutsch (Schweiz) | de-CH |
German (Switzerland) |
English (Australia) | en-AU |
English (Australia) |
English (Canada) | en-CA |
English (Canada) |
English (Ghana) | en-GH |
English (Ghana) |
English (Hong Kong) | en-HK |
English (Hong Kong) |
English (Great Britain) | en-GB |
English (United Kingdom) |
English (India) | en-IN |
English (India) |
English (Ireland) | en-IE |
English (Ireland) |
English (Kenya) | en-KE |
English (Kenya) |
English (New Zealand) | en-NZ |
English (New Zealand) |
English (Nigeria) | en-NG |
English (Nigeria) |
English (Pakistan) | en-PK |
English (Pakistan) |
English (Philippines) | en-PH |
English (Philippines) |
English (Singapore) | en-SG |
English (Singapore) |
English (South Africa) | en-ZA |
English (South Africa) |
English (Tanzania) | en-TZ |
English (Tanzania) |
English (United States) | en-US |
English (United States) |
Español (Argentina) | es-AR |
Spanish (Argentina) |
Español (Bolivia) | es-BO |
Spanish (Bolivia) |
Español (Chile) | es-CL |
Spanish (Chile) |
Español (Colombia) | es-CO |
Spanish (Colombia) |
Español (Costa Rica) | es-CR |
Spanish (Costa Rica) |
Español (Ecuador) | es-EC |
Spanish (Ecuador) |
Español (El Salvador) | es-SV |
Spanish (El Salvador) |
Español (España) | es-ES |
Spanish (Spain) |
Español (Estados Unidos) | es-US |
Spanish (United States) |
Español (Guatemala) | es-GT |
Spanish (Guatemala) |
Español (Honduras) | es-HN |
Spanish (Honduras) |
Español (México) | es-MX |
Spanish (Mexico) |
Español (Nicaragua) | es-NI |
Spanish (Nicaragua) |
Español (Panamá) | es-PA |
Spanish (Panama) |
Español (Paraguay) | es-PY |
Spanish (Paraguay) |
Español (Perú) | es-PE |
Spanish (Peru) |
Español (Puerto Rico) | es-PR |
Spanish (Puerto Rico) |
Español (República Dominicana) | es-DO |
Spanish (Dominican Republic) |
Español (Uruguay) | es-UY |
Spanish (Uruguay) |
Español (Venezuela) | es-VE |
Spanish (Venezuela) |
eesti keel (Eesti) | et-EE |
Estonian (Estonia) |
Euskara (Espainia) | eu-ES |
Basque (Spain) |
Filipino (Pilipinas) | fil-PH |
Filipino (Philippines) |
Français (Belgium) | fr-BE |
French (Belgium) |
Français (Canada) | fr-CA |
French (Canada) |
Français (France) | fr-FR |
French (France) |
Français (Switzerland) | fr-CH |
French (Switzerland) |
Galego (España) | gl-ES |
Galician (Spain) |
ქართული (საქართველო) | ka-GE |
Georgian (Georgia) |
Ελληνικά (Ελλάδα) | el-GR |
Greek (Greece) |
ગુજરાતી (ભારત) | gu-IN |
Gujarati (India) |
עברית (ישראל) | iw-IL |
Hebrew (Israel) |
हिन्दी (भारत) | hi-IN |
Hindi (India) |
Hrvatski (Hrvatska) | hr-HR |
Croatian (Croatia) |
IsiZulu (Ningizimu Afrika) | zu-ZA |
Zulu (South Africa) |
Íslenska (Ísland) | is-IS |
Icelandic (Iceland) |
Italiano (Italia) | it-IT |
Italian (Italy) |
Italiano (Switzerland) | it-CH |
Italian (Switzerland) |
日本語(日本) | ja-JP |
Japanese (Japan) |
Jawa (Indonesia) | jv-ID |
Javanese (Indonesia) |
ಕನ್ನಡ (ಭಾರತ) | kn-IN |
Kannada (India) |
ភាសាខ្មែរ (កម្ពុជា) | km-KH |
Khmer (Cambodia) |
한국어 (대한민국) | ko-KR |
Korean (South Korea) |
ລາວ (ລາວ) | lo-LA |
Lao (Laos) |
Latviešu (latviešu) | lv-LV |
Latvian (Latvia) |
Lietuvių (Lietuva) | lt-LT |
Lithuanian (Lithuania) |
македонски (Македонија) | mk-MK |
Macedonian (North Macedonia) |
Magyar (Magyarország) | hu-HU |
Hungarian (Hungary) |
മലയാളം (ഇന്ത്യ) | ml-IN |
Malayalam (India) |
मराठी (भारत) | mr-IN |
Marathi (India) |
монгол (Монгол Улс) | mn-MN |
Mongolian (Mongolia) |
Nederlands (Nederland) | nl-BE |
Dutch (Belgium) |
Nederlands (Nederland) | nl-NL |
Dutch (Netherlands) |
नेपाली (नेपाल) | ne-NP |
Nepali (Nepal) |
Norsk bokmål (Norge) | no-NO |
Norwegian Bokmål (Norway) |
فارسی (ایران) | fa-IR |
Persian (Iran) |
Polski (Polska) | pl-PL |
Polish (Poland) |
Português (Brasil) | pt-BR |
Portuguese (Brazil) |
Português (Portugal) | pt-PT |
Portuguese (Portugal) |
ਪੰਜਾਬੀ (ਗੁਰਮੁਖੀ ਇੰਡੀਆ) | pa-Guru-IN |
Punjabi (Gurmukhi India) |
Română (România) | ro-RO |
Romanian (Romania) |
Русский (Россия) | ru-RU |
Russian (Russia) |
Српски (Србија) | sr-RS |
Serbian (Serbia) |
සිංහල (ශ්රී ලංකාව) | si-LK |
Sinhala (Sri Lanka) |
Slovenčina (Slovensko) | sk-SK |
Slovak (Slovakia) |
Slovenščina (Slovenija) | sl-SI |
Slovenian (Slovenia) |
Suomi (Suomi) | fi-FI |
Finnish (Finland) |
Svenska (Sverige) | sv-SE |
Swedish (Sweden) |
Swahili (Tanzania) | sw-TZ |
Swahili (Tanzania) |
Swahili (Kenya) | sw-KE |
Swahili (Kenya) |
தமிழ் (இந்தியா) | ta-IN |
Tamil (India) |
தமிழ் (மலேசியா) | ta-MY |
Tamil (Malaysia) |
தமிழ் (சிங்கப்பூர்) | ta-SG |
Tamil (Singapore) |
தமிழ் (இலங்கை) | ta-LK |
Tamil (Sri Lanka) |
తెలుగు (భారతదేశం) | te-IN |
Telugu (India) |
ไทย (ประเทศไทย) | th-TH |
Thai (Thailand) |
Tiếng Việt (Việt Nam) | vi-VN |
Vietnamese (Vietnam) |
Türkçe (Türkiye) | tr-TR |
Turkish (Turkey) |
Українська (Україна) | uk-UA |
Ukrainian (Ukraine) |
Urang (Indonesia) | su-ID |
Sundanese (Indonesia) |
اردو (بھارت) | ur-IN |
Urdu (India) |
اردو (پاکستان) | ur-PK |
Urdu (Pakistan) |
Ўзбек (Узбакистон) | uz-UZ |
Uzbek (Uzbekistan) |
Mindful Feedback Supports the following respondent languages for survey response sentiment analysis (Most recent responses widget):
Language | languageCode | Language (English name) |
---|---|---|
العربية | ar |
Arabic |
普通话 (中国大陆) | zh |
Chinese, Mandarin (Simplified) |
國語 (台灣) | zh-TW |
Chinese, Mandarin (Traditional) |
Deutsch (Deutschland) | de |
German (Germany) |
English | en |
English |
Español | es |
Spanish |
Français | fr |
French |
हिन्दी | hi |
Hindi |
Italiano | it |
Italian |
日本語 | ja |
Japanese |
한국어 | ko |
Korean |
Português | pt |
Portuguese |
Mindful Feedback Supports the following respondent languages for text response sentiment analysis (Text response cloud widget):
Language | languageCode | Language (English name) |
---|---|---|
Deutsch (Deutschland) | de |
German (Germany) |
English | en |
English |
Español | es |
Spanish |
Français | fr |
French |
Italiano | it |
Italian |
Português | pt |
Portuguese |
Defaults
The default language value varies by region. The following table shows current default values by region URL.
Region URL | Language Code | Language |
---|---|---|
surveydynamix.com |
en-US |
English (United States) |
us2.surveydynamix.com |
en-US |
English (United States) |
us3.surveydynamix.com |
en-US |
English (United States) |
ca1.surveydynamix.com |
en-CA |
English (Canada) |
eu1.surveydynamix.com |
en-GB |
English (United Kingdom) |
au1.surveydynamix.com |
en-AU |
English (Australia) |
demo.surveydynamix.com |
en-AU |
English (Australia) |
Errors
The Mindful Feedback API uses the following error codes:
Error Code | Meaning |
---|---|
400 |
Bad Request -- Incorrectly formatted request. Check the API. |
401 |
Unauthorised -- Your API credentials are wrong or you do not have permission to access the requested resource |
404 |
Not Found -- The requested resource could not be found |
405 |
Method Not Allowed -- You tried to access an API endpoint with an invalid method |
409 |
Not Modified Due to Existing Record Conflict -- You may have tried to add or update a resource in a way that would conflict with an existing resource, or you may have tried to delete a resource that is not in a deletable state. |
410 |
Gone -- The requested resource has been deleted |
429 |
Rate limit exceeded -- You have sent too many requests in too short of a time-frame. |
500 |
Internal Server Error -- We had a problem with our server. Try again later. |
503 |
Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |