> 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); }; ``` ---