Hierarchy and attendance β
Two of the most useful things the visitor form can do go beyond just creating a member record. The first is asking the visitor where they visited β which campus, which branch, which small group β so they get routed to the right pastor and the right follow-up team. The second is marking them present at this morning's service automatically, so they show up in attendance reports and never have to be manually added.
Both are off by default. Both take about thirty seconds to turn on. Together they're what makes the visitor form go from "just a registration form" to "the first step of your assimilation pipeline."
Hierarchy assignment β
If your church is single-site with no small groups, you can skip this section. The form already attributes every visitor to your organization as a whole β that's all you need.
If your church has more than one campus, or branches in different cities, or a network of cell groups, you'll want the form to ask which one the visitor came in through.
How hierarchy fields appear on the form β
Your organization's hierarchy is defined at Settings β Org Structure. You name each level (e.g. Branch β Center β Cell) and create units at each level (Lagos branch, Abuja branch, etc.).
For each enabled hierarchy level, the visitor form configurator (Settings β Visitor Form) shows a corresponding field you can toggle on or off. So if your church has three levels β Region, Campus, Small Group β the editor will have three hierarchy fields: one per level.

Turn them on for the levels you want visitors to pick from. Most churches enable just the campus level β visitors know which campus they visited but rarely know which small group will receive them, so leave that one for staff to assign later.
What the visitor sees β
If you enable the campus field, the form shows a "Which campus did you visit?" dropdown. The options are pulled live from your active campuses β adding a new campus in Org Structure makes it appear on the form immediately.
Sub-levels filter dynamically: if a visitor picks "Lagos campus" and you've also enabled the cell level, the cell dropdown will only show cells under Lagos.
Where the assignment lands β
The visitor's record is written to members, and a row in member_unit_assignments ties them to the selected hierarchy unit. From there:
- The unit's pastor / shepherd sees the new visitor on their shepherd dashboard.
- Workflows scoped to that unit can fire β see Workflow triggers.
- The visitor counts toward the unit's growth metrics.
- They appear, correctly attributed, on the members list filtered by unit.
If the visitor doesn't pick a unit (or you've turned the hierarchy field off entirely), they're attributed to the org as a whole and any pastor without a unit scope can see them.
Attendance marking β
The second magic trick. When a visitor fills out the form on a Sunday, the form can offer to mark them present at this morning's service in a single tap β no separate check-in step.
The "I'm here today" toggle β
If the visitor's submission date matches a day with one or more configured meetings (services), the form shows an extra section at the bottom of the form:
Mark me present at today's service
Meeting: [Sunday Service βΎ]
Date: 2026-06-22
The toggle defaults to on. If multiple services run on the same day, the dropdown lets the visitor pick the one they attended.
How "today" is determined β
The form uses your organization's configured timezone (organizations.timezone) to decide what "today" is. So if your services are in Pacific time and a visitor's phone is in Eastern time, the form still shows the right service.
If a visitor opens the form on a day with no scheduled services, the attendance section just doesn't appear β there's nothing to mark them present at.
What gets written β
When the visitor submits with the attendance toggle on, a row lands in the attendances table tying the new member to the selected meeting and today's date. That immediately means:
- They show up in Attendance β Today's services alongside everyone else.
- They're counted in this Sunday's attendance numbers in your reports.
- They register a first attendance, which can trigger workflows β e.g. "first-time attender β send welcome WhatsApp."
- Their member profile shows the attendance row on the Attendance tab.
Turning it off β
There's no per-field toggle for attendance like there is for the standard fields β it's inferred from whether you have meetings scheduled. To prevent the visitor form from offering attendance marking:
- Either leave the relevant day's services unscheduled.
- Or mark the meeting as internal so the public form skips it.
For churches that have lots of meetings but only want one or two on the visitor form, mark the rest as internal.
Combining hierarchy and attendance β
The two work better together. A visitor picks "Lagos campus," ticks the attendance toggle, picks "Sunday Service," and submits. The attendance row is written scoped to the Lagos campus's org_unit_id β so the per-campus attendance dashboard for Lagos immediately reflects the new visitor without any further routing.
This is the difference between a visitor form that creates a record and a visitor form that participates in your weekly rhythm. Setting both up takes about a minute total and removes a step that would otherwise live in a Monday morning data-entry queue.
Where to go next β
- After submission β what happens once the record + attendance are written.
- Workflow triggers β fire a welcome message when the attendance row appears.
- Messaging β sending the welcome WhatsApp or email.
- First-time visitor recipe β a worked example tying hierarchy, attendance, and follow-up together.
- Back to Visitor form overview.
