Skip to content

Cases

A case would include detailed information about the client for whom the will is being created or managed. This may include personal details, family relationships, and other relevant information.

Get Cases

This API endpoint provides functionality for obtaining a paginated list encompassing all cases that have been established within your WillSuite account.

Input


Endpoint

Get /cases


HTTP request headers

Content-Type  string

Setting to application/json is required.

Authorization  string

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


Query parameters

ref  string

If included in the URL as a query parameter, it will exclusively filter cases based on whether the reference corresponds to the specified value.

postcode  string

If included in the URL as a query parameter, it selectively filters cases to include only those where the customer's postcode in the respective case aligns with the given value.

updatedAfter  string

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

If included, it selectively filters cases which have been updated at or after the provided date.

page  integer

Since the default return is limited to 10 records, you can utilize this parameter to retrieve additional records in multiples of 10.

perPage  integer

To increase the number of records returned, you can adjust this parameter to your desired value. The default is 10, and the maximum allowed is 100.

Output


Http status codes
Status CodeDescription
200OK
400Bad Request
500Internal Server Error

Request example

bash
curl  -X GET \
  'https://client.willsuite.co.uk/engine/api/cases/' \
  --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/');
$request->setRequestMethod('GET');
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...'
]);

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

echo $response->getBody();

Response

json
{
  "current_page": 1,
  "data": [
    {
      "id": "00aee3e5-e67a-49ab-9823-a7cf7490f2cf",
      "ref": "test-001",
      "first_names": "Jhon",
      "last_names": "Doe",
      "full_names": "Mr Jhon Doe",
      "email": "test@willsuite.co.uk",
      "postcode": "",
      "meta": [],
      "notes": null,
      "is_active": 1,
      "customers": [
        {
          "id": "101fc7f4-72cc-4b00-add2-f052c269ab16",
          "title": "Miss",
          "first_names": "Sally",
          "middle_names": null,
          "last_name": "Doe",
          "date_of_birth": null,
          "gender": "female",
          "tel_1": null,
          "tel_2": null,
          "email": null,
          "occupation": null,
          "marital_status": null,
          "address_1": null,
          "address_2": null,
          "address_3": null,
          "postcode": null,
          "customer_case_id": "00aee3e5-e67a-49ab-9823-a7cf7490f2cf"
        },
        {
          "id": "48b698c1-8234-43ba-b216-9ce8b08cc840",
          "title": "Mr",
          "first_names": "Jhon",
          "middle_names": null,
          "last_name": "Doe",
          "date_of_birth": null,
          "gender": "male",
          "tel_1": null,
          "tel_2": null,
          "email": "test@willsuite.co.uk",
          "occupation": null,
          "marital_status": null,
          "address_1": null,
          "address_2": null,
          "address_3": null,
          "postcode": null,
          "customer_case_id": "00aee3e5-e67a-49ab-9823-a7cf7490f2cf",
          "is_deceased": 0
        }
      ]
    }
  ],
  "first_page_url": "http://willsuite-v2.test/engine/api/cases?page=1",
  "from": 1,
  "last_page": 160,
  "last_page_url": "http://willsuite-v2.test/engine/api/cases?page=160",
  "links": [
    {
      "url": null,
      "label": "&laquo; Previous",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=1",
      "label": "1",
      "active": true
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=2",
      "label": "2",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=3",
      "label": "3",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=4",
      "label": "4",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=5",
      "label": "5",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=6",
      "label": "6",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=7",
      "label": "7",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=8",
      "label": "8",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=9",
      "label": "9",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=10",
      "label": "10",
      "active": false
    },
    {
      "url": null,
      "label": "...",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=159",
      "label": "159",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=160",
      "label": "160",
      "active": false
    },
    {
      "url": "http://willsuite-v2.test/engine/api/cases?page=2",
      "label": "Next &raquo;",
      "active": false
    }
  ],
  "next_page_url": "http://willsuite-v2.test/engine/api/cases?page=2",
  "path": "http://willsuite-v2.test/engine/api/cases",
  "per_page": 10,
  "prev_page_url": null,
  "to": 10,
  "total": 1600
}
json
{
  "type": "object",
  "properties": {
    "current_page": {
      "type": "integer"
    },
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "first_names": {
            "type": "string"
          },
          "last_names": {
            "type": "string"
          },
          "full_names": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "meta": {
            "type": "array",
            "items": {}
          },
          "notes": {
            "type": ["string", "null"]
          },
          "is_active": {
            "type": "boolean"
          },
          "customers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "first_names": {
                  "type": "string"
                },
                "middle_names": {
                  "type": ["string", "null"]
                },
                "last_name": {
                  "type": "string"
                },
                "date_of_birth": {
                  "type": ["string", "null"]
                },
                "gender": {
                  "type": "string"
                },
                "tel_1": {
                  "type": ["string", "null"]
                },
                "tel_2": {
                  "type": ["string", "null"]
                },
                "email": {
                  "type": ["string", "null"]
                },
                "occupation": {
                  "type": ["string", "null"]
                },
                "marital_status": {
                  "type": ["string", "null"]
                },
                "address_1": {
                  "type": ["string", "null"]
                },
                "address_2": {
                  "type": ["string", "null"]
                },
                "address_3": {
                  "type": ["string", "null"]
                },
                "postcode": {
                  "type": ["string", "null"]
                },
                "customer_case_id": {
                  "type": "string"
                },
                "is_deceased" : {
                  "type": "boolean"
                }
              },
              "required": ["id", "title", "first_names", "last_name", "gender", "customer_case_id","is_deceased"]
            }
          }
        },
        "required": [
          "id",
          "ref",
          "first_names",
          "last_names",
          "full_names",
          "email",
          "postcode",
          "meta",
          "notes",
          "is_active",
          "customers"
        ]
      }
    },
    "first_page_url": {
      "type": "string"
    },
    "from": {
      "type": "integer"
    },
    "last_page": {
      "type": "integer"
    },
    "last_page_url": {
      "type": "string"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": ["string", "null"]
          },
          "label": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          }
        }
      }
    },
    "next_page_url": {
      "type": ["string", "null"]
    },
    "path": {
      "type": "string"
    },
    "per_page": {
      "type": "integer"
    },
    "prev_page_url": {
      "type": ["string", "null"]
    },
    "to": {
      "type": "integer"
    },
    "total": {
      "type": "integer"
    }
  },
  "required": [
    "current_page",
    "data",
    "first_page_url",
    "from",
    "last_page",
    "last_page_url",
    "links",
    "next_page_url",
    "path",
    "per_page",
    "prev_page_url",
    "to",
    "total"
  ]
}

