> Portal Navigation:
>
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt
# QueryNotes
# Package: notes
# Namespace: Notes
# Method link: https://dev.wix.com/docs/api-reference/crm/members-contacts/contacts/notes/notes-v2/query-notes.md
## Permission Scopes:
Read Notes: SCOPE.DC-CRM.READ-NOTES
## Introduction
Retrieves a list of up to 1,000 notes given the provided filtering, paging, and sorting.
__Important:__
When making the first query request without a cursor, the `contactId` field is required. For subsequent requests using cursor pagination, `contactId` becomes optional as the cursor contains the context from the previous query.
By default, notes are sorted by created date in descending order.
Refer to [*Notes: Supported Filters and Sorting*](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/notes/notes-v2/supported-filters-and-sorting.md) for a complete list of supported filters and sorting options.
To learn about working with *Query* endpoints, see [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging.md).
---
## REST API
### Schema
```
Method: queryNotes
Description: Retrieves a list of up to 1,000 notes given the provided filtering, paging, and sorting. __Important:__ When making the first query request without a cursor, the `contactId` field is required. For subsequent requests using cursor pagination, `contactId` becomes optional as the cursor contains the context from the previous query.
By default, notes are sorted by created date in descending order. Refer to [*Notes: Supported Filters and Sorting*](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/notes/notes-v2/supported-filters-and-sorting.md) for a complete list of supported filters and sorting options. To learn about working with *Query* endpoints, see [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging.md).
URL: https://www.wixapis.com/crm/notes/v2/notes/query
Method: POST
Method parameters:
param name: contactId | type: contactId | description: Contact GUID to retrieve notes for. Required when not using cursor pagination.
param name: query | type: CursorQuery
- name: cursorPaging | type: CursorPaging | description: Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.
- name: limit | type: integer | description: Number of items to load.
- name: cursor | type: string | description: Pointer to the next or previous page in the list of results. You can get the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request.
- name: filter | type: object | description: Filter object in the following format: `"filter" : { "fieldName1": "value1", "fieldName2":{"$operator":"value2"} }` Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
- name: sort | type: array | description: Sort object in the following format: `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
- name: fieldName | type: string | description: Name of the field to sort by.
- name: order | type: SortOrder | description: Sort order.
- enum: ASC, DESC
Return type: QueryNotesResponse
- name: notes | type: array | description: Retrieved notes.
- name: id | type: string | description: Note GUID.
- name: revision | type: string | description: Revision number, which increments by 1 each time the note is updated. To prevent conflicting changes, the current revision must be passed when updating the note.
- name: createdDate | type: string | description: Date and time the note was created.
- name: updatedDate | type: string | description: Date and time the note was last updated.
- name: contactId | type: string | description: Contact GUID associated with the note.
- name: text | type: string | description: Note text.
- name: type | type: NoteType | description: Note type for organizing notes by their purpose. Default: `NOT_SET`
- enum:
- UNKNOWN_TYPE: Unknown note type.
- NOT_SET: Note doesn't have a specific classification.
- MEETING_SUMMARY: Note is a summary of a meeting related to the contact.
- CALL_SUMMARY: Note is a summary of a call related to the contact.
- name: source | type: NoteSource | description: Information about who created the note.
- name: sourceType | type: SourceType | description: Note creator.
- enum: UNKNOWN_SOURCE_TYPE, APP, USER
- name: appId | type: string | description: App GUID, if the note was created by an app.
- name: userId | type: string | description: User GUID, if the note was created by a Wix user.
- name: pagingMetadata | type: CursorPagingMetadata | description: Paging information.
- name: count | type: integer | description: Number of items returned in the response.
- name: cursors | type: Cursors | description: Offset that was requested.
- name: next | type: string | description: Cursor pointing to next page in the list of results.
- name: prev | type: string | description: Cursor pointing to previous page in the list of results.
- name: hasNext | type: boolean | description: Indicates if there are more results after the current page. If `true`, another page of results can be retrieved. If `false`, this is the last page.
Possible Errors:
HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: MISSING_CONTACT_ID | Description: Contact GUID is required when cursor pagination isn't provided.
```
### Examples
### Queries Notes
Retrieves notes by a query
```curl
curl -X POST \
'https://www.wixapis.com/crm/notes/v2/notes/query' \
-H 'Authorization: ' \
-H 'Content-Type: application/json' \
--data-raw '
{
"query": {
"sort": [
{
"field_name": "type",
"order": "DESC"
}
],
"filter": {
"contactId":
{
"$in": ["2ad187df-405c-47a1-a4ea-5f112feba87", "2ad187df-405c-47a1-a4ea-5f112feba88"]
}
},
"cursor_paging": {
"limit": 50
}
},
"contact_id": "2ad187df-405c-47a1-a4ea-5f112feba874"
}'
```
### Queries Notes
Retrieves notes by a query
```curl
curl -X POST \
'https://www.wixapis.com/crm/notes/v2/notes/query' \
-H 'Authorization: ' \
-H 'Content-Type: application/json' \
--data-raw '
{
"query": {
"sort": [
{
"field_name": "type",
"order": "DESC"
}
],
"filter": {
"type": "CALL_SUMMARY"
},
"cursor_paging": {
"limit": 50
}
},
"contact_id": "2ad187df-405c-47a1-a4ea-5f112feba874"
}'
```
### Queries Notes
Retrieves notes by a query
```curl
curl -X POST \
'https://www.wixapis.com/crm/notes/v2/notes/query' \
-H 'Authorization: ' \
-H 'Content-Type: application/json' \
--data-raw '
{
"query": {
"sort": [
{
"field_name": "type",
"order": "DESC"
}
],
"filter": {
"$and": [
{
"type": "MEETING_SUMMARY"
},
{
"createdDate": {"$gt": "2023-08-20T12:00:00.000Z"}
}
]
},
"cursor_paging": {
"limit": 50
}
},
"contact_id": "2ad187df-405c-47a1-a4ea-5f112feba874"
}'
```
---
## JavaScript SDK
### Schema
```
Method: wixClientAdmin.notes.Notes.queryNotes(query, options)
Description: Retrieves a list of up to 1,000 notes given the provided filtering, paging, and sorting. __Important:__ When making the first query request without a cursor, the `contactId` field is required. For subsequent requests using cursor pagination, `contactId` becomes optional as the cursor contains the context from the previous query.
By default, notes are sorted by created date in descending order. Refer to [*Notes: Supported Filters and Sorting*](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/notes/notes-v2/supported-filters-and-sorting.md) for a complete list of supported filters and sorting options. To learn about working with *Query* endpoints, see [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) and [Sorting and Paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging.md).
# Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
Required parameters: query
Method parameters:
param name: options | type: QueryNotesOptions none
- name: contactId | type: string | description: Contact GUID to retrieve notes for. Required when not using cursor pagination.
param name: query | type: NoteQuery | required: true
- name: cursorPaging | type: CursorPaging | description: Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`.
- name: limit | type: integer | description: Number of items to load.
- name: cursor | type: string | description: Pointer to the next or previous page in the list of results. You can get the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request.
- name: filter | type: object | description: Filter object in the following format: `"filter" : { "fieldName1": "value1", "fieldName2":{"$operator":"value2"} }` Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`
- name: sort | type: array | description: Sort object in the following format: `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
- name: fieldName | type: string | description: Name of the field to sort by.
- name: order | type: SortOrder | description: Sort order.
- enum: ASC, DESC
Return type: PROMISE
- name: notes | type: array | description: Retrieved notes.
- name: _id | type: string | description: Note GUID.
- name: revision | type: string | description: Revision number, which increments by 1 each time the note is updated. To prevent conflicting changes, the current revision must be passed when updating the note.
- name: _createdDate | type: Date | description: Date and time the note was created.
- name: _updatedDate | type: Date | description: Date and time the note was last updated.
- name: contactId | type: string | description: Contact GUID associated with the note.
- name: text | type: string | description: Note text.
- name: type | type: NoteType | description: Note type for organizing notes by their purpose. Default: `NOT_SET`
- enum:
- UNKNOWN_TYPE: Unknown note type.
- NOT_SET: Note doesn't have a specific classification.
- MEETING_SUMMARY: Note is a summary of a meeting related to the contact.
- CALL_SUMMARY: Note is a summary of a call related to the contact.
- name: source | type: NoteSource | description: Information about who created the note.
- name: sourceType | type: SourceType | description: Note creator.
- enum: UNKNOWN_SOURCE_TYPE, APP, USER
- name: appId | type: string | description: App GUID, if the note was created by an app.
- name: userId | type: string | description: User GUID, if the note was created by a Wix user.
- name: pagingMetadata | type: CursorPagingMetadata | description: Paging information.
- name: count | type: integer | description: Number of items returned in the response.
- name: cursors | type: Cursors | description: Offset that was requested.
- name: next | type: string | description: Cursor pointing to next page in the list of results.
- name: prev | type: string | description: Cursor pointing to previous page in the list of results.
- name: hasNext | type: boolean | description: Indicates if there are more results after the current page. If `true`, another page of results can be retrieved. If `false`, this is the last page.
Possible Errors:
HTTP Code: 400 | Status Code: INVALID_ARGUMENT | Application Code: MISSING_CONTACT_ID | Description: Contact GUID is required when cursor pagination isn't provided.
```
### Examples
### queryNotes
```javascript
import { notes } from '@wix/crm';
async function queryNotes(query,options) {
const response = await notes.queryNotes(query,options);
};
```
### queryNotes (with elevated permissions)
```javascript
import { notes } from '@wix/crm';
import { auth } from '@wix/essentials';
async function myQueryNotesMethod(query,options) {
const elevatedQueryNotes = auth.elevate(notes.queryNotes);
const response = await elevatedQueryNotes(query,options);
}
```
### queryNotes (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).
```javascript
import { createClient } from '@wix/sdk';
import { notes } from '@wix/crm';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed
const myWixClient = createClient ({
modules: { notes },
// Include the auth strategy and host as relevant
});
async function queryNotes(query,options) {
const response = await myWixClient.notes.queryNotes(query,options);
};
```
---