developer.myworkingfeedback.com Open in urlscan Pro
172.67.136.232  Public Scan

Submitted URL: https://api.workingfeedback.cloud/
Effective URL: https://developer.myworkingfeedback.com/
Submission: On November 05 via automatic, source certstream-suspicious — Scanned from GB

Form analysis 0 forms found in the DOM

Text Content

NAV
Go HTTP JavaScript Node.JS Python Ruby PHP
 * Working Feedback API v9.0.1
 * Authentication
 * Feedback Requests
   * Create a new feedback request
   * Get an existing feedback request
   * List existing feedback requests
 * Reviews
   * Get a specific review
   * Get paginated company reviews
 * Schemas
   * FeedbackRequest
   * FeedbackRequestInput
   * Review
   * ErrorResponse
   * KeyValue


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

Copy to Clipboardpackage 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)
    // ...
}


Copy to ClipboardPOST /request HTTP/1.1

Content-Type: application/x-www-form-urlencoded
Accept: application/json


Copy to Clipboardconst 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);
});


Copy to Clipboardimport 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())


Copy to Clipboardrequire '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)


Copy to Clipboard<?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

Copy to Clipboardcompany: 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

Copy to Clipboard{
  "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

To perform this operation, you must be authenticated by means of one of the
following methods: Bearer


GET AN EXISTING FEEDBACK REQUEST

> Code samples

Copy to Clipboardpackage 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)
    // ...
}


Copy to ClipboardGET /request/{id} HTTP/1.1

Accept: application/json


Copy to Clipboard
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);
});


Copy to Clipboardimport requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/request/{id}', headers = headers)

print(r.json())


Copy to Clipboardrequire 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/request/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)


Copy to Clipboard<?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

Copy to Clipboard{
  "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

To perform this operation, you must be authenticated by means of one of the
following methods: Bearer


LIST EXISTING FEEDBACK REQUESTS

> Code samples

Copy to Clipboardpackage 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)
    // ...
}


Copy to ClipboardGET /request/list/{companyId} HTTP/1.1

Accept: application/json


Copy to Clipboard
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);
});


Copy to Clipboardimport requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/request/list/{companyId}', headers = headers)

print(r.json())


Copy to Clipboardrequire '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)


Copy to Clipboard<?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

Copy to Clipboard{
  "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 email treatmentType Unknown treatmentType N/A
treatmentType NHS treatmentType Private platform workingfeedback platform google
platform auto

To perform this operation, you must be authenticated by means of one of the
following methods: Bearer


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

Copy to Clipboardpackage 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)
    // ...
}


Copy to ClipboardGET /review/{reviewId} HTTP/1.1

Accept: application/json


Copy to Clipboard
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);
});


Copy to Clipboardimport requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/review/{reviewId}', headers = headers)

print(r.json())


Copy to Clipboardrequire 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/review/{reviewId}',
  params: {
  }, headers: headers

p JSON.parse(result)


Copy to Clipboard<?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

Copy to Clipboard{
  "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

To perform this operation, you must be authenticated by means of one of the
following methods: Bearer


GET PAGINATED COMPANY REVIEWS

> Code samples

Copy to Clipboardpackage 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)
    // ...
}


Copy to ClipboardGET /company/{companyId}/reviews/{status} HTTP/1.1

Accept: application/json
limit: 0
dateFrom: string
dateTo: string
ratings: string


Copy to Clipboard
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);
});


Copy to Clipboardimport 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())


Copy to Clipboardrequire '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)


Copy to Clipboard<?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

Copy to Clipboard{
  "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
»»» email 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

To perform this operation, you must be authenticated by means of one of the
following methods: Bearer


SCHEMAS


FEEDBACKREQUEST



Copy to Clipboard{
  "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 email treatmentType Unknown treatmentType N/A
treatmentType NHS treatmentType Private platform workingfeedback platform google
platform auto


FEEDBACKREQUESTINPUT



Copy to Clipboard{
  "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 email type sms platform workingfeedback platform google
platform auto treatmentType Unknown treatmentType N/A treatmentType NHS
treatmentType Private


REVIEW



Copy to Clipboard{
  "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 » email 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



Copy to Clipboard{
  "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



Copy to Clipboard{
  "key": "string",
  "value": "string"
}



PROPERTIES

Name Type Required Restrictions Description key string false none none value
string false none none

Go HTTP JavaScript Node.JS Python Ruby PHP