Skip to content

Viewing submissions โ€‹

Every time someone submits one of your published forms, a row lands in the submissions table for that form. This page is where you read them, triage them, and pull them out as CSV when you need to share with a leader.

Submissions table

Getting there โ€‹

From the Forms list, click any form's row to open its builder. In the top right, click Submissions โ€” or use the URL pattern /forms/{form-id}/submissions directly.

The page header shows the form's name, the total submission count (badge), the status filter, and an Export CSV button.

The table โ€‹

The submissions table shows, in priority order:

ColumnWhat's in it
โ˜‘Checkbox for bulk actions
DateWhen the submission landed (formatted in your org's date locale)
NameThe submitter's name (pulled from the first Text field labelled "name" โ€” or blank/italicized "Anonymous" if none)
EmailThe submitter's email (pulled from the first Email field with a value)
StatusColoured badge โ€” new, read, starred, or archived
(up to 3 preview fields)The first three non-display fields by sort order โ€” truncated to 40 characters
โ‹ฎRow-level dropdown

Mobile shrinks this to a card layout โ€” name + status badge on top, email and date below, and the first two preview fields stacked under that.

Statuses โ€‹

Every submission starts at status new. Statuses are purely organizational โ€” they don't affect anything else in GCM, they're just a way of tracking which submissions you've dealt with.

StatusWhen to use it
newDefault. The submission just landed and nobody's looked at it.
readYou've opened the submission. GCM auto-marks new โ†’ read the moment you click into the detail view.
starredYou're flagging this one as important โ€” usually because it needs a follow-up.
archivedYou've actioned it (or decided not to) and don't need to see it in the default view.

Filter by status using the dropdown in the page header. Default is "All."

Viewing a single submission โ€‹

Click any row to open the detail modal:

Submission detail

You see every field's label and the value the visitor entered, in form-order. File uploads show as download links. Empty fields show as -- so you know whether the visitor skipped them or actually submitted an empty value.

The detail modal is read-only โ€” submissions can't be edited. If a visitor needs to correct something, ask them to submit again.

Bulk actions โ€‹

Tick a checkbox in any row to enter bulk-select mode. A bar appears above the table:

  • Mark read โ€” bump every selected new to read
  • Star โ€” flag all selected as starred
  • Archive โ€” bump all selected to archived
  • Delete โ€” permanently remove the selected submissions (with a confirmation modal)

Tick the header checkbox to select every row on the current page (not every row in the form โ€” just what's visible).

Delete is permanent

Soft-delete doesn't apply to submissions โ€” when you delete, the row is gone for good. If you need an audit trail, export to CSV first.

Exporting to CSV โ€‹

Click Export CSV in the page header to download every submission currently in view (after the status filter, but ignoring pagination โ€” all matching rows export, not just the visible page).

The CSV columns are:

  1. Date โ€” created timestamp in your locale
  2. Name โ€” submitter name
  3. Email โ€” submitter email
  4. Status
  5. One column per non-display field, in form order, using the field's label as the column header

Multi-value fields (checkboxes with options, multi-select) are joined with ; . File-upload fields export the storage path, not a downloadable link.

The file is named {form-name}-submissions.csv. Open it in any spreadsheet โ€” Excel, Google Sheets, Numbers โ€” and you're done.

Single-row actions โ€‹

The โ‹ฎ icon at the end of each row opens a small menu:

  • View โ€” same as clicking the row
  • Star โ€” flip status to starred
  • Archive โ€” flip status to archived
  • Delete โ€” same delete flow as bulk delete, just for one row

Empty state โ€‹

If a form has no submissions yet, the page shows a friendly empty state โ€” clipboard icon, "No submissions yet," and a hint that submissions will land here once people start filling out the form. Once the first submission lands, the empty state disappears automatically.

What about real-time? โ€‹

The page doesn't auto-refresh โ€” you'll need to reload to see new submissions land. If you want a notification the moment a submission comes in (push, SMS, email), build a workflow with the form.submitted trigger. The workflow integration article covers exactly that flow.

Privacy and retention โ€‹

Submissions stick around forever by default. There's no auto-deletion. If your org needs a retention policy ("delete prayer requests after 90 days"), you can:

  • Set up a manual quarterly cleanup ritual โ€” filter by date, bulk-select, delete
  • Build a scheduled workflow that finds old submissions and deletes them (advanced)

The data itself sits in the form_submissions table inside your org's row-level-security scope โ€” only your admins can read it, and only the platform itself can read it system-wide. See the users & roles docs for who has access to what.

Built with VitePress ยท App ยท Marketing site