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.