Get Case

This API endpoint enables you to fetch a customer case using its unique identifier.

Input


Endpoint

Get /cases/{caseId}


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 you wish to retrieve.

Output


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

Request example

bash
curl  -X GET \
  'https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61' \
  --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');
$request->setRequestMethod('GET');
$request->setHeaders([
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...'
]);

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

echo $response->getBody();

Response

json
{
  "id": "d57bc3b7-4f44-4846-9741-985db9af9b61",
  "ref": "tracked-edit-fixes",
  "first_names": "John & Jenny",
  "last_names": "Doe",
  "email": "",
  "postcode": "",
  "notes": "Updated via the API",
  "is_active": 1,
  "meta": [],
  "full_names": "Mr John Doe & Mrs Jenny Doe",
  "customers": [
    {
      "id": "012ad872-39d1-4414-8c32-afd4c20bd091",
      "title": "Mr",
      "first_names": "John",
      "middle_names": null,
      "last_name": "Doe",
      "date_of_birth": null,
      "gender": "male",
      "tel_1": null,
      "tel_2": null,
      "email": null,
      "occupation": null,
      "marital_status": "married",
      "address_1": null,
      "address_2": null,
      "address_3": null,
      "postcode": null,
      "customer_case_id": "d57bc3b7-4f44-4846-9741-985db9af9b61",
      "is_deceased": 0
    }
  ]
}
json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "ref": {
      "type": "string"
    },
    "first_names": {
      "type": "string"
    },
    "last_names": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "postcode": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "is_active": {
      "type": "boolean"
    },
    "meta": {
      "type": "array",
      "items": {}
    },
    "full_names": {
      "type": "string"
    },
    "customers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "first_names": {
            "type": "string"
          },
          "middle_names": {
            "type": ["string", "null"]
          },
          "last_name": {
            "type": "string"
          },
          "date_of_birth": {
            "type": ["string", "null"]
          },
          "gender": {
            "type": "string"
          },
          "tel_1": {
            "type": ["string", "null"]
          },
          "tel_2": {
            "type": ["string", "null"]
          },
          "email": {
            "type": ["string", "null"]
          },
          "occupation": {
            "type": ["string", "null"]
          },
          "marital_status": {
            "type": "string"
          },
          "address_1": {
            "type": ["string", "null"]
          },
          "address_2": {
            "type": ["string", "null"]
          },
          "address_3": {
            "type": ["string", "null"]
          },
          "postcode": {
            "type": ["string", "null"]
          },
          "customer_case_id": {
            "type": "string"
          },
          "is_deceased" : {
            "type": "boolean"
          }
        },
        "required": ["id", "title", "first_names", "last_name", "gender", "marital_status", "customer_case_id", "is_deceased"]
      }
    }
  },
  "required": [
    "id",
    "ref",
    "first_names",
    "last_names",
    "email",
    "postcode",
    "notes",
    "is_active",
    "meta",
    "full_names",
    "customers"
  ]
}

