Skip to content

Editing in the grid

The grid is the editing surface Sync Server ships for every table: an Airtable-style spreadsheet view over a feature service, where cells are the thing you interact with, the keyboard does everything the mouse does, and every write goes through the same applyEdits pipeline — same permissions, same activity log, same realtime fan-out — as any other client. This page is about what you can do in it and the rules it follows.

What you can edit

What the grid offers is driven by the service, not by configuration:

  • Capabilities. Create, update and delete actions appear only when the layer advertises them and the signed-in user has write access to the base. A viewer gets a read-only grid that still navigates, filters, copies and exports.
  • Read-only fields. ObjectID, GlobalID, editor-tracking fields and anything the schema marks non-editable stay navigable and copyable, but the editor never opens on them.
  • Field types. Text, long text, numbers, dates, checkboxes, URLs and emails, coded-value domains (single select), subtype-dependent domains, ranges, attachments and linked records each get their own editor and validation.
  • Geometry. A spatial layer shows its geometry as a summary column (Polygon · 1,204 vertices). New records on a spatial layer need a location: the grid opens the map’s sketch tool, or the host allows null geometry.

Cell editing

Press Enter or F2, or just start typing, to edit the focused cell — typing replaces the value, Enter/F2 keeps it. Tab commits and moves right, Enter commits and moves down, Esc cancels. Space expands the record into a side sheet; Shift+Space expands the cell alone, which is where long text and geometry JSON are comfortable.

Validation runs before a commit, per field type: a number field refuses letters, a range domain refuses out-of-range values, a coded-value field refuses anything that is not one of its options. An invalid value cannot be committed; the cell shows why.

Two conventions are worth knowing:

  • Domains show labels, store codes. You see and copy Under review; the service receives UR. Pasting matches on the label (exact, then case-insensitive).
  • Dates are wall-clock in the layer’s time zone. They travel as epoch milliseconds but you read and type them as local dates. Ambiguous slash dates such as 04/09/2026 are rejected unless the host sets a day/month order; ISO dates always work. Ctrl+; sets a date field to now.

Selection, clipboard and fill

Selection is a rectangle of cells (Shift+Arrows extends, Ctrl+Arrows jumps to an edge) or a set of records (the row gutter). Ctrl+C / X / V copy, cut and paste tab-separated text, so the grid round-trips with Excel and Google Sheets: labels for domains, ISO strings for dates. A paste that runs past the last row can create new records when the host enables it. Delete or Backspace clears the selected range. Dragging the corner of a selection fills down or right.

Every one of these is one undo step. Ctrl+Z / Ctrl+Shift+Z / Ctrl+Y undo and redo, and a paste of 300 cells undoes as a single action. Undoing a committed delete re-creates the record — with a new ObjectID, since the service assigned the old one.

Records

Shift+Enter inserts a record below the focused row. Duplicate copies a record’s attributes; on a spatial layer “Duplicate feature + geometry” copies the shape too. Deleting asks first when more than one record is selected.

The record sheet (Space) shows every field in a form, related records through the base’s relationships, the record’s attachments, and — on Sync Server — its Activity: who changed what and when, field by field, with restore actions (see Restoring below).

How saves work

Saves are optimistic: the grid shows your value immediately and writes in the background. Edits are coalesced for a moment and sent in batches (by default 50 records per applyEdits), so typing across a row is one request, not five.

  • Per-record failure. If the service rejects a record — an attribute rule, a permission check, a validation the client did not know about — only that record reverts. The rest of the batch stays saved. The status bar lists the problem with the server’s message and a retry.
  • Conflicts. Before writing, the grid re-reads the records it is about to change. If a record’s edit-tracking date, or the very value you are overwriting, changed on the server since you loaded it, that edit is held back and the status bar offers Keep mine or Use server. With realtime connected you also see the other editor’s cursor before this happens.
  • Offline. When the browser reports it is offline, edits queue in memory and flush when the connection returns. The “Live / Reconnecting” indicator says which state you are in.

Attachments

A table’s attachment columns (Airtable Attachment, NocoDB Attachment) show a thumbnail per file, sized to the row height, with the overflow counted. Images render from the smallest rendition that fits, so a row never downloads a full-size photo; video and audio show a poster with a play glyph and play in place.

Attachments are not a cell value you type. Enter or double-click opens a panel that adds files (choose, drop or paste) and removes them; the provider mints ids and URLs, and the row is re-read afterwards. Pasting text into an attachment cell is refused, and so is clearing it — removing files means deleting them, which is a deliberate action. The mechanics are the Esri attachment endpoints.

Find, replace and bulk changes

Ctrl+F finds within the loaded rows. Ctrl+H opens Find & replace: it matches on display text (domain labels, formatted dates), re-parses each result for its field type, validates per row, skips read-only cells, previews the match / change / reject counts as a dry run, and applies everything as one undo step. Combine it with a filter to scope a bulk change to exactly the rows you mean.

Views

Everything about how you look at a table — column order, hidden fields, widths, frozen columns, row height, filters, sorts, grouping, summaries, display overrides, colour rules and calculated columns — is a view. A view never changes the data; it is stored separately, as a personal view (yours), a shared view (everyone with access to the base) or a locked shared view (editors only can change it). On Sync Server these are the saved grid views API.

  • Filters are built in a panel, compiled to a where clause and run on the service, so they work across the whole table, not just loaded rows.
  • Grouping nests up to three levels with per-group counts and summaries; drag a row onto another group header to change the grouped field.
  • Summaries in the footer (count, sum, average, min, max, percentiles) are computed by the service over the filtered set, so they are right even when only a window of rows is loaded.
  • Colour rules tint a row or a field’s cells when a condition matches.
  • Calculated columns are client-only formulas — IF, CONCAT, ROUND, COALESCE, date parts and arithmetic — that display, copy, find and summarize like a column but are never written to the service.

History and restoring

On Sync Server every write is logged with a before-snapshot, and the grid exposes that in two places:

  • Per record, in the record sheet’s Activity section: each change lists the field-level before/after, and offers “Undo this change”, “Restore record to just before this”, or “Recreate this record” after a deletion. A restore always previews the exact fields it will change, names anything it cannot restore (attachments and links are re-added by hand), and asks for confirmation before overwriting a value someone edited since.
  • Per table, in the base view’s History tab: every change, filterable by operation, actor, record and date, with CSV export.

The rules behind both are in Activity history and rollback.

Working with a map

When the grid sits beside a map, selecting rows highlights their features, Zoom to and Flash drive the map, clicking a feature selects its row, and Map extent filters the table to what is on screen. Adding a record or choosing Edit geometry starts a sketch; Esc cancels, Enter or a double-click closes a polygon.

Keyboard reference

Keys Action
Arrows / Shift+Arrows / Ctrl+Arrows Move / extend / jump to edge
Enter, F2, or just type Edit (typing replaces the value)
Tab / Shift+Tab Commit and move right / left
Esc Cancel edit, close find or sheet, clear record selection
Ctrl+C / X / V Copy / cut / paste as tab-separated text
Delete / Backspace Clear the range
Ctrl+Z / Ctrl+Shift+Z / Ctrl+Y Undo / redo (a paste is one step)
Shift+Enter Insert record
Space / Shift+Space Expand record / expand cell
Ctrl+F Find in loaded rows
Ctrl+H Find & replace
Ctrl+; Set a date field to now
Page Up/Down, Home/End, Ctrl+Home/End Page / row edge / grid edge