Skip to content

Create Case Appointment ​

This API endpoint enables you to create new appointments for a case.

Input ​


Endpoint ​

Post /cases/{caseId}/appointments


HTTP request headers ​

Content-Type  string

Setting to application/json is required.

Authorization  string

This is the token you fetched e.g. Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJS…


Path parameters ​

caseID  string - Required

The unique case ID for which you intend to generate a new appointment.


Body parameters ​

adviser_email  string - Required

  • This adviser will be designated for the appointment.
  • It should be a valid email associated with an adviser within your company.

start_time  string - Required

Accepted format YYYY-MM-DD HH:mm:ss - e.g. 2024-07-20 09:00:00

end_time  string - Required

  • Accepted format YYYY-MM-DD HH:mm:ss - e.g. 2024-07-20 10:00:00
  • Should be a date and time that occurs after or is later than the start time.

email_confirmation  boolean

If set to true, a confirmation email for the appointment booking will be sent to the customer corresponding to the email provided in the email_recipient field.

email_notification  boolean

If set to true, a reminder email for the appointment will be sent to the customer associated with the email provided in the email_recipient field.

email_recipient  string

Email corresponding to a customer within the provided caseID.

sms_confirmation  boolean

If set to true, a confirmation SMS for the appointment booking will be sent to the customer associated with the phone number provided in the sms_recipient field.

sms_notification  boolean

If set to true, a reminder SMS for the appointment will be sent to the customer associated with the phone number provided in the sms_recipient field.

sms_recipient  string

The phone number to which the confirmation/notification via SMS will be sent.

notes  string

location  string

This will be added to the confirmation/reminder to inform them of the appointment location.

zoom_meeting  boolean

When set to true, it will generate a Zoom meeting link, assuming that the advisor associated with the appointment has connected their Zoom account through the WillSuite 3rd Party Integrations section.

Output ​


Http status codes ​
Status CodeDescription
200OK
400Bad Request
404Resource not found
500Internal Server Error

Request example

bash
curl  -X POST \
  'https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61/appointments' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...' \
  --data-raw '{
   "adviser_email": "test@willsuite.co.uk",
   "start_time": "2024-01-12 09:00:00",
   "end_time": "2024-01-12 10:00:00",
   "email_recipient": "test2@willsuite.co.uk"
}'
php
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{
   "adviser_email": "test@willsuite.co.uk",
   "start_time": "2024-01-12 09:00:00",
   "end_time": "2024-01-12 10:00:00",
   "email_recipient": "test2@willsuite.co.uk"
} ');


$request->setRequestUrl('https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61/appointments');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders([
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...'
]);

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();

Response

json
{
  "notes": null,
  "start_time": "2024-01-12T09:00:00.000000Z",
  "end_time": "2024-01-12 10:00:00",
  "sms_recipient": null,
  "sms_confirmation": null,
  "sms_notification": null,
  "sms_day_before": 0,
  "email_recipient": "test@willsuite.co.uk",
  "email_confirmation": null,
  "email_notification": null,
  "email_day_before": 0,
  "location": null,
  "customer_case_id": "d57bc3b7-4f44-4846-9741-985db9af9b61",
  "id": "cd10afb8-5663-4712-a945-90421929cebe",
  "updated_at": "2024-01-12T14:43:11.000000Z",
  "created_at": "2024-01-12T14:43:11.000000Z",
  "adviser_email": "test2@willsuite.co.uk"
}
json
{
  "type": "object",
  "properties": {
    "notes": {
      "type": ["string", "null"]
    },
    "start_time": {
      "type": "string",
      "format": "date-time"
    },
    "end_time": {
      "type": "string",
      "format": "date-time"
    },
    "sms_recipient": {
      "type": ["string", "null"]
    },
    "sms_confirmation": {
      "type": ["string", "null"]
    },
    "sms_notification": {
      "type": ["string", "null"]
    },
    "sms_day_before": {
      "type": "integer"
    },
    "email_recipient": {
      "type": ["string", "null"]
    },
    "email_confirmation": {
      "type": ["string", "null"]
    },
    "email_notification": {
      "type": ["string", "null"]
    },
    "email_day_before": {
      "type": "integer"
    },
    "location": {
      "type": ["string", "null"]
    },
    "customer_case_id": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "adviser_email": {
      "type": "string"
    }
  },
  "required": [
    "start_time",
    "end_time",
    "email_recipient",
    "customer_case_id",
    "id",
    "updated_at",
    "created_at",
    "adviser_email"
  ]
}

Update Case Appointment ​

This API endpoint enables you to update existing appointment for a case.

Input ​


Endpoint ​

Post /cases/{caseId}/appointments/{appointmentID}


HTTP request headers ​

Content-Type  string

Setting to application/json is required.

Authorization  string

This is the token you fetched e.g. Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJS…


Path parameters ​

caseID  string - Required

The unique case ID for which you intend to generate a new appointment.

appointmentID  string - Required

The unique appointment ID for which you intend to update.


Body parameters ​

start_time  string

Accepted format YYYY-MM-DD HH:mm:ss - e.g. 2024-07-20 09:00:00

