Skip to content

Welcome a first-time visitor ​

This recipe takes a real-world Sunday-morning scenario: someone new walks in, fills out a visitor form, and you want them to feel welcomed before they leave the parking lot. Everything happens automatically once you've set it up the first time.

What you'll achieve ​

A first-time visitor's data is captured at the door, their record is created, a workflow fires, and they receive a personalized WhatsApp message within minutes β€” without any staff member doing anything in the moment.

Prerequisites ​

Step 1 β€” Configure the visitor form ​

The visitor form is the public-facing page where new arrivals enter their details.

  1. Go to Settings β†’ Visitor form.
  2. Fill in:
    • Header text β€” e.g. Welcome to Grace Church! Help us get to know you.
    • Required fields β€” first name + last name + phone are the minimum. Don't ask more than 4 questions or completion rates plummet.
    • Optional fields β€” email, how-did-you-hear-about-us, prayer-request.
    • Success message β€” what visitors see after submitting.
  3. Save.

The form is now live at /welcome on your public site (e.g. grace.geniuschurchmanager.com/welcome).

Step 2 β€” Put the form in front of visitors ​

Three ways:

MethodSetup
QR code on a sign at the doorGenerate a QR pointing at /welcome, print it on a 4Γ—6 card
Tablet kiosk by the welcome deskOpen the form in a browser on a tablet, leave it open
Built into check-inThe check-in kiosk has an I'm new here button that opens the visitor form

The QR-code approach is the cheapest and works best for casual self-service.

Step 3 β€” Build the welcome workflow ​

This is the heart of the recipe. The workflow fires every time the visitor form is submitted.

  1. Go to Workflows β†’ create a new workflow.

  2. Name it First-time visitor welcome.

  3. Add a trigger: form.submitted where form = Visitor form.

  4. Add an action: wait_delay 10 minutes (give them time to find a seat).

  5. Add an action: send_message:

    • Channel: WhatsApp.

    • Recipient: the visitor (auto-populated from the trigger).

    • Body:

      Hi {{trigger.member.first_names}}! Welcome to Grace Church. We're so glad you joined us today.
      
      If you have any questions, just reply to this message β€” we read every one.
      
      Pastor Mary πŸ™
  6. Save and toggle the workflow to Active.

Step 4 β€” Test it ​

Before Sunday, test the whole flow:

  1. Open the visitor form on your phone.
  2. Fill in your name + your own WhatsApp number.
  3. Submit.
  4. Wait 10 minutes.
  5. Check your WhatsApp.

The message should arrive. If it doesn't, check Workflows β†’ Runs for the test run and inspect the error.

What happens behind the scenes ​

When a visitor submits the form:

  1. The form.submitted event fires.
  2. GCM creates a member record with membership type Visitor.
  3. The workflow trigger matches and enqueues a run.
  4. The wait_delay action holds the run for 10 minutes.
  5. The send_message action fires, calling your WhatsApp provider.
  6. The provider delivers the message; the delivery status updates as it flows.

All of this is logged in Workflows β†’ Runs for inspection.

What's next ​

This is just the first touchpoint. To set up an ongoing 30-day follow-up sequence, continue to Newcomer follow-up workflow.

To track which visitors come back the following Sundays, use the attendance trend by member type β€” visitors who become regular attendees are exactly what you want to count.

Permissions ​

Setting up this recipe requires admin access. Once set up, the workflow runs without any human in the loop β€” the visitor submits, the message goes out, no one has to be at their desk.

Common questions ​

What if the visitor didn't give us a phone number? The workflow's send-message action gracefully skips when the recipient has no usable channel β€” the run completes with a "skipped" status for that step. Consider adding email as a fallback channel.

Will this fire for someone already in our system who fills out the form? By default, yes β€” the trigger doesn't dedupe. Add a condition step early in the workflow to check "is this their first submission?" if you want to avoid spamming returning visitors.

Can I personalize by the time of day? Yes. Add a condition step using the is_during_business_hours operator to send a different message on Sunday vs Wednesday.

Next steps ​