Create Case

This API endpoint enables you to create a new case with ref, notes, customers, address book entries, and any CRM fields associated with the case.

Input


Endpoint

Post /cases/create


HTTP request headers

Content-Type  string

Setting to application/json is required.

Authorization  string

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


Body parameters

ref  string

Unique ref for this new case, this will be auto generated if left blank.

email  string

Email linked to the API token.

adviser_email  string

Email of a WillSuite user to assign the case, if invalid or empty then user associated with email will be used.

WARNING

Advisor email must match an email on the account, otherwise case creation will fail.

notes  string

meta  object

The Custom CRM fields to populate on the case.

Details

Example of meta


Note: the key is the CRM field ID.

json
{
  "c19461c0-78fc-4ff3-b038-adaf204c2082": "Prospect"
}

customers  array of objects

Customers to add to the case

Details

Properties of customers


title  string - Required

first_names  string - Required

middle_names  string

last_names  string - Required

date_of_birth  string

Accepted format DD/MM/YYYY - e.g. 20/07/1990

gender  string

marital_status  string

Could be one of the following (case-sensitive):

  • married
  • civil
  • cohabiting
  • widowed
  • divorced
  • dissolved
  • separated
  • single
  • other

tel_1  string

Max length 25 characters

tel_2  string

Max length 25 characters

address_1  string

Max length 100 characters

address_2  string

Max length 100 characters

address_3  string

Max length 100 characters

postcode  string

Max length 100 characters

occupation  string

Max length 150 characters

preferred_name  string

Max length 150 characters

email  string


Example of customers

json
[
  {
    "title": "Mr",
    "first_names": "Steve",
    "middle_names": "Danial",
    "last_name": "Smith",
    "date_of_birth": "20/06/1990",
    "gender": "male",
    "marital_status": "single",
    "address_1": "607 Kenton Rd",
    "address_2": "Kenton",
    "postcode": "HA3 9RT"
  }
]

address_book  array of objects

Address book entities to add to the case

Details

Properties of address_book


title  string

first_names  string

middle_names  string

last_name  string

known_as  string

tel_1  string

tel_2  string

email  string

gender  string

dob  string

Accepted format DD/MM/YYYY - e.g. 20/07/1990

relationship  object

Example of relationship


Note: the key is the customerID of case editing.

json
{
  "012ad872-39d1-4414-8c32-afd4c20bd091": "son"
}

occupation  string

preferred_name  string

alias  string

address_1  string

address_2  string

address_3  string

postcode  string

entity_id  string

Can either be person or organisation

For entity type organisation only

name  string

reg_no  string

is_charity  string

