Skip to content
MOTOVIZION Docs

Customer Summaries

The Motovizion AI API allows you to retrieve customer chat transcripts, appointment details, and related data for use in your applications.

https://api.example.com/customer/chat/

HTTP Method:

POST

Content-Type:

application/json

The request body should be a JSON object with the following fields:

ParameterTypeRequiredDescription
appointment_uuidStringYesThe unique identifier for the appointment.
curl -X POST https://api.example.com/customer/chat/ \
-H "Content-Type: application/json" \
-H "X-API-Key: {API Key}" \
-d '{
"appointment_uuid": "{Appointment ID}"
}'

If your API key is missing or invalid, the server will respond with an error.

{
"status": "error",
"response": "Invalid API Key"
}
{
"status": "error",
"response": "Unauthorized"
}
import requests
import json
# API endpoint
url = 'https://api.example.com/customer/chat/'
# Data to send in the POST request
data = {
'appointment_uuid': ''
}
# Set the API key
api_key = ''
# Set the headers
headers = {
'Content-Type': 'application/json', # Specify JSON content type
'X-API-Key': api_key, # Pass the API key in the header
'Accept': 'application/json'
}
# Send the POST request
try:
response = requests.post(url, headers=headers, data=json.dumps(data))
# Check for HTTP errors
response.raise_for_status()
# Decode and display the API response
decoded_response = response.json()
print(json.dumps(decoded_response, indent=4))
except requests.exceptions.RequestException as e:
print(f"HTTP Request failed: {e}")

When you send a valid request to the Motovizion AI API, the response contains structured JSON data. Below is a detailed explanation of the fields included in the response.

{
"status": "success",
"response": true,
"appointment_date": "2025-12-31 14:30",
"appointment_uuid": "dFxdvajxqap4aFbpBkacHv4RJdp0Irg34QXjzBczecw",
"chat_code": "123456",
"customer_name": "John Doe",
"questions_asked":8,
"vehicle_id": "1HGCM82633A1DF456",
"summary": "Customer states the vehicle makes a grinding noise from the front end when turning at low speeds. The issue is intermittent. Customer also requested a loaner vehicle and asked for a quote on a brake inspection.",
"media": [
{
"type": "image",
"url": "https://prediag.mystore.com/src/uploads/IMG_1022.jpeg"
},
{
"type": "video",
"url": "https://prediag.mystore.com/src/uploads/VID_1023.mp4"
}
],
"transcript": [
{
"customer": "{AI Initiates Conversation}",
"assistant": "Hi, John! I see you've scheduled a visit for a grinding sound. To prepare for your appointment, I have a few questions.",
"chat_method": "voice"
},
{
"customer": "Sounds good. And just so I can plan ahead, will I be able to get a loaner car?",
"assistant": "Of course. I have noted your request for a loaner vehicle. Now, regarding the grinding noise, can you tell me when it occurs?",
"chat_method": "voice"
}
],
"line_items": [
{
"description": "Customer requested a loaner vehicle.",
"payable": false
},
{
"description": "Customer requested a quote for a brake inspection.",
"payable": true
}
],
"escalation_flag": true,
"tech_questions": true
}

Top-Level Fields:

Field NameTypeDescription
statusStringIndicates the success ("success") or failure ("error") of the request.
responseBooleantrue if the request has a summary, false if no summary available.
Field NameTypeDescription
appointment_dateStringDate and time of the appointment in YYYY-MM-DD HH:MM format.
appointment_uuidStringUnique identifier for the appointment.
customer_nameStringCustomers full name
vinStringVehicle Identification Number
summaryStringGenerated summary from conversation transcript
transcriptArrayFull transcript of conversation returned as array
mediaArrayReturns video/images associated with appointment if they exist
line_itemsArrayReturns all line items requested by customer
escalation_flagBooleanTrue if customer added any extra services, or dealer should be notified of change to appointment
questions_askedINTCount of questions the AI has asked
tech_questionsBooleanIf the appointment has tech initiated questions
{
'status' => 'success',
'response' => false,
'message' => 'No appointment found for the given UUID'
}
HTTP Status CodeDescription
400Missing required fields (e.g., appointment_uuid).
401Invalid or missing API key.
404Appointment not found for the provided appointment_uuid.