end_time  string

  • Accepted format YYYY-MM-DD HH:mm:ss - e.g. 2024-07-20 10:00:00
  • Should be a date and time that occurs after or is later than the start time.

email_confirmation  boolean

If set to true, a confirmation email for the appointment booking will be sent to the customer corresponding to the email provided in the email_recipient field.

email_notification  boolean

If set to true, a reminder email for the appointment will be sent to the customer associated with the email provided in the email_recipient field.

email_recipient  string

Email corresponding to a customer within the provided caseID.

sms_confirmation  boolean

If set to true, a confirmation SMS for the appointment booking will be sent to the customer associated with the phone number provided in the sms_recipient field.

sms_notification  boolean

If set to true, a reminder SMS for the appointment will be sent to the customer associated with the phone number provided in the sms_recipient field.

sms_recipient  string

The phone number to which the confirmation/notification via SMS will be sent.

notes  string

location  string

This will be added to the confirmation/reminder to inform them of the appointment location.

Output ​


Http status codes ​
Status CodeDescription
200OK
400Bad Request
404Resource not found
500Internal Server Error

Request example

bash
curl  -X PATCH \
  'https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61/appointments/cd10afb8-5663-4712-a945-90421929cebe' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...' \
   --data-raw '{
   "start_time": "2024-01-12 11:00:00",
   "end_time": "2024-01-12 12:00:00",
   "email_recipient": "test@willsuite.co.uk"
} '
php
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{
   "start_time": "2024-01-12 11:00:00",
   "end_time": "2024-01-12 12:00:00",
   "email_recipient": "test@willsuite.co.uk"
} ');


$request->setRequestUrl('https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61/appointments/cd10afb8-5663-4712-a945-90421929cebe');
$request->setRequestMethod('PATCH');
$request->setBody($body);

$request->setHeaders([
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...'
]);

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();

Response

json
{
  "id": "cd10afb8-5663-4712-a945-90421929cebe",
  "customer_case_id": "d57bc3b7-4f44-4846-9741-985db9af9b61",
  "type": null,
  "notes": null,
  "start_time": "2024-01-12T11:00:00.000000Z",
  "sms_recipient": null,
  "sms_notification": null,
  "sms_day_before": 0,
  "sms_confirmation": null,
  "attended": 0,
  "cancelled": 0,
  "deleted_at": null,
  "created_at": "2024-01-12T14:43:11.000000Z",
  "updated_at": "2024-01-12T14:59:28.000000Z",
  "location": null,
  "email_confirmation": null,
  "email_notification": null,
  "email_day_before": 0,
  "email_recipient": "test@willsuite.co.uk",
  "end_time": "2024-01-12 12:00:00",
  "zoom_id": null,
  "join_url": null
}
json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "customer_case_id": {
      "type": "string"
    },
    "type": {
      "type": ["string", "null"]
    },
    "notes": {
      "type": ["string", "null"]
    },
    "start_time": {
      "type": "string",
      "format": "date-time"
    },
    "sms_recipient": {
      "type": ["string", "null"]
    },
    "sms_notification": {
      "type": ["string", "null"]
    },
    "sms_day_before": {
      "type": "integer"
    },
    "sms_confirmation": {
      "type": ["string", "null"]
    },
    "attended": {
      "type": "integer"
    },
    "cancelled": {
      "type": "integer"
    },
    "deleted_at": {
      "type": ["string", "null"],
      "format": "date-time"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    },
    "location": {
      "type": ["string", "null"]
    },
    "email_confirmation": {
      "type": ["string", "null"]
    },
    "email_notification": {
      "type": ["string", "null"]
    },
    "email_day_before": {
      "type": "integer"
    },
    "email_recipient": {
      "type": "string"
    },
    "end_time": {
      "type": "string"
    },
    "zoom_id": {
      "type": ["string", "null"]
    },
    "join_url": {
      "type": ["string", "null"]
    }
  },
  "required": [
    "id",
    "customer_case_id",
    "start_time",
    "attended",
    "cancelled",
    "created_at",
    "updated_at",
    "email_recipient",
    "end_time"
  ]
}

Delete Case Appointment ​

This API endpoint enables you to delete existing appointment for a case.

Input ​


Endpoint ​

Post /cases/{caseId}/appointments/{appointmentID}


HTTP request headers ​

Content-Type  string

Setting to application/json is required.

Authorization  string

This is the token you fetched e.g. Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJS…


Path parameters ​

caseID  string - Required

The unique case ID for which you intend to generate a new appointment.

appointmentID  string - Required

The unique appointment ID for which you intend to update.

Output ​


Http status codes ​
Status CodeDescription
200OK
400Bad Request
404Resource not found
500Internal Server Error

Request example

bash
curl  -X DELETE \
  'https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61/appointments/cd10afb8-5663-4712-a945-90421929cebe' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...'
php
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61/appointments/cd10afb8-5663-4712-a945-90421929cebe');
$request->setRequestMethod('DELETE');

$request->setHeaders([
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...'
]);

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();

Response

Status: 200