Skip to content

Forms

Forms is GCM's general-purpose form builder. If you need to collect something from a person — a prayer request, a small-group signup, a baptism interest form, a serve-team availability survey, a wedding inquiry, an event RSVP — this is where you build it.

You design the form once in a drag-and-drop builder, publish it, and share the URL. Submissions land in GCM, you read them in a table, you can export them to CSV, and you can wire them to a workflow so an SMS, an email, or a Slack-style notification fires the second one comes in.

Forms list

How forms differ from the visitor form

GCM has two distinct form modules and it's worth knowing why.

The visitor form is a specialized, single-purpose form that creates a Member record. It writes to the members table, can attach a photo, can mark the visitor as attended for today's service, and can assign them to an org unit — all in one atomic transaction. It's tuned for the welcome-desk flow. There is exactly one visitor form per organization.

A form built in this module is general-purpose. Submissions go into the form_submissions table as JSON — they don't automatically create a member, they don't write to attendance, they don't touch the donation ledger. They're inert pieces of data you read, export, or hand off to a workflow. You can create as many forms as your plan allows.

Which one do I want?

If the answer to "what do I do with this submission?" is "follow up with the visitor for next Sunday," use the visitor form. If it's "store the answers and maybe email a leader," use a regular form.

What's in this section

ArticleWhat it covers
Creating a formThe new-form dialog, the slug, your first save
Field types catalogEvery one of the 17 field types, with config notes
Field configurationSections, widths, required toggles, validation rules
Sharing & embeddingPublic URL, custom domain, embedding on your website
Viewing submissionsThe submissions table, statuses, CSV export
Workflow integrationFiring automations from the form.submitted trigger

The lifecycle of a form

draft (default)

   │  ── you click Publish ──▶

published

   │  ── you click Unpublish ──▶

draft (again)

archived  (hidden from the main list, can still see submissions)

A form in draft status returns a 404 if anyone hits its public URL. Only published forms render to the public. Unpublishing is non-destructive — you keep your fields, your settings, and every submission ever made. You're just hiding the page.

What the public sees

When someone opens a published form, they get:

  • The form name as the page title
  • The description (if you wrote one) underneath
  • Each section as a labelled group of fields (sections only show their label when there's more than one)
  • Fields rendered in their configured widths (full / half / third on desktop, all full on mobile)
  • A submit button, labelled whatever you set in Form settings → Submit button text
  • A success message after submitting — either yours or the default "Thank you for your submission!"

Optionally you can set a redirect URL under form settings, in which case the success message flashes for 1.5 seconds and then the page redirects.

Where this fits in the rest of GCM

  • Workflows — every form submission can trigger a workflow. Notification emails work this way (the email-on-submit field in form settings is a hint, but the actual send happens in a workflow).
  • Website Builder — drop a FormBlock into any page to embed a form inline, without sending people to its standalone URL.
  • Custom domain — if you've set up a custom domain, your form URLs use it automatically.
  • Bulk Actions — submissions aren't members, so they don't appear in bulk actions. If you want a form to feed your member pipeline, build a workflow that creates the member.

Plan limits

PlanMax forms
Starter3
Growth25
Network100
Unlimitedunlimited

Hit the limit and the New form button shows a "you've reached your plan's form limit" banner. Archived forms still count toward your total. To free up a slot, soft-delete a form you no longer need.