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.