How to update an Appointment
You can update appointments in myKaarma for customer visits so that your Service Advisors are aware of the changed schedule and your customers could be notified/reminded for their scheduled visit.
The following endpoints can help you with forming a proper request to update an appointment:
- Parameters Used:
{{dept_uuid}}
- UUID of department for which you want to fetch the customer.{{test_vin}}
- VIN of the vehicle for which you want to search the customer.{{basic_auth_token}}
- Authorization token generated using your mykaarma credentials.{{dealer_uuid}}
- UUID of dealer for which you want to fetch the customer{{phone_number}}
- Phone number of the customer{{test_vin_customer_uuid}}
- Customer UUID for test VIN (can be computed from 'Get a customer's details' request){{test_vin_vehicle_key}}
- VehicleKey from DMS for test VIN (can be computed from 'vehicles' in 'Get a customer's details' request){{test_vin_vehicle_uuid}}
- Vehicle UUID for test VIN (can be computed from 'vehicles' in 'Get a customer's details' request){{assignee_da_uuid}}
- UUID of the Chosen Advisor (Can be computed from 'Get Advisors' endpoint){{creator_da_uuid}}
- UUID of the advisor creating the Appointment{{customer_email_id}}
- Email ID of customer to be used for appointment related communication{{customer_phone_number}}
- Phone no. of customer to be used for appointment related communication (Example - +19110012345)
- Search for a Customer
curl --location --request GET 'https://api.mykaarma.com/customer/v2/department/{{dept_uuid}}/customer/list?searchTerm={{test_vin}}&searchPreference=vehicle&maxResults=50' \
--header 'Authorization: {{basic_auth_token}}'
- Search Customer - Exact
curl --location --request POST 'https://api.mykaarma.com/customer/v2/customer/list/exact' \
--header 'Authorization: {{basic_auth_token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"dealerUUIDList": [
"{{dealer_uuid}}"
],
"includeDealerOrderInfo": false,
"maxResults": 150,
"searchMap": {
"COMMUNICATIONVALUE_EXACT": [
"{{phone_number}}"
]
}
}'
- Get a customer's details: You'll need to use the customer UUID you'd have received from previous request(s)
curl --location --request GET 'https://api.mykaarma.com/customer/v2/department/{{dept_uuid}}/customer/{{test_vin_customer_uuid}}' \
--header 'Authorization: {{basic_auth_token}}'
- Get Opcodes:
curl --location --request POST 'https://api.mykaarma.com/appointment/v2/department/{{dept_uuid}}/fetch/opcodes' \
--header 'Authorization: {{basic_auth_token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"communicationCodes": [],
"dealerAppSchedulerVisibility": null,
"dealerUUIDList": [],
"endPosition": null,
"eventDealerAssociateUuid": null,
"getMkAndDmsSimilarOpcodeCount": true,
"getTotalCount": true,
"isLastPage": true,
"mobileServiceVisibility": null,
"onlineSchedulerVisibility": true,
"opCodes": [],
"requesterUserUUID": "string",
"resultSize": null,
"searchToken": null,
"serviceCartVisibility": null,
"sortDirection": "ASCENDING",
"sortPreference": "OPCODE",
"startPosition": 0,
"uuidList": []
}'
- Get Advisors:
curl --location --request GET 'https://api.mykaarma.com/appointment/v2/dealer/{{dealer_uuid}}/eligibleAdvisor/list' \
--header 'Authorization: {{basic_auth_token}}'
- Get Transport options:
curl --location --request GET 'https://api.mykaarma.com/appointment/v2/department/{{dept_uuid}}/transportOption/list' \
--header 'Authorization: {{basic_auth_token}}'
- Get Appointment Slots:
{{date}}
- Date from which you want to fetch slots. Example: 2022-01-20{{daIDList}}
- List of dealer associates fetched using 'Get Advisors' endpoint. Make sure this is url-safe. Example: %5B51739%5D (url safe version of [51739] ){{altTransportation}}
- Custom Name of transport option fetched using 'Get Transport options' endpoint. Example: Loaner
curl --location -g --request GET 'https://api.mykaarma.com/appointment/v2/department/{{dept_uuid}}/date/{{date}}/vacantSlotInfo?daIDList={{daIDList}}&numberOfDays=7&isWebScheduler=true&altTransportation={{altTransportation}}' \
--header 'Authorization: {{basic_auth_token}}'
- Update Appointment:
{{altTransportation}}
- Custom Name of transport option fetched using 'Get Transport options' endpoint. Example: Loaner{{transportOptionUuid}}
- UUID of transport option fetched using 'Get Transport options' endpoint. Example: -f_LNFHYWiHQg4AbTH-b_qmDTO8CKwknvhCtpYFmbWGw{{transportation}}
- Option Name of transport option fetched using 'Get Transport options' endpoint. Example: Loaner{{appointmentStartDateTime}}
- Start timestamp of the appointment. You can fetch data for valid slots using the 'Get Appointment Slots' endpoint. This data should be in the format same as the example. (Example: 2021-12-24T07:00:00 ){{appointmentEndDateTime}}
- End timestamp of the appointment. This timestamp should be exactly one second less that the beginning of next slot. You can view valid slots using the 'Get Appointment Slots' endpoint. (Example: 2021-12-24T07:29:59 ){{title}}
- Can be a success or a faliure.{{type}}
- Can be a push or a pull.
curl --location -g --request PATCH 'https://api.mykaarma.com/appointment/v2/department/{{dealerDepartmentUuid}}/appointment/{{appointmentUuid}}' \
--header 'Authorization: {{basic_auth_token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUuid": "{{test_vin_customer_uuid}}",
"vehicleInformation": {
"vin": "{{test_vin}}",
"vehicleKey": {{test_vin_vehicle_key}},
"vehicleUuid": "{{test_vin_vehicle_uuid}}"
},
"appointmentInformation": {
"appointmentStartDateTime": "2021-12-24T07:00:00",
"appointmentEndDateTime": "2021-12-24T07:29:59",
"assignedUser": {
"uuid": "{{assignee_da_uuid}}",
"deptUUID": "{{dept_uuid}}"
},
"creatorUser": {
"uuid": "{{creator_da_uuid}}",
"deptUUID": "{{dept_uuid}}"
},
"serviceList": [
{
"title": "OIL",
"description": "Oil Change",
"price": "50"
}
],
"customerAppointmentPreference": {
"emailConfirmation": true,
"textConfirmation": true,
"emailReminder": true,
"textReminder": true,
"confirmationEmail": "vmnbk.oa.vjhj@fcjjgkj.com",
"confirmationPhoneNumber": "+19524953374"
},
"comments": "Comment String",
"internalNotes": "Internal Note String",
"mileageText": "1000",
"recall": false,
"transportOption": {
"altTransportation": "Loaner",
"transportOptionUuid": {{TRANSPORT_OPTION_UUID}},
"transportation": "Loaner"
}
},
"appointmentMetaData": {
"dmsMetaData": {
"type": "PUSH",
"title": "SUCCESS",
"description": "",
"vehicleUuid": {{VEHICLE_UUID}},
"dealerAssociateId":"118759"
},
"appointmentData": null
}
}
'
'