Skip to main content

Customer Event

The customer event fires every time a customer record is created or updated in myKaarma. The payload mirrors the response from the myKaarma Customer API. Full field documentation for customerWithVehicles is also available here.

Upcoming change — 29 September 2026

The customer object in this payload will include four read-only attribution fields, each a string or nullcreatorUserUuid, updaterUserUuid, creatorServiceSubscriberUuid and updaterServiceSubscriberUuid — identifying the user and API consumer that created and last updated the customer.

The createdBy and updatedBy fields will be enhanced to provide more granular source information and may then contain one of the following values:

KCUSTOMER_API, KAARMA_SERVICES, API_INTERNAL, API_EXTERNAL, DMS, DMS_CUSTOMER_PULL,
DMS_RO_PULL, DMS_FI_PULL, DMS_PARTS_PULL, DMS_APPOINTMENT_PULL, DMS_VEHICLE_PULL,
DMS_CUSTOMER_PUSH, OTHER

These values will also be returned for customers created or updated before this date.

What you need to change

  • Make the required changes on your side to consume the four new fields if needed, or ensure your consumer supports unknown fields.
  • Make the required changes to support the new possible values of createdBy and updatedBy, or ensure your consumer supports unknown values.

Important Notes

  • Customer events are pushed via an indexer job that runs once per second.
  • If a customer is updated multiple times within one second, you will receive a single event with the final state.

Field Reference

payloadTop-level payload for the customer event.
customerWithVehicles
object
Customer information and associated vehicles.
customer
object
Core customer profile — name, contact preferences, emails, and phone numbers.
customerUuid
string
customerKey
stringnullable
firstName
string
middleName
string
lastName
string
company
stringnullable
isBusiness
boolean
preferredLocale
string
preferredCommunication
enum
emails[]
array
phoneNumbers[]
array
availability
number
createdBy
enum
updatedBy
enum
vehicles[]
arraynullable
addresses[]
arraynullable
{
  "id": "a7b9c1d3-e5f7-4891-ab23-cd45ef678901",
  "timestamp": 1728542293678,
  "dealeruuid": "7c1e5a9f3b7d1e5a9c3e7b1f5d9a3c7e1b5f9d3a7c1e5b9f3d7a1c5e9b3f7d1",
  "departmentuuid": "3a7f1c9e2b5d8f0a4c6e9b1d3f5a7c0e2b4d6f8a1c3e5b7d9f0a2c4e6b8d0f2",
  "type": "customers",
  "payload": {
    "customerWithVehicles": {
      "customer": {
        "customerUuid": "Wq7nJhXtGpBmNd3KvRzYf2kAcEiLoU8sTPeCbHwOyM1",
        "customerKey": null,
        "firstName": "myKaarma",
        "middleName": "",
        "lastName": "Testing",
        "company": null,
        "isBusiness": false,
        "preferredLocale": "en-us",
        "preferredCommunication": "text",
        "emails": [
          {
            "emailAddress": "mykaarma.testing@gmail.com",
            "label": "home",
            "okToEmail": true,
            "isPreferred": true
          }
        ],
        "phoneNumbers": [
          {
            "phoneNumber": "+13108170196",
            "label": "cell",
            "okToCall": true,
            "okToText": true,
            "isPreferred": true
          }
        ],
        "availability": 1,
        "createdBy": "KCUSTOMER_API",
        "updatedBy": "KCUSTOMER_API"
      },
      "vehicles": [
        {
          "vehicleUuid": "Pr5jFwQmZnBt8kXaHdV3uI0yDgCeLsR6NvOcTpKqY4f",
          "vehicleKey": null,
          "vin": "1GD312CG0BF081737",
          "vehicleMake": "GMC",
          "vehicleModel": "Sierra 3500HD",
          "vehicleYear": "2011",
          "vehicleTrim": "Work Truck Long Box 2WD",
          "vehicleEngine": "6.0L V8 OHV 16V FFV",
          "isValid": true
        }
      ],
      "addresses": [
        {
          "type": "PRIMARY",
          "addressType": "P",
          "line1": "123 Main St",
          "line2": null,
          "zip": "90210",
          "state": "CA",
          "country": "USA",
          "isValid": true,
          "isPreferred": false
        }
      ]
    }
  }
}
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.

How to Test a Customer Event

  1. Login to https://app.mykaarma.com using the user credentials provided to you.

  2. In the Customer tab, click on NEW button:

    New Customer Button
  3. Fill in the fields in the Add Customer Dialog and click Save. You should receive an event on your webhook URL for this customer creation:

    New Customer Dialog
  4. In the Customer tab, search for and select the customer you want to edit:

    Search Customer
  5. Click on the EDIT button:

    Edit Customer Button
  6. Fill in/update the fields in the Edit Customer Dialog and click Save. You should receive an event on your webhook URL for this customer update:

    Edit Customer Dialog

FAQ

Are customer events 1:1 in terms of customer updates?

Not always, the indexer job runs once per second, so multiple updates within one second produce a single event with the final state.