Message Event
The message event fires every time a message is sent or received in myKaarma, or when an existing message is updated. This covers all communication channels — text (SMS), email, voice calls, WhatsApp, and internal notes.
Use the messageDTO.messageType and messageDTO.protocol fields to determine the direction and channel of the message, and isUpdate to distinguish new messages from updates to existing ones.
Field Reference
payloadTop-level payload for the message event.
dealerOrderUuidisUpdatemessageDTOThe message — channel, direction, content, sender/recipient details, and nested metadata.stringnumberenumenumstringnullablestringnullablestringnullablestringnullablenumbernullabledatetimenullabledatetimenullablestringnullablestringnullablestringnullablestringnullablestringnullablestringnullablestringnullablenumbernullablebooleannullablestringnullablestringnullablestringnullablestringnullablebooleannullablebooleannullableobjectnullableobjectnullablearraynullableobjectnullableobjectnullableobjectnullableobjectnullablearraynullable
uuididmessageTypeprotocolfromNamefromNumbertoNametoNumbermessageSizesentOnreceivedOntagsemailMessageIdcommunicationUidmessagePurposedeliveryStatusdealerDepartmentUuidtwilioDeliveryFailureMessagenumberofMessageAttachmentsisManualcustomerUuidcustomerNamedealerUuiddealerAssociateUuidisReadisArchivemessageExtnDTOmessageMetaDataDTOdocFiles[]messageTagswhatsAppMessageDTOdraftMessageMetaDataDTOmessageSnoozeDataDTOmessagePredictionDTOSet[]voiceCallDTO{
"id": "a7b9c1d3-e5f7-4891-ab23-cd45ef678901",
"timestamp": 1728542293678,
"dealeruuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
"departmentuuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
"type": "messages",
"payload": {
"dealerOrderUuid": "Im4gFqCoWlZn1jN6uVtMrDk2ShBxPwQ8eJiCfYnMaU5",
"isUpdate": false,
"messageDTO": {
"uuid": "Gl2eDoAmUjXl9hL4sMrPbIi0QfZwN8OvCdGkBcHntE3",
"id": 100042,
"messageType": "S",
"protocol": "X",
"fromName": "John Smith",
"fromNumber": "3108170196",
"toName": "myKaarma Testing",
"toNumber": "3109880001",
"messageSize": 1,
"sentOn": "2025-09-27 14:32:00",
"receivedOn": "2025-09-27 14:32:05",
"tags": null,
"emailMessageId": "CABc1234xyz@mail.gmail.com",
"communicationUid": "Wq7nJhXtGpBmNd3KvRzYf2kAcEiLoU8sTPeCbHwOyM1",
"messagePurpose": "INCOMING_MESSAGE",
"deliveryStatus": "delivered",
"dealerDepartmentUuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
"twilioDeliveryFailureMessage": null,
"numberofMessageAttachments": 0,
"isManual": false,
"customerUuid": "Ho3fEpBnVkYm0iM5tUsMqCj1RgAw9PxO7eIhDzNlbT4",
"customerName": "myKaarma Testing",
"dealerUuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
"dealerAssociateUuid": "4f8b2d6a0e4c8f2b6d0a4c8b2d6f0e4b8d2f6a0c4e8b2d6a0f4c8e2b6d0a4c8",
"isRead": false,
"isArchive": false,
"messageExtnDTO": {
"messageUuid": "Gl2eDoAmUjXl9hL4sMrPbIi0QfZwN8OvCdGkBcHntE3",
"messageBody": "Thank you for contacting us! How can we help you today?",
"subject": "Your Service Appointment"
},
"messageMetaDataDTO": {
"messageUuid": "Gl2eDoAmUjXl9hL4sMrPbIi0QfZwN8OvCdGkBcHntE3",
"metaData": {
"appointmentUuid": "Nb8hEtSrXwOq2mV5dZfBjG7cYpKu3IAixRgTlPnCa0e"
}
},
"docFiles": [
{
"messageUuid": "Gl2eDoAmUjXl9hL4sMrPbIi0QfZwN8OvCdGkBcHntE3",
"docFileName": "att_abc123.jpg",
"originalFileName": "photo.jpg",
"fileExtension": "jpg",
"mimeType": "image/jpeg",
"docSize": "204800",
"thumbnailFileName": "thumb_abc123.jpg",
"mediaPreviewURL": null
}
],
"messageTags": {
"tagTypes": [],
"tags": []
}
},
"voiceCallDTO": {
"voiceGateway": "T",
"callingParty": "3108170196",
"party1": "3108170196",
"party1Prompt": null,
"party2": "3109880001",
"party2Prompt": null,
"callStatus": 1,
"callIdentifier": "CA1234abcdef5678",
"callDateTime": "2025-09-27 14:30:00",
"recordCall": true,
"recordingUrl": null,
"transcribeCall": false,
"transcribedText": null,
"duration": 180,
"callBroker": "TWILIO",
"party2Delegate": null,
"insertTS": "2025-09-27 14:30:00",
"updateTS": "2025-09-27 14:33:00",
"childCallIdentifier": null
}
}
}note
In the actual webhook delivery, payload is a stringified JSON string (not an object). The example above shows it as a parsed object for readability.