VRPlatformVRPlatform
Integrate & Migrate Data

Custom Owner Portal

Request a branded owner portal domain and email setup

Custom owner portal domains are available through a support-managed pilot. Submit a custom support request before changing DNS. Support confirms availability and supplies the exact records for your team. Support configures the feature without a customer-specific application release. A domain does not grant access: owners still need an invitation and permission to view their statements.

Set up the domain yourself

Teams enrolled by support can run the setup from team settings or the API. Only Team Admins can change it; other members can read it. Teams that are not enrolled keep the support-managed setup, and GET /team/owner-portal/setup reports setupEnabled: false.

  1. PUT /team/owner-portal/setup with expectedRevision: 0 adds the domain, branding and an optional sender in pending status.
  2. POST /team/owner-portal/setup/providers creates the Cloudflare, Clerk and Postmark records and returns each provider's status with the DNS records to add. Call it again to recheck after changing DNS; repeated calls create nothing new.
  3. Once Cloudflare and Clerk report verified, and Postmark too when a sender is set, send status: "active" with the current revision. Then send linksEnabled: true to use the domain in owner emails.
  4. Send status: "disabled" and linksEnabled: false to turn the portal off.
  5. DELETE /team/owner-portal/setup with the current revision removes a domain that is not live, together with its Cloudflare, Clerk and Postmark records, so another domain can be added. Turn a live domain off first. Links in emails already sent to owners stop opening once it is removed.

Each provider shows one status. missing means the record is not created yet; run step 2. pending means the provider is waiting for your DNS. DNS changes usually apply within an hour and can take up to a day. verified means the provider has checked the records. When your DNS is on Cloudflare, set every record to DNS only; proxied records cannot be verified.

Logos are uploaded with POST /team/owner-portal/setup/logo and must be square PNGs of at most 512 × 512 pixels and 200 KB. The portal uses the logo as its browser tab and home screen icon; without a logo, the icon is a square in the primary colour. The primary colour needs at least 4.5:1 contrast with white text. To change the sender of a live portal, call step 2 with senderFrom first and save the sender once Postmark reports verified.

Each team has one domain. A domain registered to another team is refused. Every write sends the current revision as expectedRevision; a stale revision is refused with ownerPortalChanged. Removing the platform footer stays with support. Every change appears in the team's audit log as an ownerPortal event.

What to provide

  • Your team ID and desired subdomain, such as owners.example.com.
  • A DNS administrator who can add the records supplied by support.
  • Your company display name, at most 60 characters.
  • A square PNG logo, at most 512 × 512 pixels and 200 KB, for upload to our asset storage.
  • A primary colour from the existing UI palette, or a colour for contrast review.
  • Your company/statement address and support phone, with contact labels at most 80 characters.
  • Your requested sender address and an existing, monitored reply-to mailbox.

Support checks that the selected colour has at least 4.5:1 contrast with button text and that the logo fits the fixed layout. Use the existing team settings for logo, colours, company name and contact details. Changes to the public sign-in brand require support to update the approved public presentation.

Fonts, spacing, positions, layouts and PDF templates cannot be changed. We do not supply a copy of our PDF generator. Existing email content editing remains available. Customer SMTP servers are not supported.

DNS and authentication

Support supplies portal ownership/routing records, a Clerk Frontend API CNAME and the Postmark DKIM and return-path records for your sending domain. Add those exact records and keep them in place. Do not change your existing MX records or add a second SPF record. Every record must be DNS-only when using Cloudflare.

Support verifies domain ownership, TLS and sending identity, then tests the portal with a controlled owner account before enabling links in outgoing invitations and statements. Domain setup does not activate customer access automatically.

Sign-in and account creation briefly visit VRPlatform's primary authentication domain, then return to your portal. Clerk satellites share the existing account and session. Owners do not need a separate account for the custom hostname.

Portal and email behaviour

The custom hostname covers the owner portal, statement links, invitation links, calendar, files and supported account features. Features remain subject to your existing settings and each owner's permissions. The custom portal displays only its registered team's profiles. Manager access uses the normal platform portal.

While the portal is active, the registered name is the brand owners see. It appears in the portal navigation and sign-in screens, the owner invitation page, the statement page and emailed statement link page, the header of owner statement and owner statement summary PDFs, and in the subject, body, sender name and footer of owner invitation and statement emails. Without an active portal, owner PDFs show the team's company name, or the team name when no company name is set, and owner emails use the platform name. The company name stays the legal name. Documents that identify the company legally, such as 1099 forms, the property manager statement and the trust reconciliation, keep it.

A requested sender identity is used only after support verifies it. An explicit verified reply-to mailbox receives replies. Statement PDFs keep their existing layout, contact details and page numbers. Support can disable the promotional platform footer with showPlatformBranding. Custom sender, name and footer settings apply only while the portal is active; a pending or disabled portal sends platform-branded mail from the platform sender.

Branding delivery to the portal

The portal edge reads approved presentation and routing for a registered hostname from an internal, machine-authenticated API and embeds it into every page it serves; the browser never calls the API for this. The embedded data exposes no owner records, balances or credentials. portalEnabled is false until activation and after disabling the portal, and the edge stops serving the portal in both states. The edge reuses a lookup for up to 30 seconds and the API for up to one minute, so activation changes apply within that window. Embedded presentation does not authorize API requests; authenticated team and owner permissions still apply.

{
  "hostname": "owners.example.com",
  "portalEnabled": true,
  "teamId": "11111111-1111-4111-8111-111111111111",
  "slug": "example-team",
  "dataRegion": "us",
  "name": "Example Company",
  "logo": null,
  "colorPrimary": "#1343CC",
  "showPlatformBranding": false,
  "signInUrl": "https://portal.vrplatform.app/owner-login?owner_portal=owners.example.com",
  "signUpUrl": "https://portal.vrplatform.app/owner-sign-up?owner_portal=owners.example.com"
}

Contact support before removing DNS or changing domains. Previously delivered links need to remain reachable during a domain change.

On this page