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
- You're signed in as an admin.
- A WhatsApp channel is configured and tested.
- You've created at least one meeting (e.g. Sunday Worship — see First Sunday service).
Step 1 — Configure the visitor form
The visitor form is the public-facing page where new arrivals enter their details.
- Go to Settings → Visitor form.
- 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.
- 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:
| Method | Setup |
|---|---|
| QR code on a sign at the door | Generate a QR pointing at /welcome, print it on a 4×6 card |
| Tablet kiosk by the welcome desk | Open the form in a browser on a tablet, leave it open |
| Built into check-in | The 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.
Go to Workflows → create a new workflow.
Name it First-time visitor welcome.
Add a trigger:
form.submittedwhere form = Visitor form.Add an action:
wait_delay10 minutes (give them time to find a seat).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 🙏
Save and toggle the workflow to Active.
Step 4 — Test it
Before Sunday, test the whole flow:
- Open the visitor form on your phone.
- Fill in your name + your own WhatsApp number.
- Submit.
- Wait 10 minutes.
- 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:
- The
form.submittedevent fires. - GCM creates a member record with membership type Visitor.
- The workflow trigger matches and enqueues a run.
- The
wait_delayaction holds the run for 10 minutes. - The
send_messageaction fires, calling your WhatsApp provider. - 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
- Newcomer follow-up workflow — the long-form 30-day version.
- First Sunday service — make sure the meeting is set up.
- Connection network — track who brings whom.
