Skip to content

Depot csat

Registers the two survey routes UNGUARDED and the operator’s report GUARDED, on one mount because they are one feature and splitting them is how the guarded half ends up with the unguarded half’s reasoning applied to it.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETticket:readtenant facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

listCsatResponses serves the desk’s satisfaction report.

Paged in SQL rather than in Go, unlike most lists in this package: this table grows by one row per solved ticket forever and never shrinks, so the read-everything-then-slice shape the queue lists use would decrypt a comment per survey the desk has ever sent to render twenty five of them.

THE RATING FILTER IS THE POINT OF THE PAGE. A satisfaction report nobody can ask “show me the ones and twos” is a report that only ever confirms the average, and the rows worth reading are the ones that drag it down.

The SEARCH matches the ticket REFERENCE and nothing else, because the comment and the subject are both encrypted. That limit has to reach the console’s empty state: a search box that quietly cannot look inside the comments reads as a broken report rather than as a narrower one.

NameInTypeRequiredDescription
dirquerystring, one of asc, descNoSort direction.
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
ratingquerystring, one of 1, 2, 3, 4, 5NoComma-separated set. An unrecognised value is refused.
respondedAfterquerystringNo
respondedBeforequerystringNo
sortquerystring, one of responded, score, sentNoSort key.
StatusBodyDescription
200application/json, CsatResultListSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold ticket:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of CsatResultView
items[].commentrequiredstring
items[].respondedAtrequiredstring (date-time)
items[].scorerequiredinteger
items[].sentAtrequiredstring (date-time)
items[].surveyPublicIdrequiredstring
items[].ticketPublicIdrequiredstring
items[].ticketReferencerequiredstring
items[].ticketSubjectrequiredstring
pagerequiredinteger
pageSizerequiredinteger
summaryrequiredCsatSummaryView

csatSummaryView is the roll-up beside the page.

summary.averageScorerequirednumber

double.

summary.responseCountrequiredinteger
summary.scoreCountsrequiredarray of integer

at least 5 items. at most 5 items.

summary.sentCountrequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/csat-responses?dir=asc&page=0&pageSize=0&q=<q>&rating=1&respondedAfter=<respondedAfter>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETNo permission neededtenant facehosteditmspremoteIdempotentToken in the path

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Get csat survey

NameInTypeRequiredDescription
tokenpathstringYes
StatusBodyDescription
200application/json, CsatSurveyViewSuccess.
404application/problem+json, ProblemDetailsThis survey link is no longer valid. It may have expired, or the survey may already have been answered.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
expiresAtrequiredstring (date-time)
referencerequiredstring
respondedrequiredboolean
scoreinteger
subjectrequiredstring
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/csat/<token>' \
-H 'Accept: application/json'

POSTNo permission neededtenant facehosteditmspremoteToken in the path

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Submit csat survey

NameInTypeRequiredDescription
tokenpathstringYes

Required, sent as application/json.

FieldTypeDescription
commentrequiredstring
scorerequiredinteger
StatusBodyDescription
200application/json, CsatSurveyViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
404application/problem+json, ProblemDetailsThis survey link is no longer valid. It may have expired, or the survey may already have been answered.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
expiresAtrequiredstring (date-time)
referencerequiredstring
respondedrequiredboolean
scoreinteger
subjectrequiredstring
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/api/v1/csat/<token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data '{
"comment": "string",
"score": 0
}'

GETNo permission neededshared facehosteditmspremoteIdempotentToken in the path

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Get csat survey

NameInTypeRequiredDescription
tokenpathstringYes
StatusBodyDescription
200application/json, CsatSurveyViewSuccess.
404application/problem+json, ProblemDetailsThis survey link is no longer valid. It may have expired, or the survey may already have been answered.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
expiresAtrequiredstring (date-time)
referencerequiredstring
respondedrequiredboolean
scoreinteger
subjectrequiredstring
Terminal window
# This operation is public. It takes no credentials.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/public/csat/<token>' \
-H 'Accept: application/json'

POSTNo permission neededshared facehosteditmspremoteToken in the path

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Submit csat survey

NameInTypeRequiredDescription
tokenpathstringYes

Required, sent as application/json.

FieldTypeDescription
commentrequiredstring
scorerequiredinteger
StatusBodyDescription
200application/json, CsatSurveyViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
404application/problem+json, ProblemDetailsThis survey link is no longer valid. It may have expired, or the survey may already have been answered.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
expiresAtrequiredstring (date-time)
referencerequiredstring
respondedrequiredboolean
scoreinteger
subjectrequiredstring
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/api/v1/public/csat/<token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data '{
"comment": "string",
"score": 0
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.