Skip to main content
PATCH
/
api
/
contact-notes
/
{noteId}
Update a contact note
curl --request PATCH \
  --url https://your-instance.example.com/api/contact-notes/{noteId} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "note": "@alice please review the W2 attached. Updated copy."
}
'
{
  "success": true,
  "message": "Contact note created",
  "data": {
    "_id": "67f0a0b0c0d0e0f0a0b0c0d0",
    "userId": {
      "_id": "65b1f0a2c3d4e5f6a7b8c9d3",
      "fullName": "Cory Tan",
      "email": "cory@example.com"
    },
    "note": "Spoke briefly; will follow up tomorrow.",
    "attachments": [],
    "reactions": [],
    "isEdited": false,
    "createdAt": "2026-05-18T14:00:00.000Z"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

noteId
string
required

Body

application/json
note
string

Replacement body for the note; flips isEdited to true on save.

mentions
string[]

User _ids @-mentioned in the note; trigger notification pings.

attachments
object[]

R2 storage keys + content metadata for files attached to the note; replaces the existing attachment list.

Response

Contact note updated

success
enum<boolean>
required
Available options:
true
data
object
required

Populated note row. userId is populated to the user document (see ContactNoteAuthor).

Example:
{
"_id": "67f0a0b0c0d0e0f0a0b0c0d0",
"userId": {
"_id": "65b1f0a2c3d4e5f6a7b8c9d3",
"fullName": "Cory Tan",
"email": "cory@example.com"
},
"note": "@alice please review the W2 attached.",
"attachments": [
{
"name": "w2.pdf",
"size": 121200,
"type": "application/pdf",
"signedUrl": "https://r2.example.com/orgs/65a0.../notes/w2.pdf?token=..."
}
],
"reactions": [
{
"emoji": "👍",
"users": ["65b1f0a2c3d4e5f6a7b8c9d0"],
"count": 1
}
],
"isEdited": false,
"createdAt": "2026-05-18T14:00:00.000Z"
}
message
string