Working Feedback API v9.0.1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Working Feedback API allows system integrators and clients to directly interact with the Working Feedback service from your own application using a simple REST-based API.
All responses, including error messages, are returned in JSON.
All URLs are relative to our API base domain which is https://api9.workingfeedback.co.uk
Authentication
- HTTP Authentication, scheme: bearer
All API resources are protected and require an access token, which should be passed as a Bearer token in the Authorization header. You can generate a personal access token from your Working Feedback dashboard.
Feedback Requests
At the heart of Working Feedback are feedback requests - requests sent via email or SMS asking the recipient to leave feedback on their experience.
Working Feedback will handle the entire feedback request process from start to finish, meaning that integrators simply need to provide us the data necessary for creating a feedback request.
Create a new feedback request
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/x-www-form-urlencoded"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/request", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /request HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json
const inputBody = '{
"company": 0,
"type": "email",
"name": "string",
"destination": "string",
"platform": "workingfeedback",
"businessName": "string",
"jobTitle": "string",
"source": "string",
"treatmentType": "Unknown",
"dateOfBirth": "string",
"title": "string",
"metadata": "string",
"staffName": "string",
"sendAfter": "string"
}';
const headers = {
'Content-Type':'application/x-www-form-urlencoded',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/request',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/request', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/request',
params: {
}, headers: headers
p JSON.parse(result)
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/request', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
POST /request
Creates a new email or SMS feedback request, queued for sending, with the given inputs.
Body parameter
company: 0
type: email
name: string
destination: string
platform: workingfeedback
businessName: string
jobTitle: string
source: string
treatmentType: Unknown
dateOfBirth: string
title: string
metadata: string
staffName: string
sendAfter: string
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | FeedbackRequestInput | true | none |
Example responses
200 Response
{
"id": 0,
"type": "SMS",
"olderThan28Days": true,
"destination": "string",
"source": "string",
"treatmentType": "Unknown",
"platform": "workingfeedback",
"opened": true,
"sent": true,
"success": true,
"published": true,
"reminders": 0,
"rv_id": 0,
"title": "string",
"author": "string",
"metadata": "string",
"dates": {
"created": "string",
"updated": "string",
"sent": "string",
"reviewSubmitted": "string",
"reviewModerated": "string",
"reviewPublished": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A newly created feedback request that has been accepted for queueing | FeedbackRequest |
401 | Unauthorized | Your access token does not have permission to create feedback requests | ErrorResponse |
418 | I’m a teapot | A request for feedback has already been sent to this recipient within the threshold period (typically 28 days) | ErrorResponse |
422 | Unprocessable Entity | Queuing of the feedback request was rejected by our system. This may be because one or more inputs were invalid, or the person to be contacted was under the age of 18. Full details are returned in the error response | ErrorResponse |
Get an existing feedback request
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/request/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /request/{id} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/request/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/request/{id}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/request/{id}',
params: {
}, headers: headers
p JSON.parse(result)
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/request/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
GET /request/{id}
Retrieves the real-time state of an existing feedback request by ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | integer | true | none |
Example responses
200 Response
{
"id": 0,
"type": "SMS",
"olderThan28Days": true,
"destination": "string",
"source": "string",
"treatmentType": "Unknown",
"platform": "workingfeedback",
"opened": true,
"sent": true,
"success": true,
"published": true,
"reminders": 0,
"rv_id": 0,
"title": "string",
"author": "string",
"metadata": "string",
"dates": {
"created": "string",
"updated": "string",
"sent": "string",
"reviewSubmitted": "string",
"reviewModerated": "string",
"reviewPublished": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The feedback request associated with this id |
FeedbackRequest |
401 | Unauthorized | Your access token does not have permission to get feedback requests | ErrorResponse |
List existing feedback requests
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/request/list/{companyId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /request/list/{companyId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/request/list/{companyId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/request/list/{companyId}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/request/list/{companyId}',
params: {
}, headers: headers
p JSON.parse(result)
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/request/list/{companyId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
GET /request/list/{companyId}
Lists recent feedback requests for any given companyId
.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
companyId | path | integer | true | none |
Example responses
200 Response
{
"requests": [
{
"id": 0,
"type": "SMS",
"olderThan28Days": true,
"destination": "string",
"source": "string",
"treatmentType": "Unknown",
"platform": "workingfeedback",
"opened": true,
"sent": true,
"success": true,
"published": true,
"reminders": 0,
"rv_id": 0,
"title": "string",
"author": "string",
"metadata": "string",
"dates": {
"created": "string",
"updated": "string",
"sent": "string",
"reviewSubmitted": "string",
"reviewModerated": "string",
"reviewPublished": "string"
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A list of recent feedback requests (sorted descending) for the given company ID | Inline |
401 | Unauthorized | Your access token does not have permission to get feedback requests, or you do not have permission to view details for the given company ID | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» requests | [FeedbackRequest] | false | none | none |
»» id | integer | false | none | The unique ID of this feedback request in our system |
»» type | string | false | none | The type of request to either - either SMS or email |
»» olderThan28Days | boolean | false | none | Whether or not this request is older than 28 days |
»» destination | string | false | none | The destination email address or mobile number that this feedback request has or will be sent to. For privacy, this field is obfuscated. After 28 days, [redacted] will be returned |
»» source | string | false | none | A human readable description of where this feedback request originated from. In most cases, this will be the name of the integration that submitted the request |
»» treatmentType | string | false | none | For healthcare industries only - whether or not this feedback request relates to an NHS or Private treatment (or Unknown). N/A is used for non healthcare industries |
»» platform | string | false | none | The platform that will be used for this feedback request. auto is recommended in all cases |
»» opened | boolean | false | none | Whether or not the email or SMS has been opened by the end user |
»» sent | boolean | false | none | Whether or not the feedback request has been sent by the system |
»» success | boolean | false | none | Whether or not this feedback request resulted in an eventual review submitted |
»» published | boolean | false | none | Whether or not the resulting review (if any) has been published by the moderation team |
»» reminders | integer | false | none | The number of follow up reminders sent by Working Feedback for this feedback request, if any |
»» rv_id | integer | false | none | The ID of the review that was collected as a result of this feedback request, if any |
»» title | string | false | none | The title given to this feedback request that will be pre-filled on opening (can be changed by the end user prior to submission) |
»» author | string | false | none | The name of the person that this feedback request was sent to. After 28 days, this will become [redacted] |
»» metadata | string | false | none | If supplied, the JSON metadata object attached to this feedback request in string representation |
»» dates | object | false | none | none |
»»» created | string | false | none | Timestamp when this feedback request was created in our system, in UTC |
»»» updated | string | false | none | Timestamp when this feedback request was last updated by our system, in UTC |
»»» sent | string | false | none | Timestamp when this feedback request was actually sent by our system, in UTC |
»»» reviewSubmitted | string | false | none | Timestamp when this feedback request resulted in a review submission, in UTC |
»»» reviewModerated | string | false | none | Timestamp when the resulting review submission was moderated, in UTC |
»»» reviewPublished | string | false | none | Timestamp when the resulting review submission was published and made live, in UTC |
Enumerated Values
Property | Value |
---|---|
type | SMS |
type | |
treatmentType | Unknown |
treatmentType | N/A |
treatmentType | NHS |
treatmentType | Private |
platform | workingfeedback |
platform | |
platform | auto |
Reviews
Reviews collected by Working Feedback can be managed through this API. This includes - where applicable - reviews from Google and recommendations from Facebook.
Note that reviews from third party platforms are prefixed with T
for easy identification.
Get a specific review
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/review/{reviewId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /review/{reviewId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('/review/{reviewId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/review/{reviewId}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/review/{reviewId}',
params: {
}, headers: headers
p JSON.parse(result)
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/review/{reviewId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
GET /review/{reviewId}
Get the review details (including private additional information) for a given reviewId
. If no access token is passed then only publicly accessible fields are returned.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
reviewId | path | integer | true | none |
Example responses
200 Response
{
"id": "string",
"status": "PUBLISHED",
"author": {
"name": "string",
"job_title": "string",
"business": "string",
"email": "string"
},
"has_reply": true,
"anonymous": true,
"title": "string",
"text": "string",
"rating": {
"score": 0,
"percentage": 0
},
"dates": {
"submitted": "string",
"published": "string",
"rejected": "string",
"investigated": "string",
"restricted": "string",
"escalated": "string",
"verified": "string",
"moderated": "string",
"nhs_submitted": "string",
"nhs_accepted": "string",
"nhs_rejected": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The requested review | Review |
401 | Unauthorized | Your access token does not have permission to read review details, or you do not have permission to view details for the given company ID | ErrorResponse |
Get paginated company reviews
Code samples
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"limit": []string{"0"},
"dateFrom": []string{"string"},
"dateTo": []string{"string"},
"ratings": []string{"string"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/company/{companyId}/reviews/{status}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /company/{companyId}/reviews/{status} HTTP/1.1
Accept: application/json
limit: 0
dateFrom: string
dateTo: string
ratings: string
const headers = {
'Accept':'application/json',
'limit':'0',
'dateFrom':'string',
'dateTo':'string',
'ratings':'string',
'Authorization':'Bearer {access-token}'
};
fetch('/company/{companyId}/reviews/{status}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
import requests
headers = {
'Accept': 'application/json',
'limit': '0',
'dateFrom': 'string',
'dateTo': 'string',
'ratings': 'string',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/company/{companyId}/reviews/{status}', headers = headers)
print(r.json())
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'limit' => '0',
'dateFrom' => 'string',
'dateTo' => 'string',
'ratings' => 'string',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/company/{companyId}/reviews/{status}',
params: {
}, headers: headers
p JSON.parse(result)
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'limit' => '0',
'dateFrom' => 'string',
'dateTo' => 'string',
'ratings' => 'string',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/company/{companyId}/reviews/{status}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
GET /company/{companyId}/reviews/{status}
Get a paginated list of reviews for a given companyId
, filtered by status and optionally dates and/or ratings.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
companyId | path | integer | true | The company ID of which you want to return reviews for |
status | path | string | true | One of published , rejected , or restricted to specify the review status to return |
page | query | integer | false | The page number to return when paginating results (default is 1) |
limit | header | integer | false | The maximum number of results to return per page |
dateFrom | header | string | false | The minimum date (in YYYY-MM-DD format) when specifing a date range |
dateTo | header | string | false | The maximum date (in YYYY-MM-DD format) when specifing a date range |
ratings | header | string | false | A comma separated list of star ratings to return |
Enumerated Values
Parameter | Value |
---|---|
status | published |
status | rejected |
status | restricted |
Example responses
200 Response
{
"reviews": [
{
"id": "string",
"status": "PUBLISHED",
"author": {
"name": "string",
"job_title": "string",
"business": "string",
"email": "string"
},
"has_reply": true,
"anonymous": true,
"title": "string",
"text": "string",
"rating": {
"score": 0,
"percentage": 0
},
"dates": {
"submitted": "string",
"published": "string",
"rejected": "string",
"investigated": "string",
"restricted": "string",
"escalated": "string",
"verified": "string",
"moderated": "string",
"nhs_submitted": "string",
"nhs_accepted": "string",
"nhs_rejected": "string"
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | A paginated list of matching reviews for the given company ID | Inline |
401 | Unauthorized | Your access token does not have permission to read review details, or you do not have permission to view details for the company it relates to | ErrorResponse |
422 | Unprocessable Entity | The criteria specified was invalid. See the returned error for the exact reason(s) | ErrorResponse |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» reviews | [Review] | false | none | none |
»» id | string | false | none | The unique ID of this review in our system |
»» status | string | false | none | The current status of the review |
»» author | object | false | none | none |
»»» name | string | false | none | The name of the author of this review |
»»» job_title | string | false | none | The job description of the author of this review |
»»» business | string | false | none | The business that the author of this review works at |
string | false | none | The obfuscated email address of the authof of this review | |
»» has_reply | boolean | false | none | Whether or not the review has a published reply associated with it |
»» anonymous | boolean | false | none | Whether or not the author is anonymous (name will be blanked if true) |
»» title | string | false | none | The title the author gave this review |
»» text | string | false | none | The text (main body) of the review itself |
»» rating | object | false | none | none |
»»» score | integer | false | none | The star rating given to this review (where 5 is the highest) |
»»» percentage | integer | false | none | The satisfaction rating of this review, expressed as a percentage |
»» dates | object | false | none | none |
»»» submitted | string | false | none | Timestamp when this review was submitted to us, in UTC |
»»» published | string | false | none | Timestamp when this review was published by our system, if applicable, in UTC |
»»» rejected | string | false | none | Timestamp when this review was rejected by our moderators, if applicable, in UTC |
»»» investigated | string | false | none | Timestamp when this review was investigated by our moderators, if applicable, in UTC |
»»» restricted | string | false | none | Timestamp when this review was restricted by our modereators, if applicable, in UTC |
»»» escalated | string | false | none | Timestamp when this review was escalated by the client, if applicable, in UTC |
»»» verified | string | false | none | Timestamp when this review was verified (anti-bot check) by the author, in UTC |
»»» moderated | string | false | none | Timestamp when this review was last moderated by our team, in UTC |
»»» nhs_submitted | string | false | none | Timestamp when this review was submitted to the NHS, if applicable, in UTC |
»»» nhs_accepted | string | false | none | Timestamp when this review was accepted and published by the NHS, if applicable, in UTC |
»»» nhs_rejected | string | false | none | Timestamp when this review was rejected for publication by the NHS, if applicable, in UTC |
Enumerated Values
Property | Value |
---|---|
status | PUBLISHED |
status | REJECTED |
status | RESTRICTED |
status | UNDER_INVESTIGATION |
status | PENDING |
status | VERIFIED |
Schemas
FeedbackRequest
{
"id": 0,
"type": "SMS",
"olderThan28Days": true,
"destination": "string",
"source": "string",
"treatmentType": "Unknown",
"platform": "workingfeedback",
"opened": true,
"sent": true,
"success": true,
"published": true,
"reminders": 0,
"rv_id": 0,
"title": "string",
"author": "string",
"metadata": "string",
"dates": {
"created": "string",
"updated": "string",
"sent": "string",
"reviewSubmitted": "string",
"reviewModerated": "string",
"reviewPublished": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | false | none | The unique ID of this feedback request in our system |
type | string | false | none | The type of request to either - either SMS or email |
olderThan28Days | boolean | false | none | Whether or not this request is older than 28 days |
destination | string | false | none | The destination email address or mobile number that this feedback request has or will be sent to. For privacy, this field is obfuscated. After 28 days, [redacted] will be returned |
source | string | false | none | A human readable description of where this feedback request originated from. In most cases, this will be the name of the integration that submitted the request |
treatmentType | string | false | none | For healthcare industries only - whether or not this feedback request relates to an NHS or Private treatment (or Unknown). N/A is used for non healthcare industries |
platform | string | false | none | The platform that will be used for this feedback request. auto is recommended in all cases |
opened | boolean | false | none | Whether or not the email or SMS has been opened by the end user |
sent | boolean | false | none | Whether or not the feedback request has been sent by the system |
success | boolean | false | none | Whether or not this feedback request resulted in an eventual review submitted |
published | boolean | false | none | Whether or not the resulting review (if any) has been published by the moderation team |
reminders | integer | false | none | The number of follow up reminders sent by Working Feedback for this feedback request, if any |
rv_id | integer | false | none | The ID of the review that was collected as a result of this feedback request, if any |
title | string | false | none | The title given to this feedback request that will be pre-filled on opening (can be changed by the end user prior to submission) |
author | string | false | none | The name of the person that this feedback request was sent to. After 28 days, this will become [redacted] |
metadata | string | false | none | If supplied, the JSON metadata object attached to this feedback request in string representation |
dates | object | false | none | none |
» created | string | false | none | Timestamp when this feedback request was created in our system, in UTC |
» updated | string | false | none | Timestamp when this feedback request was last updated by our system, in UTC |
» sent | string | false | none | Timestamp when this feedback request was actually sent by our system, in UTC |
» reviewSubmitted | string | false | none | Timestamp when this feedback request resulted in a review submission, in UTC |
» reviewModerated | string | false | none | Timestamp when the resulting review submission was moderated, in UTC |
» reviewPublished | string | false | none | Timestamp when the resulting review submission was published and made live, in UTC |
Enumerated Values
Property | Value |
---|---|
type | SMS |
type | |
treatmentType | Unknown |
treatmentType | N/A |
treatmentType | NHS |
treatmentType | Private |
platform | workingfeedback |
platform | |
platform | auto |
FeedbackRequestInput
{
"company": 0,
"type": "email",
"name": "string",
"destination": "string",
"platform": "workingfeedback",
"businessName": "string",
"jobTitle": "string",
"source": "string",
"treatmentType": "Unknown",
"dateOfBirth": "string",
"title": "string",
"metadata": "string",
"staffName": "string",
"sendAfter": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
company | integer | true | none | The company ID that this feedback request should be created for |
type | string | true | none | One of email or sms , to identify the type of feedback request to send |
name | string | true | none | The name of the recipient of this feedback request, as they should be addressed |
destination | string | true | none | The email address or mobile number this feedback request should be sent to |
platform | string | true | none | Recommended to set as auto to let Working Feedback decide the destination platform |
businessName | string | false | none | The name of the business that the recipient works for (e.g My Company Ltd) |
jobTitle | string | false | none | The job title of the person who this feedback request is being sent to |
source | string | false | none | The name of your platform or integration |
treatmentType | string | false | none | For healthcare industries only, the type of treatment that the recipient received |
dateOfBirth | string | false | none | The date of birth (in YYYY-MM-DD format) of the recipient |
title | string | false | none | An optional pre-filled title to be set when the recipient leaves feedback |
metadata | string | false | none | A JSON object containing optional metadata to attach, in string representation |
staffName | string | false | none | The full name of the staff member this feedback relates to, if any |
sendAfter | string | false | none | A timestamp of the earliest date and time this feedback request should be sent (useful for adding delays) |
Enumerated Values
Property | Value |
---|---|
type | |
type | sms |
platform | workingfeedback |
platform | |
platform | auto |
treatmentType | Unknown |
treatmentType | N/A |
treatmentType | NHS |
treatmentType | Private |
Review
{
"id": "string",
"status": "PUBLISHED",
"author": {
"name": "string",
"job_title": "string",
"business": "string",
"email": "string"
},
"has_reply": true,
"anonymous": true,
"title": "string",
"text": "string",
"rating": {
"score": 0,
"percentage": 0
},
"dates": {
"submitted": "string",
"published": "string",
"rejected": "string",
"investigated": "string",
"restricted": "string",
"escalated": "string",
"verified": "string",
"moderated": "string",
"nhs_submitted": "string",
"nhs_accepted": "string",
"nhs_rejected": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | The unique ID of this review in our system |
status | string | false | none | The current status of the review |
author | object | false | none | none |
» name | string | false | none | The name of the author of this review |
» job_title | string | false | none | The job description of the author of this review |
» business | string | false | none | The business that the author of this review works at |
string | false | none | The obfuscated email address of the authof of this review | |
has_reply | boolean | false | none | Whether or not the review has a published reply associated with it |
anonymous | boolean | false | none | Whether or not the author is anonymous (name will be blanked if true) |
title | string | false | none | The title the author gave this review |
text | string | false | none | The text (main body) of the review itself |
rating | object | false | none | none |
» score | integer | false | none | The star rating given to this review (where 5 is the highest) |
» percentage | integer | false | none | The satisfaction rating of this review, expressed as a percentage |
dates | object | false | none | none |
» submitted | string | false | none | Timestamp when this review was submitted to us, in UTC |
» published | string | false | none | Timestamp when this review was published by our system, if applicable, in UTC |
» rejected | string | false | none | Timestamp when this review was rejected by our moderators, if applicable, in UTC |
» investigated | string | false | none | Timestamp when this review was investigated by our moderators, if applicable, in UTC |
» restricted | string | false | none | Timestamp when this review was restricted by our modereators, if applicable, in UTC |
» escalated | string | false | none | Timestamp when this review was escalated by the client, if applicable, in UTC |
» verified | string | false | none | Timestamp when this review was verified (anti-bot check) by the author, in UTC |
» moderated | string | false | none | Timestamp when this review was last moderated by our team, in UTC |
» nhs_submitted | string | false | none | Timestamp when this review was submitted to the NHS, if applicable, in UTC |
» nhs_accepted | string | false | none | Timestamp when this review was accepted and published by the NHS, if applicable, in UTC |
» nhs_rejected | string | false | none | Timestamp when this review was rejected for publication by the NHS, if applicable, in UTC |
Enumerated Values
Property | Value |
---|---|
status | PUBLISHED |
status | REJECTED |
status | RESTRICTED |
status | UNDER_INVESTIGATION |
status | PENDING |
status | VERIFIED |
ErrorResponse
{
"message": "string",
"errors": {
"key": "string",
"value": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | true | none | A human readable description of the top-level error message |
errors | KeyValue | false | none | An array of individual key-value pairs containing errors that have occurred. This may be 1 or more errors per request |
KeyValue
{
"key": "string",
"value": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
key | string | false | none | none |
value | string | false | none | none |