Personalized welcome: different greeting per visitor tier + visit tokens
The Personalized Welcome block renders one of four messages based on the visitor's relationship to your org. No tracking pixels — uses the Turtini auth context already loaded on every public site.
Visitor tiers (computed automatically, most-privileged wins):
• Staff — signed-in Turtini account that's a member of your org
• Customer — signed-in account with linkedOrgId matching yours
• Signed-in — any other signed-in Turtini account
• Anonymous — not signed in (default: block hides for this tier)
Per-tier configuration:
Each tier has its own template field and a Show/Hide toggle. Anonymous defaults to hidden so first-time visitors don't see a generic "Welcome" banner.
Tokens (replace in any tier template):
• {firstName} — first word of the visitor's display name
• {name} — full display name
• {orgName} — the site's owning org
• {lastVisit} — short date of their previous visit ("May 12")
• {sinceLastVisit} — relative time ("3 days ago", "yesterday", "a moment ago")
• {visitCount} — total visit count including this one
First-visit override:
A separate "First visit" template field is used INSTEAD of the tier templates when a signed-in visitor has no prior visit recorded. Lets you differentiate "First time here, Sarah? Welcome to {orgName}" from "Hi Sarah — good to see you again. Last here 4 days ago." Leave blank to use tier templates regardless.
Two visual styles:
• Banner — full-width strip with a faint accent background; slots above or below a hero block
• Card — centered tile with a faint accent background; works well in a content section
Visit tracking:
When a signed-in visitor opens the page, the block records the visit atomically (lastVisitAt + visitCount on /users/{uid}/siteVisits/{siteId}) and returns the PRIOR timestamp so the {lastVisit} token has a value. Server-side only — visitors can't spoof their own history. Anonymous visitors are never tracked.