Introduction
Welcome to the Claire Customer Communication API !
This API is used to fetch data and handle all actions related to communication with customers.
We currently have the following communications available:
- Online check-in: Similar to airlines check-in, this communication is sent to the customer prior to his appointment
- Desk check-in: Used by receptionist with counter tablet, to allow the customer to check-in on site
- Keylocker check-in: For locations with Claire keylockers, to allow the customer to check-in while dropping his key
- Diagnose overview: Once the car has been checked by a mechanic, the receptionist can send this communication to ask the customer what is approved, what is not, and what needs more information
- Repair overview: Once the car is ready, the receptionist can send this communication to confirm what was done and what was not
More detail to be found in each section of this documentation.
Communication channels
We currently support two channels of communication with customers:
- SMS
More will be added in the future.
Authentication
Endpoints aimed at customers to read, upload attachments and answer communications use a communication key in the payload as authentication.
A communication key is unique, and valid through the whole appointment life-cycle, from check-in to repair overview, it does not change for each communication sent for an appointment.
This is done to ensure that a customer see the last communication available no matter from which Email/SMS he clicked.
Claire do not send these keys to anyone but the customer to guarantee that a communication was read and answered by the targeted customer.
When the dealer wants to control sending or displaying the communications, these keys are sent to the dealer through the webhook service, and the responsibility to not leak or use these keys instead of the customer rest on them, see more below.
Endpoints aimed at receptionist use claire authentication tokens as all other services aimed at them.
Third party control
Notifying customers
It is possible for a dealer to send the communications links themselves, contact Claire support to activate this feature.
Communication keys will be sent to the dealer when the customer need to be notified, using the Claire webhook service.
Once enabled the dealer is responsible for communicating the link to the customer, and liable to not use the key themselves.
The links to be communicated to the customer are:
- https://comm.clairedev.nl/#!/COMMUNICATION_KEY on the development environment
- https://mycarcheck.pro/#!/COMMUNICATION_KEY on the production environment
Custom frontend
It is also possible for the dealer to use its own frontend, in which case, they must not pre-fetch the communication themselves and later on have the customer read it from their system.
Instead, they must ensure that the communication is fetched when the customer read the communication.
Claire is not responsible for incorrect information shown to the receptionist if the dealer fail to ensure this.
If the dealer wish to augment the features available in the frontend of a communication, or store the communication data, two infrastructures are possible:
- Fetch the communication from the frontend code, and call the dealer backend as well after that when needed
- Set up a proxy backend between the frontend and Claire backend. This proxy backend must be used by the dealer frontend only to guarantee it's called when the customer read the communication
The same options are possible when uploading attachments or answering communications.
Endpoints responses
When a call to an endpoint succeed, this API responds with HTTP 200 and return the following body
{"data":{"seeEachEndpoint":"forTheDataReturnedHere"}}
When a call to an endpoint is done with invalid payload or parameters, or when a validation error occur, or when an expected error occur, this API reponds with HTTP 200 and return the following body:
{"errors":["error 1", "error 2", "error N"]}
See the Errors section for when other HTTP code are returned.
Global communication endpoints
These endpoints are to be used no matter what the current Communication Status is.
They respond and act accordingly to the current status of the communication.
Read communication
curl -X POST "API_BASE/v1/communication/read"
This endpoint will prepare any data needed for the current communication status, mark the communication as read if a customer key is used, and return the communication data to be displayed. This is a general endpoint, to be used when the customer or receptionist want to read the communication, no matter what the current status of the communication is (check-in, diagnose, repair...). Do not use this endpoint with a customer key to retrieve the communication for internal purpose, as the communication will be marked as read by the customer and shown as such in the appointment detail page in the Claire dashboard.
HTTP Request
POST /v1/communication/read
The request Body payload is:
{
"key": ""
}
The request JSON response is:
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"customer_communication_id": 0,
"receptionist_key": "",
"status": 0,
"version": 0,
"correct_phone": "",
"correct_email": "",
"star_rating_experience_message": "",
"star_rating_experience": 0,
"star_rating_service_message": "",
"star_rating_service": 0,
"star_rating_speed_message": "",
"star_rating_speed": 0,
"star_rating_feedback": "",
"customer_id": null,
"appointment_id": 0,
"car_id": 0,
"receptionist_id": null,
"dealer_location_id": 0,
"note": "",
"customer": null,
"appointment": null,
"car": null,
"receptionist": null,
"check_in_results": [],
"check_in_remarks": [],
"diagnose_overview_results": [],
"diagnose_overview_remarks": [],
"results": [],
"agreements": [],
"events": [],
"is_receptionist": false,
"settings": null,
"frontend_update_required": false
}
{
"created_on": "0001-01-01T00:00:00Z",
"updated_on": "0001-01-01T00:00:00Z",
"customer_communication_id": 0,
"receptionist_key": "",
"status": 0,
"version": 0,
"correct_phone": "",
"correct_email": "",
"star_rating_experience_message": "",
"star_rating_experience": 0,
"star_rating_service_message": "",
"star_rating_service": 0,
"star_rating_speed_message": "",
"star_rating_speed": 0,
"star_rating_feedback": "",
"customer_id": null,
"appointment_id": 0,
"car_id": 0,
"receptionist_id": null,Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true | Receptionist Key or Customer Key of the communication to be read |
Response schema
This endpoint return an object of type CustomerCommunication, please refer to the JSON response column on the right, or to the Models and Enumeration section for more details.
Upload a remark attachment.
curl -X POST "API_BASE/v1/communication/upload_attachment" -H "Content-Type: multipart/form-data"
When the customer want to upload an attachment while writing a remark, this endpoint is used to upload it. The attachment URL returned can then be used when submitting the answer in the 'remarks.attachments'. A maximum of 10 files can be attached to one communication and each file are limited to 32Mb.
HTTP MultiPart Request
POST /v1/communication/upload_attachment
The request parts are:
--XXX
Content-Disposition: form-data; name=key
...
--XXX
Content-Disposition: form-data; name=file
...--XXX--
The request JSON response is:
{
"url": ""
}
This request must be a multipart/form-data content-type with valid boundary for each part
Request parts schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true | The customer communication key used to read the communication. |
| file | http.FormFile | true | The file to be uploaded. |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
| Parameter | Type |
|---|---|
| url | string |
Summarize the communication
curl -X POST "API_BASE/v1/communication/summarize"
This endpoint summarizes the communication using google generative ai.
HTTP Request
POST /v1/communication/summarize
The request Body payload is:
{
"key": "",
"intervention_ids": [],
"check_in_service_ids": []
}
The request JSON response is:
{
"summary": ""
}
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true | The customer communication key used to read the communication. |
| intervention_ids | []InterventionID | false | The intervention IDs to be summarized. |
| check_in_service_ids | []CheckInServiceID | false | The check-in service IDs to be summarized. |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
| Parameter | Type |
|---|---|
| summary | string |
Diagnose_overview
Answer a diagnose overview communication
curl -X POST "API_BASE/v1/diagnose_overview/answer"
When the customer read a diagnose overview communication, he is expected to answer it, using this endpoint.
HTTP Request
POST /v1/diagnose_overview/answer
The request Body payload is:
{
"key": "",
"results": [],
"remarks": [],
"correct_phone": null,
"correct_email": null,
"agreement_ids": [],
"customer_name": ""
}
The request JSON response is:
This endpoint does not return anything, only the HTTP status code matters.
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true | The customer communication key used to read the communication. |
| results | []CommunicationResult | false | The communication results retrieved when reading the communication, with their statuses updated as answered by the customer. |
| remarks | []DiagnoseOverviewRemark | false | The remarks of the customer, along with optional attachments urls (uploaded with the communication/upload_attachment endpoint). Each remark must contain at least a title or a description. Optional. |
| correct_phone | string | false | To be submitted if the customer has entered a different phone number than what we have in the customer object. Will be displayed to the receptionist in the appointment detail page. |
| correct_email | string | false | To be submitted if the customer has entered a different email address than what we have in the customer object. Will be displayed to the receptionist in the appointment detail page. |
| agreement_ids | []CustomerCommunicationAgreementID | false | The diagnose agreements IDs that were agreed by the customer. Not to be confused with the agreement IDs. |
| customer_name | string | true | The name entered by the customer before submitting his answer. |
Response schema
This endpoint does not return anything, only the HTTP status code matters.
Diagnose_overview_v2
Answer a diagnose overview communication
curl -X POST "API_BASE/v2/diagnose_overview/answer"
When the customer read a diagnose overview communication, he is expected to answer it, using this endpoint.
HTTP Request
POST /v2/diagnose_overview/answer
The request Body payload is:
{
"key": "",
"interventions": [],
"replacements": [],
"remarks": [],
"correct_phone": null,
"correct_email": null,
"agreement_ids": [],
"customer_name": ""
}
The request JSON response is:
This endpoint does not return anything, only the HTTP status code matters.
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true | The customer communication key used to read the communication. |
| interventions | []Intervention | false | The interventions retrieved when reading the communication, with their statuses updated as answered by the customer. |
| replacements | []VehicleTyreReplacement | false | The replacements retrieved when reading the communication, with their statuses updated as answered by the customer. |
| remarks | []DiagnoseOverviewRemark | false | The remarks of the customer, along with optional attachments urls (uploaded with the communication/upload_attachment endpoint). Each remark must contain at least a title or a description. Optional. |
| correct_phone | string | false | To be submitted if the customer has entered a different phone number than what we have in the customer object. Will be displayed to the receptionist in the appointment detail page. |
| correct_email | string | false | To be submitted if the customer has entered a different email address than what we have in the customer object. Will be displayed to the receptionist in the appointment detail page. |
| agreement_ids | []CustomerCommunicationAgreementID | false | The diagnose agreements IDs that were agreed by the customer. Not to be confused with the agreement IDs. |
| customer_name | string | true | The name entered by the customer before submitting his answer. |
Response schema
This endpoint does not return anything, only the HTTP status code matters.
Online_checkin
Customer answers a sent CustomCommunication
curl -X POST "API_BASE/v1/online_checkin/answer"
When the customer read an online check-in communication, he is expected to answer it, using this endpoint.
HTTP Request
POST /v1/online_checkin/answer
The request Body payload is:
{
"key": "",
"results": [],
"remarks": [],
"correct_phone": null,
"correct_email": null,
"agreement_ids": [],
"customer_name": "",
"preferred_communication_channel": null,
"drop_in_acses_locker": false
}
The request JSON response is:
This endpoint does not return anything, only the HTTP status code matters.
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true | The customer communication key used to read the communication. |
| results | []CheckInResult | false | The communication results retrieved when reading the communication, with their accepted values updated as answered by the customer. |
| remarks | []CheckInRemark | false | The remarks of the customer, along with optional attachments urls (uploaded with the communication/upload_attachment endpoint). Each remark must contain at least a title or a description. Optional. |
| correct_phone | string | false | To be submitted if the customer has entered a different phone number than what we have in the customer object. Will be displayed to the receptionist in the appointment detail page. |
| correct_email | string | false | To be submitted if the customer has entered a different email address than what we have in the customer object. Will be displayed to the receptionist in the appointment detail page. |
| agreement_ids | []CommunicationAgreementID | false | The agreements IDs that were agreed by the customer. |
| customer_name | string | true | The name entered by the customer before submitting his answer |
| preferred_communication_channel | CommunicationChannelID | false | The preferred channel of communication chosen by the customer for future communications |
| drop_in_acses_locker | bool | true | If the location posses an ACSES keylocker and the customer agreed to drop their key in it |
Response schema
This endpoint does not return anything, only the HTTP status code matters.
ACSES KeyLockers that are available to the Customer
curl -X POST "API_BASE/v1/online_checkin/is_acses_available"
If a Location has ACSES KeyLockers enabled and there is a LockerCell available in any LockerSystem. The Customer will be prompted to drop their keys in the Locker.
HTTP Request
POST /v1/online_checkin/is_acses_available
The request Body payload is:
{
"key": ""
}
The request JSON response is:
{
"available": false
}
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| key | string | true |
Response schema
This endpoint return an object with the following fields, please refer to the JSON response column on the right for an example.
| Parameter | Type |
|---|---|
| available | bool |
Communication Controller
Communication controller for updating the customization and settings options for Communications
This controller controls the settings for all the Communication Services and provides Email and SMS templates for customization.
Download a PDF
curl -X POST "API_BASE/v1/repair_overview/download"
Download a PDF contained the Repair Order information
HTTP Request
POST /v1/repair_overview/download
The request Body payload is:
{
"communication_key": ""
}
The request JSON response is:
[
0
]
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| communication_key | string | true |
Response schema
This endpoint returns a binary
Set the rating
curl -X POST "API_BASE/v1/repair_overview/set_star_rating"
This endpoint set the rating provided by customer for overall experience, speed and services.
HTTP Request
POST /v1/repair_overview/set_star_rating
The request Body payload is:
{
"communication_key": "",
"star_rating_experience": 0,
"star_rating_speed": 0,
"star_rating_service": 0,
"star_rating_feedback": ""
}
The request JSON response is:
This endpoint does not return anything, only the HTTP status code matters.
Request schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| communication_key | string | true | Customer Communication Key |
| star_rating_experience | int | true | Rating of the experience |
| star_rating_speed | int | true | Rating of the process speed |
| star_rating_service | int | true | Rating of the service |
| star_rating_feedback | string | true | Feedback of the service, provided along with the ratings |
Response schema
This endpoint does not return anything, only the HTTP status code matters.
Models and Enumerations
Enumerations
AppointmentRecallStatus Enumeration
| Value | Description |
|---|---|
| 0 | None |
| 1 | Previous |
| 2 | Open |
CarType Enumeration
| Value | Description |
|---|---|
| 0 | Car vehicle type |
| 1 | Unknown vehicle type |
| 2 | Van vehicle type |
| 3 | Motorcycle vehicle type |
| 4 | Truck vehicle type |
| 5 | Bus vehicle type |
| 6 | LightTruck vehicle type |
CheckInResultStatus Enumeration
| Value | Description |
|---|---|
| 0 | not sent |
| 1 | pending |
| 2 | success |
| 3 | failed |
ChecklistType Enumeration
| Value | Description |
|---|---|
| 0 | Regular checklist |
| 1 | Initial checklist done by receptionists |
| 2 | Quality control checklist |
| 3 | Auxilary checklist |
| 4 | Extra parts checklist, i.e. fluids list |
| 5 | This Checklist Type is deprecated and will be repurposed by a new Checklist Type |
| 6 | Test Drive checklist can be started at any time and do no change the appointment status |
| 7 | Checklist is of warranty type |
CommunicationChannelID Enumeration
| Value | Description |
|---|---|
| 1 | |
| 2 | SMS |
| 3 | Webhook, used when a third party send the communication link |
| 4 |
CommunicationEventType Enumeration
| Value | Description |
|---|---|
| 1 | Online Check-in communication sent |
| 2 | Online Check-in communication opened |
| 3 | Online Check-in communication answered |
| 4 | Diagnose overview communication created |
| 5 | Diagnose overview communication opened |
| 6 | Diagnose overview communication answered |
| 7 | Diagnose overview communication resent |
| 8 | Repair overview communication created |
| 9 | Repair overview communication resent |
| 10 | Repair overview communication opened |
CommunicationLayoutID Enumeration
| Value | Description |
|---|---|
| 1 | Default layout |
| 2 | Default layout but with the menu on the left side |
CommunicationResultStatus Enumeration
| Value | Description |
|---|---|
| 1 | |
| 1 | The question does not have a status yet |
| 2 | The customer is ok to fix this item |
| 3 | The customer is not ok to fix this item |
| 4 | The customer asked to be contacted about this item |
| 4 |
CommunicationStatus Enumeration
| Value | Description |
|---|---|
| 1 | Customer did not open the Online Check-in yet |
| 2 | Customer did opened the Online Check-in |
| 3 | Customer did answered the Online Check-in |
| 4 | The Online Check-in is closed |
| 5 | Customer did not open the Diagnose overview yet |
| 6 | Customer did opened the Diagnose overview |
| 7 | Customer did answered the Diagnose overview |
| 8 | The Online Check-in is closed, can be reopened if resent |
| 9 | The repair overview was sent, look at communication events to know if it was opened |
| 10 | Customer did opened the Repair Overview |
CustomerType Enumeration
| Value | Description |
|---|---|
| 0 | NotSet |
| 1 | Driver |
| 2 | Owner |
| 3 | Contractor |
DBBStatus Enumeration
| Value | Description |
|---|---|
| 0 | Check that was not pushed to DBB |
| 1 | Check fully pushed to DBB |
| 2 | Check that need to be confirmed in DBB mini portal |
| 3 | Check that failed to be pushed to DBB |
HeadingPosition Enumeration
| Value | Description |
|---|---|
| 1 | Heading content at the top |
| 2 | Heading content at the bottom |
LandingPageID Enumeration
| Value | Description |
|---|---|
| 1 | Main page |
| 2 | Lead Dashboard |
| 3 | Warranty Dashboard |
| 4 | Manufacturer Dashboard |
| 5 | Dayplanner Dashboard |
| 6 | Exact Monitoring Dashboard |
LanguageCode Enumeration
| Value | Description |
|---|---|
| nl-NL | Dutch |
| en-GB | English |
| fr-FR | French |
| de-DE | German |
| th-FR | Thai-French |
| af-AF | Afrikaans - extra language only for tablet users |
| bs-BS | Bosnian - extra language only for tablet users |
| el-GR | Greek - extra language only for tablet users |
| hu-HU | Hungarian - extra language only for tablet users |
| pl-PL | Polish - extra language only for tablet users |
| ro-RO | Romanian - extra language only for tablet users |
LefLeadKind Enumeration
| Value | Description |
|---|---|
| 1 | APK |
| 2 | Tires |
| 3 | Bid |
| 4 | Brochure |
| 5 | ContactRequest |
| 6 | Financing |
| 7 | Warranty |
| 8 | KeepMePosted |
| 9 | ClientSatisfaction |
| 10 | Loyalty |
| 11 | Mailing |
| 12 | Quotation |
| 13 | Maintenance |
| 14 | PrivateLease |
| 15 | TestDrive |
| 16 | Repairs |
| 17 | ShowroomVisit |
| 18 | Taxation |
| 19 | CallbackRequest |
| 20 | Insurance |
| 21 | OfficeQuotation |
| 22 | OfficeAppointment |
| 23 | CommercialLeasing |
| 24 | Other |
| 25 | ShortLease |
| 26 | Rental |
| 27 | Damage |
| 28 | CarConfigurator |
| 29 | Accessories |
| 30 | Complaint |
| 31 | Event |
| 32 | TelephonicLead |
| 33 | Webshop |
| 34 | SearchRequest |
| 35 | CallingList |
| 36 | RecallCampaign |
| 37 | ChargingPoint |
PinStatusID Enumeration
| Value | Description |
|---|---|
| 0 | Not Set |
| 1 | Deleted |
| 2 | Support |
| 3 | Approval pending |
| 4 | More info |
| 5 | Approved |
| 6 | Declined |
| 7 | To claim |
| 8 | Claimed |
| 9 | Billed |
| 10 | Request |
| 11 | Technical info |
PinTypeID Enumeration
| Value | Description |
|---|---|
| 1 | Pinned for remarks |
| 2 | Pinned for warranty |
| 3 | Pinned for recall |
QuestionResultStatus Enumeration
| Value | Description |
|---|---|
| -1 | No Status can be selected |
| 0 | OK, no problem found |
| 1 | OK with remarks, no problem found but a remark was given |
| 2 | Advised, a problem was found but does not need immediate attention |
| 3 | Necessary, a problem was found and it must be fixed |
| 4 | Not worked on, they question was skipped by the user |
RoleID Enumeration
| Value | Description |
|---|---|
| 10 | Top level user role (has all permissions) |
| 20 | Claire admin role |
| 25 | Support admin role, similar to claire admin but without deleting rights |
| 30 | Manage dealers attached to it |
| 40 | Manage a single dealer |
| 45 | Exact admin role, can manage only exact related operations |
| 50 | Uses the dashboard and does aanname checks |
| 55 | Mechanic with access rights similar to receptionist |
| 60 | Does car checks |
| 70 | Allowed to use multiple locations for one dealer |
| 80 | Does quality controls |
| 90 | Perform leads, recall and warranty related tasks on allowed locations from one or more dealers |
| 100 | User by tablet on the counter of receptionists |
| 110 | Manufacturer are allowed to update certain data after their requests to access specific appointments are being granted |
StatusIdentifier Enumeration
| Value | Description |
|---|---|
| -1 | The appointment has been cancelled |
| 1 | Initial status for a new appointment |
| 2 | A car check is completed |
| 3 | Pricing calculation is done |
| 4 | Customer approved pricing |
| 5 | The car is ready |
| 6 | An car check is required, set by a receptionist |
| 7 | Initial check done by a receptionist |
| 8 | Receptionists are doing pricing calculations |
| 9 | The customer is being contacted to approve pricing |
| 10 | A car check has started |
| 11 | A quality check is completed |
| 12 | The customer answered through online communication |
| 13 | The appointment is delayed and is waiting on a back order |
| 50 | Not returned by the backend, shown if the receptionist need to handle the Online Check-in answer |
| 51 | Not returned by the backend, shown if the Online Check-in is answered and handled |
| 52 | Not returned by the backend, shown if the car is in the shop |
| 53 | Not returned by the backend, shown if repair overview was sent to customer for car ok status |
| 54 | Not returned by the backend, shown if repair overview was sent to customer for quality check status |
| 55 | Not returned by the backend, shown if the car is out of the shop |
StatusOverride Enumeration
| Value | Description |
|---|---|
| 0 | None |
| 1 | Canceled |
| 2 | Restored |
TyrePosition Enumeration
| Value | Description |
|---|---|
| 0 | No tyre |
| 1 | Car front left |
| 2 | Car front right |
| 3 | Car rear left |
| 4 | Car rear right |
| 5 | Storage front left |
| 6 | Storage front right |
| 7 | Storage rear left |
| 8 | Storage rear right |
| 9 | Car spare |
| 10 | Truck left |
| 11 | Truck right |
| 12 | Truck exterior left |
| 13 | Truck exterior right |
| 14 | Truck interior left |
| 15 | Truck interior right |
| 16 | Truck spare |
TyreReplacementSource Enumeration
| Value | Description |
|---|---|
| 1 | Claire |
| 2 | TyreTeam |
| 3 | TyreNet |
| 3 | Last |
TyreTeamChannelID Enumeration
| Value | Description |
|---|---|
| 1 | Wheel-Tyre |
| 2 | BandenExpress |
UserStatusID Enumeration
| Value | Description |
|---|---|
| 1 | Active |
| 2 | Inactive |
| 3 | Deleted |
WarrantyTypeID Enumeration
| Value | Description |
|---|---|
| 0 | Not Set |
| 1 | Factory |
| 2 | Leniency |
| 3 | Body Paint |
| 4 | On Repair |
| 5 | Occasion |
| 6 | Service |
Models
Appointment Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | AppointmentID | Appointment's ID |
| dms_nr | string | Appointment ID in the DMS |
| dms_created_at | time.Time | When the Appointment was created in the DMS |
| wo_nr | string | Appointment work order number |
| importer_version | string | Version of Claire importer used to import Appointment from DMS |
| car_check_started | bool | Car check has started |
| customer_waiting | bool | The customer is waiting for the car |
| customer_waiting_edited | bool | The customer is waiting for the car is set by the user |
| is_local | bool | This appointment was created manually in Claire |
| is_money | bool | A receptionist marked this appointment with the money marker |
| is_star | bool | A receptionist marked this appointment with the star marker |
| is_star_color | string | Color for the star icon |
| is_shop | bool | A receptionist marked this appointment with the shop marker |
| is_shop_color | string | Color for the shopping cart icon |
| is_lease_company | bool | The appointment’s car belongs to a lease company |
| has_extra_check | bool | An extra check was performed |
| check_paused_at | time.Time | A car check was paused and when |
| final_check_has_remarks | bool | Final check has remarks |
| is_recurring | bool | This car came in the last 28 days |
| warranty_pin_count | int | Number of pinned warranty items on the appointment |
| warranty_pin_signature_missing_count | int | Number of pinned warranty items on the appointment that are missing a signature |
| warranty_pin_claim_nr_missing_count | int | Number of pinned warranty items on the appointment that are missing a claim nr |
| warranty_pin_support_nr_missing_count | int | Number of pinned warranty items on the appointment that are missing a claim nr |
| recall_pin_count | int | Number of pinned recall items on the appointment |
| recall_pin_claim_nr_missing_count | int | Number of pinned recall items on the appointment that are missing a claim nr |
| recall_pin_support_nr_missing_count | int | Number of pinned recall items on the appointment that are missing a supportnr |
| remark_pin_count | int | Number of pinned remark items on the appointment |
| next_date | time.Time | Planned next appointment date |
| predicted_next_date | time.Time | Predicted next appointment date |
| time_car_app | time.Time | Appointment date in Claire |
| is_pinned | bool | Is the appointment pinned |
| is_pinned_manually | bool | The appointment was pinned manually, preventing automatic overwriting |
| status_override | StatusOverride | The appointment's status was overridden manually, preventing automatic overwriting |
| car_in_shop | time.Time | When the car arrived at the location |
| car_in_shop_edited | bool | Car in Shop was overwritten in claire and no longer reflects the DMS |
| car_out_of_shop | time.Time | When the car left the location |
| car_out_of_shop_edited | bool | Car out of Shop was overwritten in claire and no longer reflects the DMS |
| due_in | time.Time | Car is scheduled to be in the shop on this date |
| car_return_time | time.Time | Car is scheduled to be returned back to the customer on this date |
| car_return_time_edited | bool | car return time was overwritten in claire and no longer reflects the DMS |
| dms_billed_updated | bool | Billed was updated by the DMS |
| check_in_com_sent | bool | Online Checkin was sent to a customer |
| check_in_com_answered | bool | Online Checkin was answered by a customer |
| check_in_com_to_handle | int | The customer asked for additional items to be handled |
| last_dms_update | time.Time | The last time this appointment was updated from the DMS |
| last_dms_refresh | time.Time | The last time this appointment was refreshed by a user opening the detail page |
| last_dbb_refresh | time.Time | The last time this appointment was refreshed to update data from DBB by a user opening the detail page |
| last_ocw_refresh | time.Time | The last time the OCW was refreshed by a user opening the detail page |
| last_recall_refresh | time.Time | The last time the recalls of this appointment was refreshed by a user opening the detail page |
| internal | bool | This appointment is internal and doesn't interact with real customers, such as when a car is new from the factory |
| has_panic | bool | A mechanic has a critical issue on the vehicle and needs immediate help |
| is_tyre_motion_ai_scanned | bool | The tyres are scanned by tyre motion AI |
| created_by | string | Indicates the origin of this appointment and the entity responsible for its creation |
| is_ocw_intervention_created | bool | Indicates if the OCW intervention has been created for this appointment. This intervention is created if the car supports OCW and it is reminder to disconnect and reconnect the car to ocw app. |
| bar_code | string | Custom BarCode, set while importing appointment via public-api. Contains additional information. |
| three_department_receptionist | bool | Indicates if the receptionist department has been set for this appointment |
| three_department_receptionist_set_at | time.Time | The time when the receptionist department was set for this appointment |
| three_department_receptionist_user_id | UserID | User ID who set the receptionist department |
| three_department_parts | bool | Indicates if the parts department has been set for this appointment |
| three_department_parts_set_at | time.Time | The time when the parts department was set for this appointment |
| three_department_parts_user_id | UserID | User ID who set the parts department |
| three_department_workshop | bool | Indicates if the workshop department has been set for this appointment |
| three_department_workshop_set_at | time.Time | The time when the workshop department was set for this appointment |
| three_department_workshop_user_id | UserID | User ID who set the workshop department |
| three_department_remark | string | Three department remark |
| three_department_remark_user_id | UserID | User ID who set the three department remark |
| three_department_remark_updated_at | time.Time | The time when the three department remark was updated |
| key_dropped_at | time.Time | Date and time the customer dropped the key in the keylocker |
| key_dropped_in | string | Name of the keylocker in which key is dropped in |
| key_picked_up_at | time.Time | Date and time the mechanic picked up the key in the keylocker |
| key_picked_up_by_id | UserID | User ID of the mechanic who picked up the key |
| key_dropped_back_at | time.Time | Date and time the mechanic dropped back the key in the keylocker |
| key_dropped_back_by_id | UserID | User ID of the mechanic who dropped back the key |
| key_dropped_back_in | string | Name of the keylocker in which key is dropped back in |
| key_picked_up_back_at | time.Time | Date and time the customer picked back up the key in the keylocker |
| key_picked_up_back_by_id | UserID | User ID of the receptionist who picked back up the key if they intervened |
| acses_key_drop_object_id | string | Acses Object Identifier used to drop the key |
| acses_key_drop_booking_id | string | Acses Booking Identifier containing the authentication needed so the customer can drop the key |
| acses_key_drop_in | string | Identifier of the Acses locker, where the key was dropped in |
| acses_key_dropped_at | time.Time | Date and time the customer dropped the key in the Acses locker |
| acses_key_pick_up_booking_id | string | Acses Booking Identifier used to open the locker to pickup the key |
| acses_key_pick_up_by_id | UserID | User Identifier of the mechanic who picked up the key from the Acses locker |
| acses_key_picked_up_at | time.Time | Date and time the mechanic picked up the key from the Acses locker |
| acses_key_drop_back_object_id | string | Acses Object Identifier used to drop back the key |
| acses_key_drop_back_booking_id | string | Acses Booking Identifier containing the authentication needed so the receptionist can drop back the key |
| acses_key_drop_back_by_id | UserID | User Identifier of the receptionist who dropped back the key in the Acses locker |
| acses_key_drop_back_in | string | Identifier of the Acses locker, where the key was dropped back in |
| acses_key_dropped_back_at | time.Time | Date and time the receptionist dropped the key in the Acses locker |
| acses_key_pick_up_back_booking_id | string | Acses Booking Identifier containing the authentication needed so the customer can pick back up the key |
| acses_key_assist_pick_up_booking_id | string | Acses Booking Identifier containing the authentication needed so the receptionist can pick back up the key |
| acses_key_assist_pick_up_by_id | UserID | User Identifier of the receptionist who picked back up the key if they intervened |
| acses_key_picked_up_back_at | time.Time | Date and time the key was picked back up from the Acses locker |
| sharebox_key_dropped_at | time.Time | Sharebox key dropped at |
| sharebox_key_dropped_in_cabinet_id | int | Sharebox Cabinet Identifier for Key drop |
| sharebox_key_dropped_in_reservation_id | int | ShareBox Reservation Identifier for Key drop |
| sharebox_key_dropped_in_locker_no | int | Sharebox Locker Identifier for Key drop |
| sharebox_key_dropped_in_location | string | Sharebox Location for Key drop |
| sharebox_key_picked_up_at | time.Time | Sharebox key picked up at date and time |
| sharebox_key_picked_up_by_id | UserID | Sharebox key picked up by Claire User Identifier |
| sharebox_key_dropped_back_at | time.Time | Sharebox key dropped back at date and time |
| sharebox_key_dropped_back_by_id | UserID | Sharebox key dropped back by Claire User Identifier |
| sharebox_key_dropped_back_in_cabinet_id | int | Sharebox Cabinet Identifier for Key drop back |
| sharebox_key_dropped_back_in_receiver_id | int | Sharebox Receiver Identifier used for key drop back and to be used for assist pickup |
| sharebox_key_dropped_back_in_reservation_id | int | Sharebox Reservation Identifier for Key drop back |
| sharebox_key_dropped_back_in_locker_no | int | Sharebox Locker Identifier for Key drop back |
| sharebox_key_dropped_back_in_location | string | Sharebox Location for Key drop back |
| sharebox_key_picked_up_back_at | time.Time | Sharebox key picked back up at date and time |
| sharebox_key_picked_up_back_by_id | UserID | Sharebox Key picked back up by Claire User Identifier |
| xentry_job_id | string | Identifier of this appointment in XEntry |
| kiosk_checked_in_at | time.Time | Customer used the Kiosk to checkin |
| kiosk_label_number | KioskLabelNumber | Customer used this Kiosk Label to checkin |
| planning_mechanic_id | UserID | A planning mechanic id from supported Planning interfaces |
| planning_work_start | time.Time | Work start time |
| planning_work_stop | time.Time | Work stop time |
| has_plan_it_data | bool | There is plan-IT data available for this appointment |
| has_recalls_data | AppointmentRecallStatus | There are recalls available for this appointment |
| has_ovis_data | bool | There are OVIS events available for this appointment |
| customer_owner_name | string | Name of the owner customer |
| customer_owner_profile_picture | string | Profile picture of the owner customer |
| assigned_mechanic | UserID | Assigned mechanic |
| assigned_mechanic_order | int | Assigned mechanic order |
| last_assigned_mechanic | UserID | Last assigned mechanic |
| extra_parts_list_id | ChecklistID | Checklist ID of the extra parts list, if an extra check was started on the appointment |
| extra_check_id | CheckID | Check ID of the extra check performed on the appointment |
| appointment_status_id | AppointmentStatusID | Current appointment's status ID in Claire |
| customer_driver_id | CustomerID | Customer (driver) ID in Claire |
| customer_owner_id | CustomerID | Customer (owner) ID in Claire |
| customer_contract_id | CustomerID | Customer (contractor) ID in Claire |
| dealer_location_id | DealerLocationID | Unique DealerLocation ID of the location that the appointment occurred in |
| car_id | CarID | Unique ID of the Car assigned to appointment |
| vin_nr | string | Vehicle Identification Number |
| car_model | string | Car Model |
| car_make | string | Car Make |
| reg_number | string | License plate number |
| reg_number_escaped | string | License plate number without dashes |
| current_km | int | Current odometer status |
| dms_km | int | Odometer reading from the DMS |
| next_km | int | Planned next appointment in kilometers on the odometer |
| car_apk_date | time.Time | Dutch technical inspection DMS date |
| car_hu_date | time.Time | German technical inspection DMS date |
| driver_initials | string | Driver initials |
| driver_title | string | Driver Title (e.g. Dhr. Mvr.,) |
| driver_firstname | string | Driver's first name |
| driver_surname | string | Driver's last name |
| driver_opted_out_from_importing | bool | Driver opted out from importing |
| contractor_initials | string | Contractor's initials |
| contractor_title | string | Contractor's Title (e.g. Dhr. Mvr.,) |
| contractor_firstname | string | Contractor's first name |
| contractor_surname | string | Contractor's last name |
| contractor_opted_out_from_importing | bool | Contractor opted out from importing |
| owner_initials | string | Owner's initials |
| owner_title | string | Owner's Title (e.g. Dhr. Mvr.,) |
| owner_firstname | string | Owner's first name |
| owner_surname | string | Owner's last name |
| owner_opted_out_from_importing | bool | Owner opted out from importing |
| company | string | Contractor's company name |
| appointment_status_identifier | StatusIdentifier | Current appointment's status identifier in Claire |
| last_timestamp | time.Time | Last time this appointment was updated |
| last_user | string | Name of the last user that interacted with the appointment |
| last_user_profile_picture | string | Profile picture of the last user that interacted with the appointment |
| last_user_at | time.Time | Time at which the last user interacted with the appointment |
| num_approved_items_not_fixed | int | Number of items waiting to be fixed on the appointment |
| has_dbb | bool | The appointment's car has DBB enabled |
| dbb_appointment_date | time.Time | Date provided by DBB for the delivery to the location from the hotel |
| car_check_dbb_status | DBBStatus | Status of pushing the car check to DBB |
| car_check_dbb_status_reason | string | Reason given by DBB for the car check status |
| final_car_check_dbb_status | DBBStatus | Status of pushing the final car check to DBB |
| final_car_check_dbb_status_reason | string | Reason given by DBB for the final car check status |
| dbb_file_reference | string | File reference returned by DBB for the pushed appointment |
| dbb_state | string | Tyre state as last reported by DBB |
| check_initiator_name | string | Name of mechanic who initiated check |
| check_initiator_email | string | Email of mechanic who initiated check |
| last_receptionist_name | string | Name of receptionist who last updated the appointment |
| last_receptionist_profile_picture | string | Profile picture of receptionist who last updated the appointment |
| last_customer_ok_set_by_id | UserID | User who sets the appointment in customer ok status |
| last_car_ready | time.Time | Updated whenever Car Ready status is set |
| fleet_number | string | Car fleet number |
| vehicle_type | CarTypeID | The vehicle's type |
| customer_driver | Customer | Customer (Driver) in Claire |
| customer_owner | Customer | Customer (Owner) in Claire |
| customer_contract | Customer | Customer (Contract) in Claire |
| check_initiator | User | User that initiated check |
| dealer_location | DealerLocation | |
| car | Car | Car object, refer to that model for more details |
| car_profile_picture | string | Car profile picture URL |
| status_history | []AppointmentStatusHistory | History of statuses |
| interventions | []Intervention | List of initial interventions |
| checks | []Check | |
| checklists | []Checklist | |
| customer_communication | CustomerCommunication | |
| acses_customer_communication | AcsesCommunication | Embedded when Acses was used to exchange a key |
| customcom_id | CustomerCommunicationID | |
| customcom_receptionist_key | string | |
| customcom_status | CommunicationStatus | |
| customcom_correct_phone | string | |
| customcom_correct_email | string | |
| customcom_customer_id | CustomerID | |
| customer_ok_user | User | |
| desk_communications | []DeskCommunication | |
| kiosk_communications | []KioskCommunication | |
| keylocker_communications | []KeyLockerCommunication | |
| diagnose_overview_results | []CommunicationResult | |
| repair_overview_results | []CommunicationResult | |
| communication_events | []CommunicationEvent | |
| check_in_remarks | []CheckInRemark | |
| check_in_results | []CheckInResult | |
| diagnose_overview_remarks | []DiagnoseOverviewRemark | |
| communication_note | string | |
| notes | []AppointmentNote | |
| dealer_name | string | |
| dealer_commercial_name | string | |
| location_name | string | |
| location_phone | string | |
| dealer_domain_name | string | |
| car_in_shop_set_by | User | |
| car_out_of_shop_set_by | User | |
| key_picked_up_by | User | Mechanic who picked up the key |
| planning_mechanic | User | |
| key_dropped_back_by | User | |
| key_picked_up_back_by | User | |
| acses_key_pick_up_by | User | |
| acses_key_drop_back_by | User | |
| acses_key_assist_pick_up_by | User | |
| sharebox_key_picked_up_by | User | |
| sharebox_key_dropped_back_by | User | |
| sharebox_key_picked_up_back_by | User | |
| check_events | []CheckEvent | Check events of the appointment, whether they are related to a status change in the status history or not |
| logs | []AppointmentLog | Logs of the appointment, like change in the customer owner etc. |
| pdf_include_activity_logs | bool | The multi check pdf needs to contain the activity logs |
| pdf_include_customer_sign_logs | bool | The multi check pdf needs to contain the customer sign logs |
| three_department_receptionist_user | User | User who set the receptionist department |
| three_department_parts_user | User | User who set the parts department |
| three_department_workshop_user | User | User who set the workshop department |
| three_department_remark_user | User | User who set or edited the three department remark |
| dms_car_id | string | only used by dms v3 service |
| dms_driver_id | string | only used by dms v3 service |
| dms_owner_id | string | only used by dms v3 service |
| dms_contractor_id | string | only used by dms v3 service |
| dms_rental | bool | only used by dms v3 service |
| is_car_in_shop | bool | set for the importer service only by dms v3 service |
| extracted_dms_users | []DMSUser | only used by dms v3 service |
Car Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | CarID | Claire Car ID |
| is_truck | bool | True if its a truck |
| make | string | Car make |
| model | string | Car model |
| fuel | string | Fuel type |
| reg_nr | string | Registration plate |
| reg_nr_escaped | string | |
| vin_nr | string | Vehicle identification number |
| dms_nr | string | Car ID in the DMS |
| profile_picture | string | Car picture URL |
| engine_number | string | |
| ocw_enabled | bool | The car supports mobile app over the air connectivity |
| fleet_number | string | |
| vehicle_type | CarTypeID | The vehicle's type |
| dms_registration | time.Time | DMS registration date |
| rdw_first_registration | time.Time | First registration date |
| rdw_first_registration_nl | time.Time | First NL registration date |
| rdw_type_goedkeurings_nummer | string | RDW type goedkeurings nummer |
| rdw_type | string | RDW type |
| rdw_variant | string | RDW variant |
| rdw_uitvoering | string | RDW uitvoering |
| apk_date_dms | time.Time | Dutch technical inspection DMS date |
| hu_date_dms | time.Time | German technical inspection DMS date |
| warranty_date_start | time.Time | When the factory warranty begins |
| warranty_date_end | time.Time | When the factory warranty ends |
| warranty_extended | time.Time | Typically an insurance warranty that goes beyond the factory warranty |
| rob_lease_expiration | time.Time | Expiration date of the lease contract with ROB |
| has_dbb | bool | |
| dbb_appointment_date | time.Time | |
| alignment_recommended | bool | |
| dealer_id | DealerID | |
| dealer_location_id | DealerLocationID | |
| dealer | Dealer | |
| dealer_location | DealerLocation | |
| on_car_tyres | CarTyres | Deprecated: CarTyres object for the tyres on the car, see that model for more details. |
| in_storage_tyres | CarTyres | Deprecated: CarTyres object for the tyres in storage, see that model for more details. |
| truck_tyres | []TruckTyres | Deprecated: TruckTyres object for the tyres of truck |
| car_lead_prediction | CarLeadPrediction | |
| notes | []CarNote | Notes on the car created in claire |
| tyres | []VehicleTyre | Tyres that are associated with the vehicle |
| keyloop_mappings | []KeyloopMapping | Keyloop provider code mappings for the car |
| dms_driver_id | string | used by dms v3 importer |
| dms_owner_id | string | used by dms v3 importer |
| dms_contractor_id | string | used by dms v3 importer |
CheckInRemark Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | CheckInRemarkID | |
| receptionist_handled | bool | Has receptionist handled this remark |
| customer_communication_id | CustomerCommunicationID | Customer communication identifier |
| title | string | Title |
| description | string | Description |
| customer_name | string | Customer name |
| visible_in_dashboard | bool | Is visible in dashboard |
| visible_to_mechanic | bool | Is visible to mechanic |
| attachments | []CheckInAttachment | Attachments |
| appointment_id | AppointmentID | Appointment identifier |
CheckInResult Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | CheckInResultID | Identifier of the checkin result |
| customer_communication_id | CustomerCommunicationID | Customer communication identifier |
| check_in_service_id | CheckInServiceID | Linked check in service identifier |
| accepted | bool | Is accepted by the customer |
| receptionist_handled | bool | Has receptionist handled this result |
| tag_id | TagID | Identifier of the tag if any associated with this result |
| notification_email | string | Notification email id |
| status | CheckInResultStatusID | Status of the checkin result |
| reason | string | Reason |
| mailgun_message_id | string | Mailgun message id |
| name | string | Name |
| description | string | Description |
| price | float64 | Price |
| info_url | string | Info URL |
| hide_for_lease_appointments | bool | Hide for the lease appointment |
| visible | bool | Is it visible |
| can_convert_to_intervention | bool | Can be converted to intervention |
| sent_to_lef | bool | Is this converted to lead in LEF |
| sent_to_lef_at | time.Time | Represents the date and time at which this result has been converted to lead in LEF |
| lef_lead_kind | LefLeadKind | LEF lead kind, used while converting to lead in LEF |
| appointment_id | AppointmentID | Appointment identifier |
| notifier_key | NotifierKey | Notifier key |
CommunicationAgreement Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | CommunicationAgreementID | |
| name | string | |
| text | string | |
| dealer_id | DealerID | |
| parent_id | CommunicationAgreementID | |
| deleted | bool | |
| optional_online_check_in | bool | |
| optional_kiosk_check_in | bool | |
| optional_keylocker_check_in | bool | |
| optional_desk_check_in | bool | |
| optional_desk_check_out | bool | |
| optional_customcom | bool | |
| visible_online_check_in | bool | |
| visible_kiosk_check_in | bool | |
| visible_keylocker_check_in | bool | |
| visible_desk_check_in | bool | |
| visible_desk_check_out | bool | |
| visible_customcom | bool | |
| accepted | bool | |
| customer_communication_agreement_id | CustomerCommunicationAgreementID | |
| communication_event_id | CommunicationEventID | |
| desk_communication_id | DeskCommunicationID | |
| keylocker_communication_id | KeyLockerCommunicationID | |
| kiosk_communication_id | KioskCommunicationID | |
| customer_communication_id | CustomerCommunicationID | |
| appointment_id | AppointmentID |
CommunicationEvent Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | CommunicationEventID | |
| type | CommunicationEventType | Event type |
| ip | string | IP from which the Customer Answered |
| key_locker_pin_sent | bool | When the Type is Answered the Customer may have received a KeyLocker PIN |
| user_id | UserID | A User was responsible for this event being created |
| customer_communication_id | CustomerCommunicationID | CustomerCommunication Identifier that this event is related to |
| customer_id | CustomerID | A Customer was responsible for this event being created |
| customer_name | string | Name entered by the customer when answering a communication |
| customer_signature | string | Customer provided their signature |
| is_parking_gate_code_sent | bool | Is the parking gate code sent |
| is_automated | bool | This event was created automatically |
| user | User | |
| customer | Customer | |
| receivers | []CommunicationReceiver | |
| appointment_id | AppointmentID | |
| mailgun_message_id | string | |
| intervention_results | []CustomerCommunicationIntervention | |
| replacement_results | []CustomerCommunicationReplacement | |
| agreements | []CommunicationAgreement | |
| diagnose_overview_agreed_results | []DiagnoseOverviewAgreedResult | |
| diagnose_overview_declined_results | []DiagnoseOverviewDeclinedResult | |
| diagnose_overview_contact_results | []DiagnoseOverviewContactResult |
CommunicationResult Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| question_result_id | QuestionResultID | |
| customer_communication_id | CustomerCommunicationID | present for customer communications |
| desk_communication_id | DeskCommunicationID | present for desk communications |
| status | CommunicationResultStatus | present for desk check in/out and diagnose, where it is possible to answer for each question result |
| check_id | ChecklistID | |
| checklist_type | ChecklistType | |
| checklist_name | string | |
| checklist_order | int | |
| group_name | string | |
| group_order | int | |
| question_order | int | |
| question_options | []QuestionOption | |
| title | string | |
| price | float64 | |
| mechanic_fixed | bool | |
| mechanic_notes | string | |
| question_status | QuestionResultStatus | |
| customer_approved | bool | |
| images | []QuestionResultImage | |
| videos | []QuestionResultVideo | |
| answer_item | AnswerItem | |
| tyre_id | TyreID | |
| tyre_profile | float64 | |
| tyre | Tyre | |
| tyre_position | TyrePosition | |
| tyre_replacements | []TyreReplacement | |
| pin_type_id | PinTypeID |
CommunicationSetting Model

| Field | Type | Description |
|---|---|---|
| communication_detail_id | CommunicationSettingID | |
| color | string | Color |
| logo | string | Logo |
| welcome_text | string | Welcome text |
| welcome_picture | string | Welcome picture |
| success_text | string | Success text |
| repair_overview_welcome_text | string | Car Ready Welcome text |
| check_in_welcome_text | string | Checkin Welcome text |
| check_in_success_text | string | Checkin Success text |
| layout | CommunicationLayoutID | Layout |
| diagnose_overview_remarks_enabled | bool | Is Diagnose overview remarks enabled |
| checkin_remarks_enabled | bool | is checkin remarks enabled |
| phone_number | string | Phone number |
| string | ||
| dealer_location_id | DealerLocationID | Dealer Location Identifier |
| support_enabled | bool | Is support enabled |
| support_text | string | Support text |
| check_in_days_prior | int | Number of days before which online checkin can be send |
| online_check_in_send_pin | bool | Include PIN in online checkin |
| send_parking_gate_code | bool | Sending parking gate code is enabled |
| online_check_in_name_visible | bool | Name visible in online checkin |
| diagnose_overview_name_visible | bool | Name visible in diagnose overview |
| check_in_testing_mode | bool | Is testing mode for online checkin |
| check_in_testing_email | string | Testing email for online checkin |
| check_in_testing_phone | string | Testing phone for online checkin |
| counter_tablet_home_url | string | Home URL for the counter tablet |
| diagnose_cc_testing_mode | bool | Is testing mode enabled for diagnose communication |
| diagnose_cc_testing_email | string | Testing email for diagnose communication |
| diagnose_cc_testing_phone | string | |
| repair_cc_testing_mode | bool | Is testing mode enabled for repair communication |
| repair_cc_testing_email | string | Testing email for repair communication |
| repair_cc_testing_phone | string | Testing phone for repair communication |
| automatically_send_repair_overview_when_car_ready | bool | On setting a workorder in car ready state, automatically send repair overview |
| automatically_send_repair_overview_when_quality_check | bool | On performing quality check on a workorder, automatically send repair overview |
| automatically_send_repair_overview_on_car_ready_and_billed | bool | Automatically send a repair overview whenever car is ready and workorder is billed. |
| automatically_send_repair_overview_on_car_ready_and_out_of_shop | bool | Automatically send a repair overview whenever car is ready and moved out of shop. |
| disable_sending_automated_repair_overview_on_quality_issues | bool | Disable sending automated repair overview on quality issues, i.e. if enabled, repair overview will not be sent automatically on the quality check. |
| hide_price_for_automatic_repair_order | bool | When a repair overview is sent automatically this will hide the prices for the customer |
| website | string | Website |
| report_template_id | ReportTemplateID | Report template identifier |
| heading_position | HeadingPosition | Heading position |
| send_confirmation_emails | bool | Can send confirmation emails |
| enable_not_fixed_advised | bool | Is do not fix advised items enabled |
| enable_not_fixed_critical | bool | Is do not fix critical items enabled |
| cannot_decline_warranty_types | bool | Cannot decline interventions/question results which are pinned with warranty type |
| enable_not_fix_without_status | bool | Is do not fix without status items enabled, applicable to interventions which are not converted/connected to a check question result |
| skip_without_status_items | bool | Is skipping without status items enabled, applicable to interventions which are not converted/connected to a check question result |
| skip_optional_items | bool | Is skipping optional items enabled |
| hide_lease_intervention_price | bool | Hide price for interventions of lease appointment |
| hide_internal_intervention_price | bool | Hide price for internal intervention |
| hide_warranty_intervention_price | bool | Hide price for warranty type intervention |
| hide_recall_intervention_price | bool | Hide price for recall type intervention |
| hide_prices_in_desk_communication | bool | Hide prices in desk communication. Used when the location always expects the driver of the vehicle to not be the owner |
| block_automated_communication_for_lease_customer | bool | Block the automate communication for lease customers |
| is_sms_for_automated_customer_communication_enabled | bool | Is SMS enabled for the automated customer communication |
| is_bird_whats_app_for_automated_customer_communication_enabled | bool | Is Bird WhatsApp enabled for the automated customer communication |
| is_customer_name_in_kiosk_checkin_enabled | bool | Is customer name enabled in kiosk checkin |
| is_customer_signature_in_kiosk_checkin_enabled | bool | Is customer signature enabled in kiosk checkin |
| is_customer_ok_read_only_in_desk_check_in | bool | If set to true, the Customer OK option in desk checkin is read only, i.e. Customer cannot set ok for the results |
| is_desk_contact_info_enabled | bool | Show the customer a popup on desk-checkin for the customer to enter their contact information |
| external_js | string | External JS code snippet |
| external_css | string | External CSS code snippet |
| google_analytics_id | string | Google Analytics ID |
| display_intervention_elements | bool | Display intervention elements |
| enable_closing_pop_up_on_cc | bool | Enable closing pop up on communications |
| show_parking_location_note_on_kiosk_check_in | bool | If enabled, then kiosk checkin will show an option to customer to add a parking note, this note is treated as parking note on a workorder. |
| is_service_tracker_enabled | bool | If true, then customer communication will be displayed via service tracker. |
| service_tracker_check_in_message | string | Custom message to be displayed on service tracker at Check In stage |
| service_tracker_check_in_car_diagnostic_message | string | Custom message to be displayed on service tracker between check in and diagnostic stage |
| service_tracker_car_diagnostic_message | string | Custom message to be displayed on service tracker on car diagnostic stage |
| service_tracker_car_diagnostic_waiting_for_approval_message | string | Custom message to be displayed on service tracker between car diagnostic and waiting for approval stage |
| service_tracker_waiting_for_approval_message | string | Custom message to be displayed on service tracker on waiting for approval stage |
| service_tracker_waiting_for_approval_repair_items_message | string | Custom message to be displayed on service tracker between waiting for approval and repair items stage |
| service_tracker_repair_items_message | string | Custom message to be displayed on service tracker on repair items stage |
| service_tracker_final_check_message | string | Custom message to be displayed on final check stage |
| service_tracker_picked_up_car_message | string | Custom message to be displayed on pick up car stage |
| is_star_rating_enabled | bool | Is star rating enabled |
| star_rating_experience_message | string | Star rating experience message |
| star_rating_service_message | string | Star rating service message |
| star_rating_speed_message | string | Star rating speed message |
| layouts | []CommunicationLayout | List of communication layouts |
| language_code | LanguageCode | Language code |
| vat | float64 | VAT |
| include_vat | bool | Is VAT Included |
| dms_price_enabled | bool | Is DMS price enabled |
| total_pdf_enabled | bool | is total pdf enabled |
| dealer_name | string | Dealer name |
| location_name | string | Location name |
| location_street | string | Location street |
| location_postal_code | string | Location postal code |
| location_city | string | Location city |
| location_country | string | Location country |
| headline | string | Headline |
| summer_a_threshold | float64 | A Threshold for Summer tyres |
| summer_n_threshold | float64 | N Threshold for Summer tyres |
| winter_a_threshold | float64 | A Threshold for Winter tyres |
| winter_n_threshold | float64 | N Threshold for Winter tyres |
| all_season_a_threshold | float64 | A Threshold for All season tyres |
| all_season_n_threshold | float64 | N Threshold for All season tyres |
| mechanic_name | string | Mechanic name |
| show_mechanic_name | bool | Show mechanic name |
| is_employee_name_visible | bool | Is employee name visible |
| has_sms | bool | Is SMS supported |
| has_whats_app | bool | Is WhatsApp supported |
| is_acses_enabled | bool | Is Acses Enabled |
| maintenance_mode | bool | Is Maintenance Mode enabled |
| generate_ai_summary | bool | Generating summary for customer communication is enabled for this location |
Customer Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | CustomerID | Customer's ID |
| meta_dms_nr | string | Some DMS can have multiple contacts for a single customer. This field, alongside dms_nr, help to identify which contact should be referenced |
| dms_nr | string | Identifier in DMS |
| last_appointment_date | time.Time | Last appointment this Customer was associated with |
| last_disposal_at | time.Time | When the customer information was removed due to no longer being associated with recent appointments |
| company | string | Company name |
| is_lease_company | bool | Is the company a lease company |
| is_internal | bool | Is this customer for Internal usage |
| is_internal_edited | bool | IsInternal was edited through Claire |
| title | string | Salutation title of the customer |
| initials | string | Initials of the customer |
| firstname | string | First Name of the customer |
| surname | string | Surname of the customer |
| street | string | Street address of the customer |
| house_nr | string | House Number of the customer |
| postcode | string | Postcode of the customer |
| place | string | Place of the customer |
| country | string | Country of the customer |
| block_communication | bool | Customer has opted for no communication |
| preferred_communication_channel | CommunicationChannelID | Preferred communication channel opted by the customer |
| email_private | string | Private Email |
| email_business | string | Business Email |
| tel_business_nr | string | Business Landline Number |
| tel_private_nr | string | Private Landline Number |
| tel_mobile_private | string | Private Mobile Number |
| tel_mobile_business | string | Business Mobile Number |
| tel_mobile_private_invalid_for_whats_app | string | Invalid private mobile number for WhatsApp |
| tel_mobile_business_invalid_for_whats_app | string | Invalid business mobile number for WhatsApp |
| dealer_location_id | DealerLocationID | Location Identifier of the customer |
| dealer_id | DealerID | Dealer ID of the customer |
| dealer_location | DealerLocation | |
| dealer | Dealer | |
| appointments | []Appointment | |
| cars | []Car | |
| customer_type | CustomerType | Customer type |
| notes | []CustomerNote | List of notes of the customer |
CustomerCommunication Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| customer_communication_id | CustomerCommunicationID | CustomerCommunication Identifier |
| receptionist_key | string | Key given and used by the Receptionist |
| status | CommunicationStatus | Current status of this CustomerCommunication |
| version | int | Version of Online-CheckIn at the time this was created |
| correct_phone | string | Phone Number given by the Customer |
| correct_email | string | Email given by the Customer |
| star_rating_experience_message | string | Message sent to the customer for the star rating experience |
| star_rating_experience | int | Overall experience rating provided by the customer |
| star_rating_service_message | string | Message sent to the customer for the star rating service |
| star_rating_service | int | Rating provided by the customer for the services |
| star_rating_speed_message | string | Message sent to the customer for the star rating speed |
| star_rating_speed | int | Overall rating provided by the customer to the speed of all the process |
| star_rating_feedback | string | Feedback provided by the customer |
| customer_id | CustomerID | Customer who this CustomerCommunication is for |
| appointment_id | AppointmentID | Appointment from which this CustomerCommunication originated from |
| car_id | CarID | Car from which the Appointment is for |
| receptionist_id | UserID | Receptionist who last interacted with this CustomerCommunication |
| dealer_location_id | DealerLocationID | DealerLocation from which the Appointment is from |
| note | string | Note set by Receptionist |
| customer | Customer | Customer who this CustomerCommunication is for |
| appointment | Appointment | Appointment from which this CustomerCommunication originated from |
| car | Car | Car from which the Appointment is for |
| receptionist | User | Receptionist who last interacted with this CustomerCommunication |
| check_in_results | []CheckInResult | CheckInResults that the Customer was sent during online or desk or keylocker check-in |
| check_in_remarks | []CheckInRemark | CheckInRemarks that the Customer created |
| diagnose_overview_results | []CommunicationResult | Diagnose Overview Results that the customer was sent in diagnose overview |
| diagnose_overview_remarks | []DiagnoseOverviewRemark | Remarks entered during diagnose overview by the customer |
| results | []CommunicationResult | CommunicationResults that the customer was sent in diagnose or repair overview |
| agreements | []CommunicationAgreement | CommunicationAgreements that have been agreed |
| events | []CommunicationEvent | CommunicationEvents that have occurred |
| is_receptionist | bool | The Receptionist is currently interacting with this CustomerCommunication |
| settings | CommunicationSetting | Settings for this CustomerCommunication |
| frontend_update_required | bool | When this is true, data has been modified on the contained entities and so the frontend must show this new data to the customer |
DiagnoseOverviewRemark Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | DiagnoseOverviewRemarkID | |
| customcom_id | CustomerCommunicationID | Customer communication ID |
| title | string | Title given by the Customer |
| description | string | Description given by the Customer |
| customer_name | string | Name of the Customer |
| receptionist_handled | bool | A Receptionist has handled this remark |
| visible_to_mechanic | bool | Is visible to mechanic |
| attachments | []DiagnoseOverviewAttachment | Attachments |
| appointment_id | AppointmentID | Appointment Identifier |
Intervention Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | InterventionID | |
| dms_nr | string | Intervention ID in the DMS |
| title | string | Intervention title |
| description | string | Description of what the intervention is for |
| internal_note | string | An internal note never shown to the customer |
| price | float64 | Relative cost of intervention that should be covered by the Customer |
| ordering | int | A DMS can define its own ordering that needs to be replicated in the UI. When this is null, order by the ID ascending. |
| vat | float64 | VAT |
| labor_minutes | int | Sum of minutes for labor elements |
| dms_price_edited | bool | |
| dms_deleted | bool | Intervention was deleted in the DMS but we cannot delete it due to relations |
| mechanic_notes | string | Mechanic's notes |
| pinned | bool | Whether the intervention is pinned in Claire |
| snoozed | bool | Whether the intervention is snoozed in Claire |
| is_declined_by_customer | bool | Whether the customer declined the intervention in Claire |
| is_signed_by_customer | bool | The customer has explicitly seen and signed for this intervention. Whether it's agreed or declined to be fixed, is not handled by this field |
| last_mechanic_name | string | The last mechanic to update the intervention |
| mechanic_fixed | bool | Was the intervention fixed by a Mechanic |
| customer_ok | bool | Customer has agreed to the intervention |
| is_local | bool | Intervention was created manually in Claire |
| is_maintenance | bool | Intervention is of the type maintenance |
| is_internal_in_dms | bool | Intervention is internal in the dms |
| is_warranty_in_dms | bool | Intervention is warranty in the dms |
| visible_to_customer | bool | Intervention is visible to the Customer |
| appointment_id | AppointmentID | |
| question_result_id | QuestionResultID | Question result identifier if converted from Question Result |
| check_in_remark_id | CheckInRemarkID | |
| diagnose_overview_remark_id | DiagnoseOverviewRemarkID | |
| keylocker_remark_id | KeyLockerRemarkID | |
| kiosk_remark_id | KioskRemarkID | |
| snooze_id | SnoozeID | |
| check_in_result_id | CheckInResultID | |
| dealer_location_id | DealerLocationID | |
| communication_result_status | CommunicationResultStatus | |
| checkin_attachments | []CheckInAttachment | |
| diagnose_overview_attachments | []DiagnoseOverviewAttachment | |
| pin_history | []Pin | |
| snooze_history | []Snooze | |
| check_in_result | CheckInResult | |
| check_in_remark | CheckInRemark | |
| diagnose_overview_remark | DiagnoseOverviewRemark | |
| keylocker_remark | KeyLockerRemark | Customer remark during keylocker check-in that has been converted to this intervention. |
| kiosk_remark | KioskRemark | Customer remark during kiosk check-in that has been converted to this intervention. |
| snooze | Snooze | |
| car_id | CarID | |
| elements | []InterventionElement | Elements of the Intervention |
| pin_type_id | PinTypeID | Type of the pin |
| pin_status_id | PinStatusID | Status of the pin |
| warranty_type_id | WarrantyTypeID | If pinned, and if it is warranty, then type of warranty |
| question_result_status | QuestionResultStatus | Status of the question result if converted from Question Result |
| attachments | []InterventionAttachment | Attachments of the Intervention |
| reference_nr | string | The client can provide a reference nr in order to map to the ID. Used when frontend are creating an appointment and can have multiple interventions. |
| pending_checklists | []InterventionPendingChecklist | Checklists that were selected to be completed for this intervention |
| replacements | []VehicleTyreReplacement | Replacements to be mounted on the vehicle or storage |
| intervention_code | string | The intervention code, usually defined as the menu code |
| dms_wo_number | string | The WONr of the appointment, so this intervention can be paired to its appointment |
User Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | UserID | Claire User ID |
| dms_nr | string | DMS Number of the Claire User |
| dms_location_source | string | DMS Location Source |
| external_user_id | string | External User ID |
| first_name | string | First name |
| last_name | string | Last name |
| string | Email in Claire | |
| username | string | Username in Claire |
| mobile | string | Mobile phone numer |
| phone | string | Phone numer |
| birthday | time.Time | Birthdate |
| last_active | time.Time | Last activity date in Claire |
| address1 | string | Address line 1 |
| address2 | string | Address line 2 |
| last_password_change | time.Time | Last password change date in Claire |
| status | UserStatusID | User status |
| web_version | string | Web version the user is using |
| app_version | string | App version the user is using |
| camera_version | string | Camera app version the user is using |
| location_column_visible | bool | Is Location Visible |
| multi_device_login_enabled | bool | Is user allowed to login from multiple devices simultaneously |
| is_combi_user | bool | Indicates if a user can use both web and tablet |
| has_leased_tablet | bool | Indicates if the user has a tablet that is used |
| list_appointments_by_scheduled_range | bool | Indicates if a user can list appointments by scheduled range |
| csv_download | bool | Indicates if a user can download CSV files |
| profile_picture | string | Profile picture URL |
| language_code | LanguageCode | Default language for the user |
| dealer_id | DealerID | Default Dealer ID when loggin in |
| dealer_location_id | DealerLocationID | Default Location ID when loggin in |
| role_id | RoleID | Default Role ID when loggin in |
| landing_page_id | LandingPageID | Default Landing Page ID when loggin in |
| is_counter_tablet_user | bool | Indicates if a user is a counter tablet user |
| is_keylocker_allowed | bool | Indicates if a user is allowed to use key locker |
| is_tablet_translation_ai_enabled | bool | Indicates if a user can use AI translations on the tablet |
| is_available | bool | |
| pin_status_notification_enabled | bool | Indicates if a user is allowed to receive pin status notifications |
| customer_waiting_car_in_shop_notification_enabled | bool | If true, user will get notified by claire notification for workorder with car in shop and customer waiting status. |
| tyre_ordering_enabled | bool | Indicates if a user is allowed to order tyres |
| shop_status_same_day_filter_enabled | bool | Indicates if same day shop status filter is enabled |
| shop_status_next_day_filter_enabled | bool | Indicates if next day shop status filter is enabled |
| shop_status_to_order_filter_enabled | bool | Indicates if to order shop status filter is enabled |
| shop_status_backorder_filter_enabled | bool | Indicates if backorder shop status filter is enabled |
| shop_status_arrived_parts_filter_enabled | bool | Indicates if arrived parts shop status filter is enabled |
| star_color_green_enabled | bool | Indicates if filtering on green star color is enabled |
| star_color_red_enabled | bool | Indicates if filtering on red star color is enabled |
| star_color_blue_enabled | bool | Indicates if filtering on blue star color is enabled |
| star_color_yellow_enabled | bool | Indicates if filtering on yellow star color is enabled |
| working_on | AppointmentID | ID of the appointment the user is currently working on |
| day_planner_appointments_collapsed_by_default | bool | Indicates if appointments are collapsed by default on the dayplanner. |
| day_planner_cars_ready_collapsed_by_default | bool | Indicates if cars ready are collapsed by default on the dayplanner. |
| day_planner_quality_control_collapsed_by_default | bool | Indicates if quality control is collapsed by default on the dayplanner. |
| car_type_filter | CarTypeID | Filter for what type of vehicle is visible in main/dayoverview page |
| is_vat_enabled_on_wo | bool | if vat is enabled at location level then this flag is the default value for the vat toggle on appointment detail pages. |
| is_desktop_notifications_enabled | bool | Indicates if desktop notifications are enabled. Note: This field is not used by V7. |
| my_locations | []DealerLocationID | Locations the user has access to |
| dealers | []Dealer | Dealers the user has access to |
| dealers_ids | []DealerID | Dealer IDs the user has access to |
| location_ids | []DealerLocationID | Location IDs the user has access to |
| dealer_location | DealerLocation | Dealer location the user has access to |
| device_id | DeviceID | Device ID of the user |
| counter_tablet_key | string | come from the auth user, not saved in the DB to last only as long as the session |
| role_name | string | Role name of the user |
| dpo | bool | Indicates if the user is a DPO user |
| acl | []ACL | ACLs of the user |
| brand_ids | []BrandID | List of brand identifiers |
| brands | []Brand | List of brands |
| onei_planning_monteur_id | OneiPlanningMonteurID | |
| planit_planning_mechanic_id | PlanItPlanningMechanicID | PlanIt Planning Mechanic ID of the user |
| notification_element_ids | []NotificationElementID | Notification element IDs of the user |
| dealer_name | string | Name of the dealer |
| location_name | string | Name of the location |
| appointment_id | AppointmentID | AppointmentID, used internally |
| appointment_status_identifiers | []StatusIdentifier | StatusIdentifiers filters of the user |
| dayplanner_appointment_status_identifiers | []DayPlannerAppointmentStatusesFilter | StatusIdentifiers filters of the user on the Dayplanner |
| dayplanner_brand_ids | []BrandID | List of brandIDs of the user on the Dayplanner |
| has_leased_device | bool | Indicates if the user has a leased device |
| export_events | []ExportEvent | List of exportEvents for the user that have not been downloaded yet |
VehicleTyreReplacement Model

| Field | Type | Description |
|---|---|---|
| created_on | time.Time | Creation date in Claire |
| updated_on | time.Time | Last update date in Claire |
| id | VehicleTyreReplacementID | - |
| remark | string | Remarks from the receptionist or mechanic |
| selected | bool | Whether this replacement was selected by the customer to be mounted on the car or not |
| mounted | bool | Whether this replacement was mounted on the vehicle/storage or not |
| price | float64 | Price of this replacement tyre |
| discount | float64 | Discount in the price |
| net_margin_euro | float64 | Margin applied from a tyre discount as a fixed euro amount |
| net_margin_percent | float64 | Margin applied from a tyre discount as a percentage |
| tyre_team_system_number | TyreTeamSystemNumber | Reference to the TyreTeam Tyre ID |
| tyre_team_channel | TyreTeamChannelID | Which Channel TyreTeam was queried through |
| delivery_method | string | Delivery method chosen, if there was one |
| source | TyreReplacementSource | This tyre was created from a specific source |
| order_placed | bool | Order placed to a tyre supplier |
| visible_to_customer | bool | Whether the replacement is visible to the customer in communication for selection |
| tyre_id | TyreID | Claire Tyre ID |
| axle | int | Axle of the truck tyre |
| position | TyrePosition | Position of the tyre on the vehicle |
| intervention_id | InterventionID | Intervention Identifier that allows the mechanic to mount the tyres |
| appointment_id | AppointmentID | Which appointment these replacements are applied to |
| tyre | Tyre | Tyre details for this replacement |
| profile | float64 | Tyre tread profile entered by the mechanic after it was mounted on the car |
| communication_result_status | CommunicationResultStatus | The answer from the customer in a communication |
Changelog
This section contains changes related to the CustomCom service. Changes will be included if:
- A new endpoint is added
- A new field is added to an existing endpoint
- Field description changes
- A field is deprecated
Notes - 08.07.2026
The following endpoint has been added:
/v1/notes/high_voltage/refresh
WO TyreReplacements - 14.06.2026
The request of /v2/diagnose_overview/answer changed for WO tyre replacements:
resultswas removedreplacementswas added, holding the replacements answered by the customer
Communication - 25-10-2025.
The following endpoint is included with this release:
/v1/communication/summarize
Repair Overview PDF Download - 07-8-24
/v1/repair_overview/download
Initial release - 03.11.2022.
The following endpoints are included with initial release:
/v1/communication/read/v1/communication/upload_attachment/v1/online_checkin/answer/v1/diagnose_overview/answer
Errors
The Claire Automotive Support APIs uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request : Your request is invalid. |
| 401 | Unauthorized : Your API key is wrong. |
| 404 | Not Found : The specified endpoint could not be found. |
| 405 | Method Not Allowed : You tried to access server with an invalid method. |
| 429 | Too Many Requests : You're making too many requests. |
| 500 | Internal Server Error : We had a problem with our server. Try again later. |
| 503 | Service Unavailable : We're temporarily offline for maintenance. Please try again later. |