# Update Matter

`lawmatics_update-matter` · Lawmatics MCP tool · Matters

Update an existing matter (legal case) in Lawmatics by ID: case title, contact fields, practice area, sub-status, staff assignment, tags, notes, and custom field values.

## Input

- **matterId** `string` (required, pattern: ^\d+$) — ID of the matter to update; a numeric string (e.g. '25')
- **caseTitle** `string` — Title of the matter/case
- **firstName** `string` — First name to set on the matter's contact
- **lastName** `string` — Last name to set on the matter's contact
- **email** `string(email)` (pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$) — Email address to set on the matter's contact
- **phone** `string` — Phone number to set on the matter's contact
- **practiceAreaId** `string` (pattern: ^\d+$) — ID of the practice area to assign; a numeric string (e.g. '986')
- **subStatusId** `string` (pattern: ^\d+$) — ID of the sub-status to assign; a numeric string (e.g. '6')
- **assignedStaffIds** `array` — User IDs of staff to assign to the matter; numeric strings. Replaces the current assignment; pass an empty array to unassign all staff
  - **[]** `string` (pattern: ^\d+$)
- **notes** `array` — Notes to create inline on update (write-only; not returned)
  - **[]** `object`
    - **name** `string` (required) — Note title
    - **body** `string` (required) — Note content
- **tags** `array` — Tag names to attach to the matter; missing tags are created
  - **[]** `string`
- **customFields** `array` — Custom field values to set; pass null as a value to clear that field
  - **[]** `object`
    - **id** `string | number` (required) — Custom field ID (the API returns it as a number; either a string or number is accepted)
    - **value** `string | number | boolean | null` (required) — Value to set (matches the field's type); pass null to clear the field

## Output

- **id** `string` (required) — Lawmatics matter ID of the updated matter
- **firstName** `string | null` (required) — First name of the matter's primary contact; null if unset
- **lastName** `string | null` (required) — Last name of the matter's primary contact; null if unset
- **email** `string | null` (required) — Primary email address of the matter's contact; null if unset
- **phone** `string | null` (required) — Primary phone number of the matter's contact; null if unset or not reported
- **caseTitle** `string | null` (required) — Title of the matter/case; null if unset or not reported
- **caseBlurb** `string | null` (required) — Short description of the matter; null if unset or not reported
- **status** `string | null` (required) — Matter status (e.g. "pnc", "hired", "lost"); null if not reported
- **subStatus** `string | null` (required) — Sub-status label within the status; null if unset or not reported
- **customFields** `array` (required) — Account-defined custom fields on the matter; empty array if none
  - **[]** `object`
    - **id** `string` (required) — Custom field definition ID, as a numeric string
    - **name** `string | null` (required) — Custom field display name; null if unset
    - **fieldType** `string | null` (required) — Custom field data type (e.g. text, date, select); null if unset
    - **value** `any` (required) — Raw custom field value; type varies by `fieldType`
    - **formattedValue** `any` (required) — Display-formatted custom field value; type varies by `fieldType`
- **createdAt** `string | null` (required) — When the matter was created, as an ISO 8601 timestamp; null if not reported
- **updatedAt** `string | null` (required) — When the matter was last updated, as an ISO 8601 timestamp; null if not reported
- **relationships** `object` (required) — JSON:API relationship pointers to related records as {id,type} stubs. Not materialized — follow a pointer by calling that resource's own get/find tool (e.g. type 'contact' -> get-contact, type 'company' -> get-company, type 'user' -> get-user). All keys coalesce to null / [] when the echo omits the relationships envelope.
  - **source** `object | null` (required) — Lead source pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **stage** `object | null` (required) — Pipeline stage pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **campaign** `object | null` (required) — Marketing campaign pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **practiceArea** `object | null` (required) — Practice area pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **salesperson** `object | null` (required) — Salesperson (user) pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **leadAttorney** `object | null` (required) — Lead attorney (user) pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **originatingAttorney** `object | null` (required) — Originating attorney (user) pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **ownedBy** `object | null` (required) — Owning user pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **createdBy** `object | null` (required) — Creating user pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **contact** `object | null` (required) — Primary contact pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **company** `object | null` (required) — Linked company pointer; null when unset
    - **id** `string` (required) — ID of the referenced Lawmatics record
    - **type** `string` (required) — JSON:API record class of the reference (e.g. "user", "contact", "prospect", "firm"); resolve it by calling that resource's own get/find tool — this pointer is not materialized
  - **assignedStaff** `array` (required) — Assigned staff (user) pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **events** `array` (required) — Event pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **fileRequests** `array` (required) — File-request pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **documents** `array` (required) — Document pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **files** `array` (required) — File pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **folders** `array` (required) — Folder pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **notes** `array` (required) — Note pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **tasks** `array` (required) — Task pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **emails** `array` (required) — Email-address pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **phoneNumbers** `array` (required) — Phone-number pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **addresses** `array` (required) — Address pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **invoices** `array` (required) — Invoice pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **tags** `array` (required) — Tag pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
  - **relationships** `array` (required) — Related-party relationship-record pointers; empty if none
    - **[]** `object`
      - **id** `string` (required) — ID of the referenced Lawmatics record
      - **type** `string` (required) — JSON:API record class of the reference; resolve it by calling that resource's own tool
