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.

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 β
| Article | What it covers |
|---|---|
| Creating a form | The new-form dialog, the slug, your first save |
| Field types catalog | Every one of the 17 field types, with config notes |
| Field configuration | Sections, widths, required toggles, validation rules |
| Sharing & embedding | Public URL, custom domain, embedding on your website |
| Viewing submissions | The submissions table, statuses, CSV export |
| Workflow integration | Firing 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
FormBlockinto 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 β
| Plan | Max forms |
|---|---|
| Starter | 3 |
| Growth | 25 |
| Network | 100 |
| Unlimited | unlimited |
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.