Inline editing
By default, portals are read-only — clients can see your data but not change it. Inline editing lets clients click a cell and update its value directly from the portal. The change writes back to your Notion database immediately. This is a Pro and Agency feature.
Enable editing on a column
Open the Columns page
From the portal's sidebar, click Columns.
Toggle Editable on the columns you want
Each column row has an Editable switch. Enable it for any column you want clients to be able to update. Everything is off by default — you opt in per column.
Save
Click Save columns. Editable cells are now active for clients on their next page load.
What clients see
Editable cells have a subtle hover highlight. Clicking one opens the right editor for that property type:
| Property type | Editor |
|---|---|
| Title, Text, URL, Email, Phone | Inline text input — type, then press Enter to save (Escape to cancel) |
| Number | Numeric input — accepts decimals, honors Notion number format (currency, percent, etc.) |
| Select, Status | Dropdown of existing options — pick one to update |
| Multi-select | Popover with checkboxes for each option — tick or untick |
| Checkbox | Toggles on click — no extra step needed |
| Date | Date picker — click a day to set; press Escape to cancel |
| Files | Add an external URL or remove existing files |
Each edit is sent to Notion immediately after you commit (Enter, click away, or pick an option). If the network is slow, the cell shows a saving indicator.
Conflict handling
If the same field was edited in Notion at the same moment a client was editing it in the portal, Quelvo detects the conflict. The client sees a small toast: "This field was changed in Notion — your edit was not saved." The cell reverts to the current Notion value. No data is lost — the Notion edit wins.
What can and can't be edited
Quelvo only shows the Editable toggle for property types that Notion's API allows writing to. Properties that Notion manages automatically show a Read-only badge instead:
Always read-only (Notion-managed):
- Formulas, Rollups
- Created time, Created by
- Last edited time, Last edited by
- Unique ID, Button
Deferred to a future update:
- People (requires Notion workspace user lookup)
- Relations (requires cross-database record picker)
Editing the title field
The title property is special — in Notion, the title appears everywhere the record is referenced. Editing it from the portal changes how the record appears across your entire workspace.
The Editable toggle is available for title, but it shows a warning icon. Most owners leave title editing off and rely on the record being named correctly in Notion from the start.
Board drag-to-update
When you set a Board (Kanban) view and the group-by column (Status or Select) is also marked Editable, clients can drag cards between columns. The drag updates the property value in Notion just like clicking an inline editor would.
Without the Editable toggle on the group-by column, the board is static — clients can see the columns but can't move cards.
Rate limiting
Each client session is limited to 30 cell edits per minute. This protects against runaway automated requests. If a client hits the limit, they see a "slow down" toast and the next edit attempt is held for a moment.
Audit trail
Every inline edit is logged in your Audit log with the client's email, the property that was changed, and both the old and new values. You can review this from the Audit log page in the dashboard.
See Audit log for the full guide.
What's safe to make editable
Editable columns are still subject to your filter rules. Clients can only see — and therefore only edit — records that pass your configured filters. Hidden columns are never editable because they're never sent to the client. And only columns you've explicitly enabled can be edited; there's no way for a client to change a column you haven't opted in to.
Plan limits
| Plan | Inline editing |
|---|---|
| Starter | Not available (read-only portals) |
| Pro | Available — enable per column |
| Agency | Available — enable per column |