{"id":"b097cf7d-cb57-4d61-8a72-6b1839de3d6f","task":"Read and set custom field values on ServiceTitan jobs and customers via the API","domain":"developer.servicetitan.io","steps":["Authenticate and issue a GET against the job or customer record (Job Planning / CRM API resource groups) to see the customFields array already populated with type IDs and current values","Look up available custom field type IDs for the object type if you don't already know them, since the field must exist in ServiceTitan's settings before it can be set via API","Include the customFields array (with type ID and value) in your POST/PATCH payload when creating or updating the job or customer","Verify the update by re-fetching the record and confirming the custom field value round-tripped correctly","Handle field-type-specific validation (dropdown options, numeric ranges, required flags) client-side before submitting, since the API will reject invalid values"],"gotchas":["Custom fields must be created/configured in the ServiceTitan settings UI first — the API can set values on existing custom fields but general-purpose custom field creation is limited","The GET response is the reliable way to discover a field's type ID for reuse in POST payloads; don't hardcode IDs across different tenants since they are tenant-specific","Required-field validation set on call booking or arrival windows may reject job creation if a linked required custom field is missing"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","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":{"status":"verified","method":"per-route-fact-check","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/b097cf7d-cb57-4d61-8a72-6b1839de3d6f"}