ReferenceMeet

Meet permissions and states

Reference Meet access, profile visibility, setup limits, matching, contact states, Events behavior, and API boundaries.

Meet workspace authorization belongs to the confirmed signed-in account. It is not tied to an active organization, organization membership, organization-administrator status, or an organization service grant. The Events administration integration described below has its own Event-management boundary.

Access matrix

Account stateMeet access
Signed outRedirected to authentication before a Meet page opens.
Signed in but unconfirmedRedirected to /auth/confirm before Meet opens. If the shared first or last name is also missing, shared account onboarding can open first.
Confirmed and signed in, shared first or last name missingRedirected to the shared /app/users/onboarding page before Meet opens. Complete account onboarding, then return to Meet.
Confirmed and signed in with shared account onboarding complete, no Meet profile yetCan open setup. Meet creates the account’s initial profile from its name and email.
Confirmed and signed in, incomplete profileCan continue setup. Opening the Meet directory redirects to /setup.
Confirmed and signed in, completed profileCan use ordinary discovery, open eligible profiles, report a profile, and start or reopen a Messenger contact relationship.
Organization administrator or memberReceives no additional Meet capability solely from that organization role.

The Meet workspace has three product routes: /, /profile/:profile_id, and /setup. The shared /app/users/onboarding page is not a Meet route. The Meet profile route opens the selected profile inside the directory LiveView; it is not a meeting room.

Setup fields and limits

StepFieldRequirement and limit
1GP, LP, or OtherExactly one investor type is required before Continue is enabled.
2PhotoOptional JPG, JPEG, PNG, WEBP, or GIF; one upload entry per submission; maximum 25 MB (25,000,000 bytes). It updates the account’s shared avatar in the same transaction as the step-2 profile update.
2Full name (required)Required; maximum 160 characters. It changes the Meet public-profile name, not the signed-in account’s name.
2Company/Organization (required)Required. It is stored but is not rendered by the current Meet web card or profile panel.
2Job titleOptional; rendered when present.
2BioOptional in Meet setup; maximum 1,000 characters; rendered in the profile panel when present.
2ProfessionOptional; available as a discovery filter.
2Industry focusOptional; drives the From your industry section and an available filter.
2LocationOptional; rendered on cards and the profile panel when present.
2LinkedIn URLOptional; must be a valid linkedin.com URL. It is not rendered by the current Meet web card or profile panel.
3InterestsAt least three total across Asset Classes, Investment Focus, Strategies, and LP Type. The interface recommends 3–8, but eight is not an enforced maximum.

Step 1 persists when its Continue action succeeds. Step 2 then persists its profile details and optional avatar. Step 3 persists the four interest arrays and sets the profile’s completed flag. A later step failing does not roll back a previously saved step.

Discovery eligibility

Ordinary discovery includes only a candidate whose profile is complete, whose account is not deleted, who is not the viewer, and who is not involved in a block with the viewer in either direction. Search and filters apply after those boundaries; they cannot reveal an excluded profile.

The web directory initially shows up to four profiles in each section. See all loads up to 100 for the selected section. Results are sorted by descending match score before section membership is applied.

Investor type supports Is and Is not. Industry, Asset class, Investment focus, Strategies, LP type, and Profession use includes-any matching within each field. Geography uses contains matching, and Event requires accepted attendance. Different fields combine as AND.

Published Event choices use the visible label Event title - Organization name.

Match-score calculation

Meet calculates a Jaccard similarity independently for Asset Classes, Investment Focus, Strategies, and LP Type:

shared selections ÷ selections present on either profile

It excludes a category when both profiles have no values, gives every remaining category equal weight, averages them, multiplies by 100, and rounds to a whole number. With no comparable category, the result is 0.

Only Top picks for you shows the match badge in the web directory. The Event attendee list intentionally carries no match score.

Profile and contact states

StateMeet behavior
No direct chatShows Request to contact.
Rejected direct chatTreats the relationship as requestable again; a new request resets the existing direct chat to pending.
Pending, requested by either personShows Waiting for acceptance. A card can link to the existing Messenger chat. In Messenger, the requester can write while pending; the receiver cannot write until accepting.
AcceptedShows Send message and links to the existing Messenger chat.
Block in either directionRemoves the pair from ordinary discovery and rejects contact-request creation and direct-message writes in either direction.

A new request creates a pending direct chat, records the requester, enqueues a deduplicated asynchronous contact-request push attempt, broadcasts the chat-list update, and immediately redirects to Messenger. This creates no message and does not guarantee push delivery. The recipient—not the requester—can accept or reject a pending request in the messaging flow.

Meet itself has no block control. A block moves an existing direct room out of the normal Messenger list and into Blocked where applicable, while shared group-room messages remain. Unblocking restores direct eligibility only when every other profile and relationship constraint also passes.

Reporting state

Report profile requires one reason and accepts optional details. A successful submission creates a profile report in Pending status and reports Submitted the report. The moderation lifecycle can later move a report to Reviewed, Resolved, or Dismissed. Reporting and blocking are separate operations.

Events integration

The Event filter lists published Events and matches completed profiles with accepted attendance for the chosen Event. Meet profile panels list published Events for which the opened account has accepted attendance.

On an Event page, Meet treatment also depends on the Event’s Show Meet profiles to attendees? setting and the guest-list visibility rule. If those gates permit the current signed-in viewer, accepted attendees with completed Meet profiles can receive profile links. A completed viewer sees cards; a viewer without a completed Meet profile receives a setup prompt when other attendees are on Meet.

The separate Events administration route requires an owning-organization membership or a direct manager assignment. It does not grant more Meet workspace capability, and the manager does not need a completed Meet profile. In its default attendee column, On Meet means completed; Not on Meet includes an incomplete profile as well as no profile. The column shows the latest recorded invitation age only, and On Meet takes precedence after completion.

When delivery and the timestamp write both succeed, Events replaces the latest recorded invitation time. A persistence failure can leave that time unchanged after the email was delivered, so the column is not an exhaustive send history. Events provides no resend cooldown, invitation history, Meet-status filter, or Event messaging-log entry. Use Manage an event for the exact invitation and resend procedure.

API boundary

The authenticated /api/v1/meet-profiles product-client family currently provides read-only section discovery, name and structured search, filter metadata, and profile-detail reads. Its section responses use up to 10 profiles, and paginated section reads clamp per_page to 1–50.

That discovery family does not set up a profile, create a Meet contact request, submit a profile report, schedule a meeting, or join one. Its response fields are not a promise that the Meet web interface renders the same field. The broader authenticated client API is not read-only: the neighboring public-profile family includes profile updates, the reports family creates reports, and the user-block family creates and deletes blocks. Treat all of them as current product-client boundaries, not as a general-purpose public integration contract, until the platform API reference explicitly publishes a supported contract.

Tracked product boundaries

  • IO-11433 tracks inconsistent profile visibility across Meet surfaces. Treat ordinary discovery as the supported visibility boundary. If a profile appears unexpectedly, close it, do not redistribute it, and contact support.
  • IO-11434 tracks an Event-association visibility inconsistency. Treat an unexpected association as private, do not share it onward, and contact support.
  • IO-11438 tracks stale registry and setup copy that advertises scheduling and joining. The shipped Meet routes and controls support setup, discovery, contact handoff, reporting, and Event profile links—not scheduling or joining.