Skip to main content

Dealer Associate Event

The dealer associate event fires whenever a dealer associate (a dealership employee — service advisor, technician, manager, and so on) is created or updated. The payload mirrors DealerAssociateTransitionEventPayload from the kmanage-api repo.

This is a transition event: it carries both the state before the change (oldDealerAssociateExtendedDTO) and the state after it (newDealerAssociateExtendedDTO). There is no separate action field — a null oldDealerAssociateExtendedDTO means the associate was just created; otherwise compare the two objects to see what changed. Deactivation is an update, delivered as isValid flipping from true to false.

The two states can be identical

An update event does not guarantee a difference between oldDealerAssociateExtendedDTO and newDealerAssociateExtendedDTO. The event fires on any change to the underlying dealer-associate record, including changes to related data this payload does not carry — so the two objects can be byte-identical. Treat the event as "this associate changed, re-read what you need"; don't rely on a non-empty diff.

Field Reference​

payloadTop-level payload for the dealer associate event.
dealerAssociateUuid
string
userUuid
string
dealerDepartmentUuid
string
newDealerAssociateExtendedDTO
object
oldDealerAssociateExtendedDTO
objectnullable
{
  "id": "a7b9c1d3-e5f7-4891-ab23-cd45ef678901",
  "timestamp": 1728542293678,
  "dealeruuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
  "departmentuuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
  "type": "dealer-associates",
  "payload": {
    "dealerAssociateUuid": "9f4a17c2-3be8-4d05-91a7-6c0d28fb5e34",
    "userUuid": "5e0c73a9-84f1-42db-b6c8-1af9d20e7b56",
    "dealerDepartmentUuid": "8ec821aefe98664ab15df7c426c3c46f9c37d0b1aeda9ff58df3db89bb0a55a3",
    "newDealerAssociateExtendedDTO": {
      "id": 393302,
      "uuid": "9f4a17c2-3be8-4d05-91a7-6c0d28fb5e34",
      "userUuid": "5e0c73a9-84f1-42db-b6c8-1af9d20e7b56",
      "firstName": "Jane",
      "lastName": "Doe",
      "nickname": "Janey",
      "userName": "",
      "emailAddress": "jane.doe@example-motors.com",
      "cellPhone": "4155550142",
      "cellPhoneCountryCode": "1",
      "textNumber": "4155550142",
      "textCountryCode": "1",
      "isTextNumberVerified": true,
      "phoneCountryCode": "1",
      "associateDmsID": "4021",
      "imageUrl": "https://cdn.example.com/avatars/jane-doe.png",
      "bio": "12 years servicing trucks and SUVs.",
      "role": {
        "roleName": "Service Advisor",
        "roleAcronym": "SA"
      },
      "isValid": true,
      "userInviteStatus": "Active",
      "defaultThreadOwnerUserUUID": null,
      "outOfOffice": false,
      "outOfOfficeStartDate": "2026-07-29T16:27:12",
      "ssoFeatureEnabled": false,
      "isDealerMappedToSsoPartner": false,
      "isSsoPartnerMapped": false,
      "department": {
        "id": 12825,
        "uuid": "8ec821aefe98664ab15df7c426c3c46f9c37d0b1aeda9ff58df3db89bb0a55a3",
        "name": "Quick Lane",
        "departmentType": "V",
        "calendarUuid": "c3f81b47-90ae-4d26-8f15-72ba0e64d391",
        "brokerNumber": null,
        "communicationGroup": "G1",
        "phoneNumber": "4155550100",
        "textNumber": "4155550101",
        "emailAddress": "service@example-motors.com",
        "contactFName": "Alex",
        "contactLName": "Rivera",
        "dealer": {
          "id": 4002,
          "uuid": "cb731d36fd635ddd6ef8dd43500892b0c0249d1c01a46dbcc445a809c0a8e3b2",
          "name": "myKaarma Testing",
          "isValid": true
        }
      }
    },
    "oldDealerAssociateExtendedDTO": 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.