Can either be yes or no


Example of address_book

json
[
  {
    "name": "WillSuite Ltd",
    "reg_no": "01234567",
    "entity_id": "organisation",
    "is_charity": "yes",
    "address_1": "33A The Square",
    "address_2": "Beeston",
    "address_3": "Nottingham",
    "postcode": "NG9 2JJ",
    "dob": "20/06/1990"
  },
  {
    "title": "Mrs",
    "first_names": "Jannet",
    "last_name": "Doe",
    "address_1": "33A The Square",
    "address_2": "Beeston",
    "address_3": "Nottingham",
    "postcode": "NG9 2JJ"
  }
]

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/create' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...' \
  --data-raw '{
  "ref": "FSFOOS",
  "email": "test@willsuite.co.uk",
  "adviser_email": "adviser@willsuite.co.uk",
  "notes": "New data, check with client",
  "meta": {
    "c5d82b0b-5cb3-46f7-841f-788fdff2ec8a": "NO"
  },
  "customers": [
    {
      "title": "Mr",
      "first_names": "Steve",
      "middle_names": "Danial",
      "last_name": "Smith",
      "date_of_birth": "20/06/1990",
      "gender": "male",
      "marital_status": "single",
      "address_1": "607 Kenton Rd",
      "address_2": "Kenton",
      "postcode": "HA3 9RT"
    }
  ],
  "address_book": [
     {
      "title": "Mrs",
      "first_names": "Jannet",
      "last_name": "Doe",
      "address_1": "33A The Square",
      "address_2": "Beeston",
      "address_3": "Nottingham",
      "postcode": "NG9 2JJ"
    }
  ]
}'
php
<?php

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

$body = new http\Message\Body;
$body->append('{
  "ref": "FSFOOS",
  "email": "test@willsuite.co.uk",
  "adviser_email": "adviser@willsuite.co.uk",
  "notes": "New data, check with client",
  "meta": {
    "c5d82b0b-5cb3-46f7-841f-788fdff2ec8a": "NO"
  },
  "customers": [
    {
      "title": "Mr",
      "first_names": "Steve",
      "middle_names": "Danial",
      "last_name": "Smith",
      "date_of_birth": "20/06/1990",
      "gender": "male",
      "marital_status": "single",
      "address_1": "607 Kenton Rd",
      "address_2": "Kenton",
      "postcode": "HA3 9RT"
    }
  ],
  "address_book": [
    {
      "title": "Mrs",
      "first_names": "Jannet",
      "last_name": "Doe",
      "address_1": "33A The Square",
      "address_2": "Beeston",
      "address_3": "Nottingham",
      "postcode": "NG9 2JJ"
    }
  ]
}');

$request->setRequestUrl('https://client.willsuite.co.uk/engine/api/cases/create');
$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
{
  "id": "460e9b05-84ac-485d-a534-4ab454e7a81f",
  "ref": "FSFOOS",
  "first_names": "Steve",
  "last_names": "Smith",
  "full_names": "Mr Steve Smith",
  "email": "",
  "postcode": "HA3 9RT",
  "meta": {
    "c5d82b0b-5cb3-46f7-841f-788fdff2ec8a": "NO"
  },
  "notes": "New data, check with client"
}
json
{
  "type": "object",
  "properties": {
    "id": {"type": "string"},
    "ref": {"type": "string"},
    "first_names": {"type": "string"},
    "last_names": {"type": "string"},
    "full_names": {"type": "string"},
    "email": {"type": "string"},
    "postcode": {"type": "string"},
    "meta": {
      "type": "object",
      "properties": {
        "crm_field_uuid": {"type": "string"}
      },
      "additionalProperties": false,
    },
    "notes": {"type": "string"}
  },
  "required": ["id", "ref", "first_names", "last_names", "full_names", "postcode", "meta", "notes"]
}

Update Case

This API endpoint enables you to modify the case reference, notes, and any CRM fields associated with the case.

Input


Endpoint

Patch /cases/{caseId}


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 you wish to retrieve.


Body parameters

ref  string

notes  string

meta  object

The Custom CRM fields to populate on the case.

