PUBLISHED config, and rendering through approved Winnerr block components.
Profile lifecycle
| Status | Behavior |
|---|---|
DRAFT | Edits land in draftConfig. The public URL still serves the last publishedConfig, or 404 if never published. |
PUBLISHED | publishedConfig is live at the public URL. Subsequent draft edits do not affect the live page until re-published. |
draftConfig. The live page does not change until you call publish:
draftConfig against the approved-block schema, copies it into publishedConfig, flips the status to PUBLISHED, and stamps publishedAt. If the body is omitted, the publish call defaults to the caller’s own profile.
Slug, custom domain, and branding
EachAgentPublicProfile carries:
| Field | Purpose |
|---|---|
slug | Org-scoped slug used in the public URL. |
customDomain | Optional vanity domain (same pattern as ClientPortal). |
brandKitId | Reference to a Brand Kit for colors, logo, voice, and compliance text. |
displayName, headline, bioMarkdown | Profile copy. |
headshotR2Key | The headshot image, served from R2 via R2_PUBLIC_URL. |
serviceAreas, specialties | Arrays surfaced as chips on the profile. |
licenseNumber, brokerageName | Hydrated from AgentInfo. |
socialLinks | Optional public socials. |
seoTitle, seoDescription, isIndexable | Search engine and crawler controls. |
What renders on the profile
Once published, the profile assembles:- Hero — headshot, display name, headline, brokerage info, aggregate rating.
- Aggregate stats — total reviews, average rating, NPS, response rate, review velocity.
- Testimonials — the agent’s
PUBLISHED+PUBLICtestimonials, ordered bysortOrderthencreatedAt. Featured testimonials surface first. - Badges — awarded
AgentBadgerecords and progress onReputationMilestonegoals. - Referral CTA — a form that posts to the public referral endpoint.
permissionUsePhoto simply omits the photo; one without permissionUseName falls back to authorDisplayName (“Jane D.”).
Embeddable reviews widget
The same approved testimonials and reputation aggregate that power the profile can also be embedded on your own website. Widgets are created and managed separately under Reputation → Widgets — see Reviews widget for the full guide including the one-line embed snippet, layout options, and the per-site origin allowlist.Reputation aggregate
TheReputationAggregate is the denormalized rollup that powers the profile, widget, broker dashboards, and lead routing. It is computed at agent scope (one row per agent) and optionally at org scope (scope: ORG, agentUserId: null) for org-wide rollups.
Read it via the authenticated API:
Related
- Testimonials — the content that the profile renders.
- Reviews widget — embed your reviews on your own website.
- Review syndication — Google and Facebook syndication keys, and Google Business Profile import, are configured on this same Profile page.
- Referrals — the public CTA that closes the flywheel.
- Reputation API — profile — authenticated GET / upsert / publish.