Notes
The Notes API allows you to create, read, update, and delete notes on people, companies, and deals. Notes support @mentions to link related people and companies.
Notes are nested under their parent entity:
/api/people/{personId}/notes— Notes on a person/api/companies/{companyId}/notes— Notes on a company/api/pipelines/{type}/deals/{dealId}/notes— Notes on a deal
All note endpoints share the same request/response format.
List Notes
GET /api/people/{personId}/notes
GET /api/companies/{companyId}/notes
GET /api/pipelines/{type}/deals/{dealId}/notes
Retrieves a paginated list of notes for the parent entity.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | No | Number of notes to return (1-100, default: 50) |
offset |
integer | No | Number of notes to skip (default: 0) |
Response
Success Response (200)
{
"success": true,
"data": {
"notes": [
{
"id": "note-uuid",
"content": "Had a great call with [@John Doe](person:person-uuid). Discussed partnership with [@Acme Inc](company:company-uuid).",
"entityType": "USER",
"entityId": "person-uuid",
"dealId": null,
"createdByUserId": "user-uuid",
"organizationId": "org-uuid",
"notePeople": [
{
"id": "person-uuid",
"firstName": "John",
"lastName": "Doe"
}
],
"noteCompanies": [
{
"id": "company-uuid",
"name": "Acme Inc"
}
],
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
}
],
"total": 5,
"limit": 50,
"offset": 0,
"hasMore": false
}
}
Create Note
POST /api/people/{personId}/notes
POST /api/companies/{companyId}/notes
POST /api/pipelines/{type}/deals/{dealId}/notes
Creates a new note on the parent entity.
Request Body
{
"content": "Had a great call with [@John Doe](person:person-uuid). Discussed partnership with [@Acme Inc](company:company-uuid)."
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
content |
string | Yes | Note content (min 1 character). Supports @mentions. |
@Mention Syntax
Link people and companies in note content using this format:
- People:
[@Display Name](person:uuid) - Companies:
[@Display Name](company:uuid)
Mentioned entities are automatically parsed and stored as associations, making them searchable and navigable in the UI.
Response
Success Response (201)
{
"success": true,
"data": {
"id": "note-uuid",
"content": "Had a great call with [@John Doe](person:person-uuid).",
"entityType": "USER",
"entityId": "person-uuid",
"createdByUserId": "user-uuid",
"organizationId": "org-uuid",
"notePeople": [
{
"id": "person-uuid",
"firstName": "John",
"lastName": "Doe"
}
],
"noteCompanies": [],
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
},
"message": "Note created successfully"
}
Get Note
GET /api/people/{personId}/notes/{noteId}
GET /api/companies/{companyId}/notes/{noteId}
GET /api/pipelines/{type}/deals/{dealId}/notes/{noteId}
Retrieves a specific note. The note must belong to the specified parent entity.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
noteId |
string | Yes | Note UUID |
Response
Success Response (200)
{
"success": true,
"data": {
"id": "note-uuid",
"content": "Follow up on proposal.",
"entityType": "USER",
"entityId": "person-uuid",
"createdByUserId": "user-uuid",
"organizationId": "org-uuid",
"notePeople": [],
"noteCompanies": [],
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
}
}
Update Note
PATCH /api/people/{personId}/notes/{noteId}
PATCH /api/companies/{companyId}/notes/{noteId}
PATCH /api/pipelines/{type}/deals/{dealId}/notes/{noteId}
Updates a note's content. @mention associations are re-parsed from the new content.
Request Body
{
"content": "Updated: Follow up on proposal next Tuesday."
}
Response
Success Response (200)
{
"success": true,
"data": {
"id": "note-uuid",
"content": "Updated: Follow up on proposal next Tuesday.",
"notePeople": [],
"noteCompanies": [],
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T11:00:00.000Z"
},
"message": "Note updated successfully"
}
Delete Note
DELETE /api/people/{personId}/notes/{noteId}
DELETE /api/companies/{companyId}/notes/{noteId}
DELETE /api/pipelines/{type}/deals/{dealId}/notes/{noteId}
Deletes a note from the parent entity.
Response
Success Response (200)
{
"success": true,
"data": {
"deleted": true
},
"message": "Note deleted successfully"
}
Example Usage
# List notes on a person
curl -X GET "https://beta-api.introzy.com/api/people/person-uuid/notes" \
-H "Authorization: Bearer introzy_your_api_key"
# Create a note on a company with @mentions
curl -X POST "https://beta-api.introzy.com/api/companies/company-uuid/notes" \
-H "Authorization: Bearer introzy_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"content": "Discussed renewal with [@Jane Smith](person:person-uuid). Looking good."
}'
# Create a note on a deal
curl -X POST "https://beta-api.introzy.com/api/pipelines/sales/deals/deal-uuid/notes" \
-H "Authorization: Bearer introzy_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"content": "Demo scheduled for next week."
}'
# Update a note
curl -X PATCH "https://beta-api.introzy.com/api/people/person-uuid/notes/note-uuid" \
-H "Authorization: Bearer introzy_your_api_key" \
-H "Content-Type: application/json" \
-d '{"content": "Updated note content."}'
# Delete a note
curl -X DELETE "https://beta-api.introzy.com/api/people/person-uuid/notes/note-uuid" \
-H "Authorization: Bearer introzy_your_api_key"
Entity Types
Notes are scoped to their parent entity type:
| Parent | Entity Type | Path Prefix |
|---|---|---|
| Person | USER |
/api/people/{personId}/notes |
| Company | COMPANY |
/api/companies/{companyId}/notes |
| Deal | varies | /api/pipelines/{type}/deals/{dealId}/notes |
For deal notes, {type} is the pipeline type: sales, advocacy, integration, referral, or partner.