Details

Example of meta


Note: the key is the CRM field ID.

json
{
  "c19461c0-78fc-4ff3-b038-adaf204c2082": "Prospect"
}

customers  array of objects

New customers to add to the case

WARNING

Adding the same customer twice is possible if caution is not exercised.

Details

Properties of customers


title  string - Required

first_names  string - Required

middle_names  string

last_names  string - Required

date_of_birth  string

gender  string

marital_status  string

Could be one of the following (case-sensitive):

  • married
  • civil
  • cohabiting
  • widowed
  • divorced
  • dissolved
  • separated
  • single
  • other

tel_1  string

Max length 25 characters

tel_2  string

Max length 25 characters

address_1  string

Max length 100 characters

address_2  string

Max length 100 characters

address_3  string

Max length 100 characters

postcode  string

Max length 100 characters

occupation  string

Max length 150 characters

preferred_name  string

Max length 150 characters

email  string


Example of customers

json
[
  {
    "title": "Mr",
    "first_names": "Steve",
    "middle_names": "Danial",
    "last_name": "Smith",
    "gender": "male",
    "marital_status": "single",
    "address_1": "607 Kenton Rd",
    "address_2": "Kenton",
    "postcode": "HA3 9RT"
  }
]

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' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...' \
  --data-raw '{
  "ref": "FSFOOS",
  "notes": "New data, check with client",
  "meta": {
    "c5d82b0b-5cb3-46f7-841f-788fdff2ec8a": "NO"
  },
  "customers": [
    {
      "title": "Mr",
      "first_names": "Steve",
      "middle_names": "Danial",
      "last_name": "Smith",
      "gender": "male",
      "marital_status": "single",
      "address_1": "607 Kenton Rd",
      "address_2": "Kenton",
      "postcode": "HA3 9RT"
    }
  ]
}'
php
<?php

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

$body = new http\Message\Body;
$body->append('{
  "ref": "FSFOOS",
  "notes": "New data, check with client",
  "meta": {
    "c5d82b0b-5cb3-46f7-841f-788fdff2ec8a": "NO"
  },
  "customers": [
    {
      "title": "Mr",
      "first_names": "Steve",
      "middle_names": "Danial",
      "last_name": "Smith",
      "gender": "male",
      "marital_status": "single",
      "address_1": "607 Kenton Rd",
      "address_2": "Kenton",
      "postcode": "HA3 9RT"
    }
  ]
}');

$request->setRequestUrl('https://client.willsuite.co.uk/engine/api/cases/d57bc3b7-4f44-4846-9741-985db9af9b61');
$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": "d57bc3b7-4f44-4846-9741-985db9af9b61",
  "ref": "FSFOOS",
  "first_names": "John & Jenny",
  "last_names": "Doe",
  "email": "",
  "postcode": "",
  "notes": "New data, check with client",
  "meta": {
    "c5d82b0b-5cb3-46f7-841f-788fdff2ec8a": "NO"
  },
  "full_names": "Mr John Doe & Mrs Jenny Doe",
  "customers": [
    {
      "id": "012ad872-39d1-4414-8c32-afd4c20bd091",
      "title": "Mr",
      "first_names": "John",
      "middle_names": null,
      "last_name": "Doe",
      "date_of_birth": null,
      "gender": "male",
      "tel_1": null,
      "tel_2": null,
      "email": null,
      "occupation": null,
      "marital_status": "married",
      "address_1": null,
      "address_2": null,
      "address_3": null,
      "postcode": null,
      "customer_case_id": "d57bc3b7-4f44-4846-9741-985db9af9b61"
    },
    {
      "id": "b61fabf7-15b0-488b-81ce-45961df0c3c2",
      "title": "Mr",
      "first_names": "Steve",
      "middle_names": null,
      "last_name": "Smith",
      "date_of_birth": null,
      "gender": null,
      "tel_1": null,
      "tel_2": null,
      "email": null,
      "occupation": null,
      "marital_status": null,
      "address_1": "607 Kenton Rd",
      "address_2": "Kenton",
      "address_3": null,
      "postcode": "HA3 9RT",
      "customer_case_id": "d57bc3b7-4f44-4846-9741-985db9af9b61"
    }
  ]
}
json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "ref": {
      "type": "string"
    },
    "first_names": {
      "type": "string"
    },
    "last_names": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "postcode": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "meta": {
      "type": "object",
      "patternProperties": {
        ".*": {
          "type": "string"
        }
      }
    },
    "full_names": {
      "type": "string"
    },
    "customers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "first_names": {
            "type": "string"
          },
          "middle_names": {
            "type": ["string", "null"]
          },
          "last_name": {
            "type": "string"
          },
          "date_of_birth": {
            "type": ["string", "null"]
          },
          "gender": {
            "type": ["string", "null"]
          },
          "tel_1": {
            "type": ["string", "null"]
          },
          "tel_2": {
            "type": ["string", "null"]
          },
          "email": {
            "type": ["string", "null"]
          },
          "occupation": {
            "type": ["string", "null"]
          },
          "marital_status": {
            "type": ["string", "null"]
          },
          "address_1": {
            "type": ["string", "null"]
          },
          "address_2": {
            "type": ["string", "null"]
          },
          "address_3": {
            "type": ["string", "null"]
          },
          "postcode": {
            "type": ["string", "null"]
          },
          "customer_case_id": {
            "type": "string"
          }
        },
        "required": ["id", "title", "first_names", "last_name", "customer_case_id"]
      }
    }
  },
  "required": [
    "id",
    "ref",
    "first_names",
    "last_names",
    "email",
    "postcode",
    "notes",
    "meta",
    "full_names",
    "customers"
  ]
}

