SMS Survey is our own solution for customer satisfaction survey using SMS. A survey request can be sent to the SMS survey application by using either the HTTP POST or HTTP GET method. The overview for the solution is displayed below:
A survey request has to be sent to the following address in order to send a survey SMS to an end user:
https://feedback.puzzel.com/survey/v1/customersurvey/RequestHandlerServlet
Here is an example of the body of a POST request containing the following XML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<log serviceid="[serviceid]">
<caller>
<queue>[Queue]</queue>
<agent>[agent]</agent>
<team>[team]</team>
<msisdn>[msisdn]</msisdn>
<password>[xxxx]<</password>
</caller>
</log>
the parameters can be optional or mandatory and the value in bracket must be substituted:
POST with extra parameter:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<log serviceid="[serviceid]">
<caller>
<queue>[queue]</queue>
<agent>[agent]</agent>
<team>[team]</team>
<msisdn>[msisdn]</msisdn>
<password>[xxxx]</password>
<Parameter1>[xxxx]</Parameter1>
<Parameter2>[xxxx]</Parameter2>
<Parameter3>[xxxx]</Parameter3>
<Parameter4>[xxxx]</Parameter4>
<Parameter5>[xxxx]</Parameter5>
</caller>
</log>
Parameter | Data Type | Description | |
---|---|---|---|
serviceid | String | SMSSurvey service's unique identifier | mandatory |
queue | String | Identifier for queue | optional |
agent | String | Identifier for agent | optional |
team | String | Identifier for team | optional |
msisdn | String | valid cellphone number which the survey SMS will be sent to | mandatory |
password | String | SMSSurvey service's password | mandatory |
Parameter | Data Type | Description | |
---|---|---|---|
Parameter 1 | String | Ex.: call wait time | optional |
Parameter 2 | String | Ex.: call duration | optional |
Parameter 3 | String | optional | |
Parameter 4 | String | optional | |
Parameter 5 | String | optional |
Extra parameters must be registered at Puzzel in order to be displayed and must be sent in the same order as defined. Please URL encode parameters containing spaces with %20, for example: parameter 1 = call%20wait%20time, parameter 2= call%20duration.
Content-Type is set to 'text/xml; charset=ISO-8859-1'
POST https://feedback.puzzel.com/survey/v1/customersurvey/RequestHandlerServlet HTTP/1.1
Content-Type: text/xml; charset=ISO-8859-1
<?xml version="1.0" encoding="ISO-8859-1" ?>
<log serviceid="2106">
<caller>
<queue>queue1</queue>
<agent>agent1</agent>
<team>team1</team>
<msisdn>90937954</msisdn>
<password>xxxx<</password>
</caller>
</log>
POST https://feedback.puzzel.com/survey/v1/customersurvey/RequestHandlerServlet HTTP/1.1
Content-Type: text/xml; charset=ISO-8859-1
<?xml version="1.0" encoding="ISO-8859-1" ?>
<log serviceid="2106">
<caller>
<queue>queue1</queue>
<agent>agent1</agent>
<team>team1</team>
<msisdn>90937954</msisdn>
<password>xxxx<</password>
<waittime>xxxx<</waittime>
<callduration>xxxx<</callduration>
</caller>
</log>
The server responds with 200 OK HTTP status code indicating the request has succeeded.
A survey request can be sent to the SMS survey application by using the following URL:
https://feedback.puzzel.com/survey/v1/customersurvey/RequestHandlerServlet?serviceid=2106&queue=1&agentid=1&msisdn=99999999&password=xxxx&customer_key=customer&user_id=xxxxx&related_iq_session=session
Parameter | Data Type | Description | |
---|---|---|---|
serviceid | String | SMSSurvey service's unique identifier | mandatory |
queue | String | Identifier for queue | optional |
agent | String | Identifier for agent | optional |
team | String | Identifier for team | optional |
msisdn | String | Valid cellphone number which the survey SMS will be sent to | mandatory |
password | String | SMSSurvey service's password | mandatory |
customer_key | String | Identifier for PCC customer (valid only for Puzzel Contact Center (PCC) customers) | optional |
user_id | String | Identifier for PCC user (valid only for Puzzel Contact Center customers) | optional |
related_iq_session | String | Identifier for PCC iq session (valid only for Puzzel Contact Center customers) | optional |
Parameter | Data Type | Description | |
---|---|---|---|
Parameter 1 | String | Ex.: call wait time | optional |
Parameter 2 | String | Ex.: call duration | optional |
Parameter 3 | String | optional | |
Parameter 4 | String | optional | |
Parameter 5 | String | optional |
Extra parameters must be registered at Puzzel in order to be displayed and must be sent in the same order as defined. Please URL encode parameters containing spaces with %20, for example: parameter 1 = call%20wait%20time, parameter 2= call%20duration.
GET https://feedback.puzzel.com/survey/v1/customersurvey/RequestHandlerServlet?serviceid=XXXX&queue=1&agentid=1&team=1&msisdn=99999999&password=XXXX&customer_key=customer&user_id=xxxxx&related_iq_session=session
HTTP/1.1
Host: feedback.puzzel.com
GET https://feedback.puzzel.com/survey/v1/customersurvey/RequestHandlerServlet?serviceid=XXXX&queue=1&agentid=1&team=1&msisdn=99999999&password=XXXX&customer_key=customer&user_id=xxxxx&related_iq_session=session&call%20wait%20time=xxxx&call%20duration=xxxx
HTTP/1.1
Host: feedback.puzzel.com
Your application must support the HTTP GET method.
Send your URL (location of your server application) to Puzzel's support team.
For example: http://foo.com/yourapplication
Our SMS application will send a GET request to your server application at the specified URL.
For example: http://foo.com/yourapplication?date=[date]&msisdn=[originator]&agentid=[agent]&queue=[queue]&team=[team]&score=[end user score]
Your server application can retrieve the values from the query string.
The server responds with 200 OK HTTP status code indicating the request has succeeded.