Authentication
Please consult the main API Documentation for information on obtaining an api token and authenticating requests.
Rate Limit
10 requests per second
100 requests per minute.
This is subject to change (as is the max number of items per requests, below), so we recommend building in error handling for hitting the rate limit.
Push Bulk CSAT Scores
Import a batch of CSAT scores into MaestroQA (max 100 items / request)
Request Headers
Request Body (JSON)
Note: Remove the notes following // before sending the actual API request.
{ "data": [ { "submitted_at": "2021-10-05T14:48:00.000Z", // string - the iso formatted datetime the survey response was submitted [year]-[month]-[day]T[hour]:[minute]:[second]Z ex. 2021-10-05T14:48:00.000Z - required "ticket_id": "922250816601", // string - the id of the ticket in the helpdesk system (such as Zendesk) - required "agent_id": "12345", // string - the id of the agent in the helpdesk system - either agent_id or agent_email is required "agent_email": "bob@maestroqa.com", // string - the email of the agent in the helpdesk system - either agent_id or agent_email is required "score": 5, // integer - the primary csat score - required "comment": "Great service!", // string - customer comment; CSAT setups often have this as a text answer to a follow up question - optional "score_label": "Perfect", // string - textual equivalent to the numeric score - i.e. "Strongly Agree" - optional "min_score": 0, // integer - the minimum score achievable - defaults to 1 - optional "max_score": 5, // integer - the maximum score achievable - defaults to 5 - optional "clarifying_answers": [ // string - other clarifying survey answers, if your CSAT survey contains more than the 2 typical CSAT questions - optional { "question": "Did you like the product experience?", // string - the question asked - required "comment": "It was OK, not as good as the support service", // string - customer comment; CSAT setups often have this as a text answer to a follow up question - optional "score_label": "Meh", // string - textual equivalent to the numeric score - i.e. "Strongly Agree" - optional "score": 3, // integer - the question score - required "min_score": 0, // string - the minimum score achievable - defaults to 1 - optional "max_score": 5 // string - the maximum score achievable - defaults to 5 - optional } ] } ] } |
Once the request is properly formatted in JSON, it should look something like this:
All fields marked optional can be omitted; we recommend including the min_score
and max_score
fields for future proofing, in case you ever change the range of values for your csat score.
Please note the ticket_id
, agent_id
and agent_email
fields are used by MaestroQA to credit the submitted CSAT score to the correct ticket and agent; those should be the identifiers as setup in your helpdesk (such as Zendesk or Salesforce).
For Qualtrics surveys, the easiest way to get the ticket_id
is to embed it as externalDataReference in the Qualtrics survey distribution.
We recommend also sending either agent_id
or agent_email
(if you have control over how externalDataReference is created, you could encode both ticket_id
and agent_id
within it and retrieve them that way); if neither agent_id
or agent_email
is sent, the item will not be inserted and return an error. If both are sent, agent_id
will take precedence.
Success Response
Status 201 CREATED
{ status: "completed", total: 2, results: [ // zendesk inspired { "action": "create", "_id": “5840ec43ac414d9c9”, // internal maestro id "status": "Created", "success": true, }, { "action": "create", "status": "Failed: [[Error Message]]", "success": false, }, ] } |