Bulk Update Case

This API endpoint enables you to bulk modify the case reference, notes, and any CRM fields.

WARNING

Since the process of bulk update/modify is resource intensive it will be handled asynchronously.

WARNING

The maximum records that can be updated per request is 2500

TIP

Check out docs for getting the status of the asynchronous job.

Input


Endpoint

Patch /cases-bulk-update


HTTP request headers

Content-Type  string

Setting to application/json is required.

Authorization  string

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


Body parameters

INFO

The body will only accept array of objects, where each object will be a case, below are the parameters of the case object.

id  uuid

The unique case ID you wish to update.

notes  string

meta  object

The Custom CRM fields to populate on the case.

Details

Example of meta


Note: the key is the CRM field ID.

json
{
  "c19461c0-78fc-4ff3-b038-adaf204c2082": "Prospect"
}

Output


Http status codes
Status CodeDescription
201Accepted
400Bad Request
404Resource not found
500Internal Server Error

Request example

bash
curl  -X PATCH \
  'https://client.willsuite.co.uk/engine/api/cases-bulk-update' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...' \
  --data-raw '[
  {
    "id": "4528a261-917d-4cbc-939e-7ea48cffca69",
    "meta": {
      "9d40213b-d8f9-41d2-88a9-0d9b21226502": "2024-01-27"
    }
  },
  {
    "id": "488f6e4e-0ef3-41b3-9d1a-c500ed0140ff",
    "meta": {
      "9d40213b-d8f9-41d2-88a9-0d9b21226502": "2024-01-27"
    }
  }
]'
php
<?php

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

$body = new http\Message\Body;
$body->append('[
  {
    "id": "4528a261-917d-4cbc-939e-7ea48cffca69",
    "meta": {
      "9d40213b-d8f9-41d2-88a9-0d9b21226502": "2024-01-27"
    }
  },
  {
    "id": "488f6e4e-0ef3-41b3-9d1a-c500ed0140ff",
    "meta": {
      "9d40213b-d8f9-41d2-88a9-0d9b21226502": "2024-01-27"
    }
  }
]');

$request->setRequestUrl('https://client.willsuite.co.uk/engine/api/cases-bulk-update');
$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
{
  "apiJobId": "8b609a6d-c42c-4b5c-b0ab-74bdfb0abeb5"
}
json
{
  "type": "object",
  "properties": {
    "apiJobId": {
      "type": "string"
    }
  },
  "required": ["apiJobId"]
}