Manage notes in Dalil AI CRM — create, read, update, delete, search, and list note records with rich text body (markdown/blocknote). Use note-relation to attach notes to people, companies, or opportunities.
bodyV2.markdown (string) — Body content as markdown
bodyV2.blocknote (string) — Body content as blocknote JSON
Blocknote Format
Each paragraph is a block:
{"id":"unique-uuid","type":"paragraph","props":{"textColor":"default","backgroundColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Your text here.","styles":{}}],"children":[]}
{"id":"unique-uuid","type":"paragraph","props":{"textColor":"default","backgroundColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Your text here.","styles":{}}],"children":[]}
{"id":"unique-uuid","type":"paragraph","props":{"textColor":"default","backgroundColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Your text here.","styles":{}}],"children":[]}
Multiple paragraphs: split text by newlines, one block per line. The blocknote field is a JSON string of an array of these blocks.
Update Note
Updatable fields: title, bodyV2
Get Note
List Notes
GET /rest/notes?limit=60&order_by=createdAt[DescNullsLast]
GET /rest/notes?limit=60&order_by=createdAt[DescNullsLast]
GET /rest/notes?limit=60&order_by=createdAt[DescNullsLast]
Or use companyId or opportunityId instead of personId.
Filter Examples
# Notes with title containing "Meeting"
filter=title[like]:Meeting
# Notes created after a date
filter=createdAt[gte]
# Notes with title containing "Meeting"
filter=title[like]:Meeting
# Notes created after a date
filter=createdAt[gte]
# Notes with title containing "Meeting"
filter=title[like]:Meeting
# Notes created after a date
filter=createdAt[gte]
Gotchas
Body uses blocknote JSON format — The bodyV2 field requires both markdown and blocknote (JSON string). When sending via the simplified API, you can send plain body text and it auto-converts.
Notes are standalone — They are not directly linked to people/companies. Use Note Relations (/rest/noteTargets) to create associations.
Blocknote IDs must be unique — Each block in the blocknote JSON array needs a unique UUID-format id.
Search is title-only — No body content search is available.
GraphQL search returns IDs only — Follow up with GET /rest/notes?filter=id[in]:[id1,id2] to fetch full records.
URL-encode GET filter params — Filter strings contain special characters ([, ], :) that break manually constructed URLs. Use URL encoding when making requests (e.g., curl -G --data-urlencode "filter=...").