---
title: "Notes"
description: "OQL field reference for notes. Free-text notes attached to contacts, optionally linked to a deal."
canonical_url: https://developer.onepagecrm.com/oql/entities/notes/
source: Markdown mirror of https://developer.onepagecrm.com/oql/entities/notes/
---

Notes are free-text notes attached to contacts. They can optionally
be linked to a deal.

## Fields

Legend: **F** filterable, **S** sortable, **A** aggregatable, **G** groupable.

| Field | Type | F | S | A | G | Description |
|-------|------|:-:|:-:|:-:|:-:|-------------|
| `id` | ID | Y | — | — | — | Note ID |
| `text` | string | — | — | — | — | Note text (select only) |
| `contact_id` | ID | Y | — | — | Y | Associated contact ID |
| `author` | string | — | — | — | — | Author display name (select only) |
| `author_id` | ID | Y | — | — | Y | Author user ID |
| `deal_id` | ID | Y | — | — | Y | Linked deal ID (optional) |
| `date` | date | Y | Y | — | Y | Note date |
| `created_at` | time | Y | Y | — | Y | Record creation timestamp |
| `modified_at` | time | Y | Y | — | Y | Last modification timestamp |

## Notes

- **`text`** is select-only — OQL has no full-text search over note
  bodies.
- **`author`** is a display name and is select-only; filter and sort
  by `author_id` instead.
- **Lookups:** `contact` (via `contact_id`) and `deal` (via `deal_id`).
  Reference their fields inline as `contact.<field>` or `deal.<field>`
  in `select`, `where`, and `order_by`. See
  [Concepts › Lookups](/oql/concepts/#lookups-related-fields).

## Example queries

Most recent 25 notes I wrote:

```json
{
  "from": "notes",
  "where": { "author_id": "ME()" },
  "order_by": [{ "created_at": "desc" }],
  "limit": 25
}
```

All notes on a specific contact:

```json
{
  "from": "notes",
  "where": { "contact_id": "507f1f77bcf86cd799439011" },
  "order_by": [{ "date": "desc" }]
}
```

Notes tied to a specific deal:

```json
{
  "from": "notes",
  "where": { "deal_id": "507f1f77bcf86cd799439011" }
}
```
