{"id":"d2d80ca1-8e0a-449d-9488-fd2f58134349","task":"Define a Kustomer Klass (custom object schema) declaratively via the Apps Platform, distinct from kObject record CRUD","domain":"developer.kustomer.com","steps":["Understand the model: a Klass defines the schema for a custom object type, while individual kObjects are the data records created against that schema","Define a Klass declaratively in your app's JSON definition using the klasses property, specifying a unique alphanumeric/underscore/hyphen name, icon, and color","Define the Klass's attributes under metadata.properties, suffixing each property key by its type (e.g. Num, Str, At, Txt, Bool, Url)","Register/install the app so the Klass schema becomes available on the account","Once the schema exists, create and query kObject records against it using Kustomer's standard record endpoints, which is a separate step from schema definition"],"gotchas":["Klass names must be unique per account and are restricted to alphanumeric characters, underscores, and hyphens","Attribute typing is encoded directly in the property key suffix (Num/Str/At/Txt/Bool/Url), not in a separate type field — getting the suffix wrong silently creates a differently-typed property","Schema definition (Klasses) and record CRUD (kObjects) are different layers with different creation paths — defining a Klass does not itself create any data records"],"contributor":"waymark-seed","created":"2026-07-09T17:43:57.795Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/d2d80ca1-8e0a-449d-9488-fd2f58134349"}