Skip to content

CRM API

Richard Salt edited this page Jan 25, 2021 · 60 revisions

Use the CRM API to get, search, create & update clients, cases, & contacts in Quill Interactive

https://downloads.quill-interactive.co.uk/API/quill-crm-api-DRAFT.pdf

TODO - convert above DRAFT pdf into mark down

CRM API (Clients & Cases)

The CRM API provides integrators with the following Client and Case features:

  • Create a new Client (with associated client contacts e.g. Mr & Mrs Smith)
  • Create a new Case for an existing Client (or combine with create Client request above)
  • Record time
  • Archive a Case
  • Search for Clients &/or Cases
  • List clients created since a given date/time
  • List cases created since a given date/time

This API was designed prior to REST becoming popular, so although the data payloads are JSON, this API is not strictly RESTful. However, examples are provided to help you get started.

Visual Entity Model

Create a New Client

The /Clients endpoint allows integrators to mimic the same functionality as the create new client screens in Interactive. It supports creation of Individuals, Groups (e.g. Mr & Mrs), & Companies, with associated contacts, addresses & phone numbers.

This screenshot shows some of the fields expected by the API (see the “Parameters” section below to see how the data in these fields needs to be provided).

TIP: it is also possible to create a Case (or Cases) whilst creating a new Client, within the same request.

Lookup dependencies

  • Countries
  • Nationalities

POST /Clients Endpoint & Parameters

Name Type Description
Code str(6) Auto generated by Quill on POST and returned in the response object. You must associate this value with your own Client object for mapping purposes. You will need it to add further Contacts or Cases to this Client at a later date
Description str(77) Required. Either the organisation name (if it's a company) like "Acme PLC", or "Smith John Mr and Jane Mrs" if it's a group, or simply "Bloggs Joe Mr" for individuals. IMPORTANT: Please place surname at the start of Description because the Code above is auto generated based on this value
_contacts Object Array An array of 1 or many contacts - see below
Cases Object Array Optional: An array of 0, 1 or many cases. Only populate this if you want to create a case or cases within your create Client request
Notes str(250)
IsCompany Boolean Set to True if client is a company
IncorporationDate DateTime Only relevant if IsCompany=True
IncorporationCountry Lookup Only relevant if IsCompany=True
VatRegistered str (20) Only relevant if IsCompany=True
CertificateRegistration Number str (20) Only relevant if IsCompany=True

Contact object parameters

Name Type Description
LastName str(30) Required.
FirstName str(30)
Title str(15)
Nationality Lookup Defaults to British if omitted
NI str(20) National Insurance Number
BirthDate Date Format "YYYY-MM-DD"
IsDeceased Boolean
Gender Int 0 = Male, 1 = Female, 2 = Other
JobTitle str(30)
EMail1 str(50)
EMail2 str(50)
_workAddress Address Object
_homeAddress Address Object
_billingAddress Address Object
_workPhoneNumber Phone Object
_mobilePhoneNumber Phone Object
_homePhoneNumber Phone Object

Address object parameters

Name Type Description
Line1 str (35) Required.
Line2 str (35)
Town str (35)
County str (35)
Postcode str (35) Required.
Country Lookup Defaults to UK if omitted
Salutation str (100)
AddressName str (100)
DxNumber str (10)
DxDistrict str (20)

Phone object parameters

Name Type Description
AreaCode str (6)
Phone str (15) Required.

Example A - create a new “Individual” client

TIP: "ClientId” header = TenantId

curl --location --request POST 'https://api.ourdomain.co.uk/quillapi5/clients' \
--header 'clientId: {your-tenant-id-here}' \
--header 'Accept: application/Json' \
--header 'Authorization: Bearer {your-token}' \
--header 'Content-Type: application/json' \
--data-raw '{
 "Description": "Bloggs Joe Mr",
 "_contacts": [
 {
 "LastName": "Bloggs",
 "FirstName": "Joe",
 "Title": "Mr",
 "EMail1": "joe.bloggs@mydomain.co.uk",
 "JobTitle": "Software Developer",
 "Organisation": "ACME Legal Ltd",
 "NI": "NH123456A",
 "BirthDate": "1995-04-30",
 "_homeAddress": {
 "AddressName": "Mr J Bloggs",
 "Salutation": "Mr Bloggs",
 "Line1": "25 Park Drive",
 "Line2": "Bury",
 "Town": "Manchester",
 "Postcode": "AB1 2CD"
 },
 "_homePhoneNumber": {
 "AreaCode": "01234",
 "Phone": "567890"
 }
 }
 ]
}'

Clone this wiki locally