Skip to main content

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.
dealerOrderUuid
stringnullable
isUpdate
boolean
messageDTO
object
The message — channel, direction, content, sender/recipient details, and nested metadata.
uuid
string
id
number
messageType
enum
protocol
enum
fromName
stringnullable
fromNumber
stringnullable
toName
stringnullable
toNumber
stringnullable
messageSize
numbernullable
sentOn
datetimenullable
receivedOn
datetimenullable
tags
stringnullable
emailMessageId
stringnullable
communicationUid
stringnullable
messagePurpose
stringnullable
deliveryStatus
stringnullable
dealerDepartmentUuid
stringnullable
twilioDeliveryFailureMessage
stringnullable
numberofMessageAttachments
numbernullable
isManual
booleannullable
customerUuid
stringnullable
customerName
stringnullable
dealerUuid
stringnullable
dealerAssociateUuid
stringnullable
isRead
booleannullable
isArchive
booleannullable
messageExtnDTO
objectnullable
messageMetaDataDTO
objectnullable
docFiles[]
arraynullable
messageTags
objectnullable
whatsAppMessageDTO
objectnullable
draftMessageMetaDataDTO
objectnullable
messageSnoozeDataDTO
objectnullable
messagePredictionDTOSet[]
arraynullable
voiceCallDTO
objectnullable
{
  "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.