Skip to content

Object Types

These are the GraphQL object types returned by queries and mutations. Use the anchored headings (e.g. types#goal) to link from queries/mutations pages.

← Back to GraphQL API Reference


AcceptAllyInvitePayload

Autogenerated return type of AcceptAllyInvite.

FieldTypeDescription
errors[String!]!
userAllyUserAlly ()

AcceptAllyRequestPayload

Autogenerated return type of AcceptAllyRequest.

FieldTypeDescription
errors[String!]!
userAllyUserAlly ()

AcceptHabitIntegrationMappingPayload

Autogenerated return type of AcceptHabitIntegrationMapping.

FieldTypeDescription
errors[String!]!
mappingHabitIntegrationMapping ()

AcceptPaceSuggestionPayload

Autogenerated return type of AcceptPaceSuggestion.

FieldTypeDescription
errors[String!]!
goalGoal ()
previousTargetDateStringISO date string of the target date before this change — pass to updateGoal to undo.
proposedTargetDateStringISO date string of the newly applied target date.

AcceptPartnerRequestPayload

Autogenerated return type of AcceptPartnerRequest.

FieldTypeDescription
errors[String!]!
userAllyUserAlly ()

AcceptStreakMercyPayload

Autogenerated return type of AcceptStreakMercy.

FieldTypeDescription
errors[String!]!
goalGoal ()

AcceptTeamInvitePayload

Autogenerated return type of AcceptTeamInvite.

FieldTypeDescription
communityCountInt
errors[String!]!
preselectedCommunityIds[String!]
seatCapExceededBoolean!True only for the seat-cap-exhausted failure — the frontend shows SeatCapBlockerModal for this and nothing else.
teamTeam ()The joined team — lets JoinTeamView set the active team scope (OBJ-1830).
teamMembershipTeamMembership ()

AccountabilityPartner

The current accountability partner for a user.

FieldTypeDescription
accountabilityPartnerSinceISO8601DateTime ()When the partnership was established.
firstNameStringThe partner user's given name.
lastNameStringThe partner user's family name.
longestMutualStreakInt!All-time longest mutual streak between partners.
mutualStreakCountInt!Current mutual check-in streak between partners.
mutualStreakLastDateISO8601Date ()Date of the most recent mutual bonus award.
nudgeSentTodayBoolean!Whether the current user has already sent a nudge to their partner today.
partnerCheckedInTodayBoolean!Whether the partner has checked in today.
photoUserPhoto ()The partner user's profile photo.
publicIdID!The partner user's public identifier.
userCheckedInTodayBoolean!Whether the current user has checked in today.
usernameStringThe partner user's unique handle.

AchievementStats

Computed achievement and rank statistics for a user.

FieldTypeDescription
currentLevelInt!Actual XP level (1–10).
currentRankNameString!Rank name corresponding to the user's current level.
currentVolumeInt!Journey volume: 1 (levels 1–3), 2 (levels 4–6), 3 (level 7+).
currentXpInt!Total XP earned by the user.
earnedCountInt!Number of badges unlocked through action, excluding first_sign_in ("Day One") — the predicate the achievements empty-state UI gates on, since every signed-in user has Day One and unlocked_count alone can never reach 0 (OBJ-3879).
last7DaysXp[Int!]!Daily XP earned for each of the last 7 days, oldest first.
nextRankNameStringRank name for the next level, or null at max level.
rarePlusCountInt!Number of Rare, Epic, or Legendary badges the user has unlocked.
totalCountInt!Total number of badges available.
unlockedCountInt!Number of badges the user has unlocked.
xpToNextRankIntXP needed to reach the next rank, or null at max level.

AcknowledgeActionPayload

Autogenerated return type of AcknowledgeAction.

FieldTypeDescription
errors[String!]!
resultResult ()

AcknowledgeAllNotificationsPayload

Autogenerated return type of AcknowledgeAllNotifications.

FieldTypeDescription
errors[String!]!
resultResult ()

AcknowledgeCollectiveGoalPrivacyContractPayload

Autogenerated return type of AcknowledgeCollectiveGoalPrivacyContract.

FieldTypeDescription
acknowledgedBoolean
errors[String!]!

AcknowledgeNotificationPayload

Autogenerated return type of AcknowledgeNotification.

FieldTypeDescription
errors[String!]!
resultResult ()

ActivityItem

Recent platform activity item

FieldTypeDescription
actionString!
idID!
timestampString!
typeString!
userNameString!

AddCommunitySuggestionPayload

Autogenerated return type of AddCommunitySuggestion.

FieldTypeDescription
communitySuggestionCommunitySuggestion ()
errors[String!]!

AddGoalEventCommentPayload

Autogenerated return type of AddGoalEventComment.

FieldTypeDescription
errors[String!]!
goalEventCommentGoalEventComment ()

AddGoalEventPayload

Autogenerated return type of AddGoalEvent.

FieldTypeDescription
errors[String!]!
goalEventGoalEvent ()

AddGoalPayload

Autogenerated return type of AddGoal.

FieldTypeDescription
errors[String!]!
goalGoal ()

AddGoalToCommunityPayload

Autogenerated return type of AddGoalToCommunity.

FieldTypeDescription
communityGoalCommunityGoal ()
errors[String!]!

AddMoodLogPayload

Autogenerated return type of AddMoodLog.

FieldTypeDescription
errors[String!]!
moodLogMoodLog ()

AddPostCommentPayload

Autogenerated return type of AddPostComment.

FieldTypeDescription
errors[String!]!
postCommentPostComment ()

AdjustTeamSeatsPayload

Autogenerated return type of AdjustTeamSeats.

FieldTypeDescription
errors[String!]!
teamSubscriptionTeamSubscription ()

AdminAction

A log of administrative actions performed globally.

FieldTypeDescription
actionString!Legacy alias for actionType — retained for the pre-v1.7 GetRecentActions query.
actionTypeString!Action category — e.g. demo_data_full_reseed, update_demo_user.
actorUser! ()The admin user who performed this action.
adminUserUser! ()Legacy alias for actor — retained for the pre-v1.7 GetRecentActions query.
createdAtString!ISO 8601 timestamp when the action was performed.
idID!Integer ID.
metadataJSON ()Additional action details as JSON.
targetIdIntRaw polymorphic target DB ID — nullable alongside target_type. Prefer targetPublicId for display; this integer is retained for back-compat with the pre-v1.7 GetRecentActions query.
targetPublicIdIDOpaque public_id of the polymorphic target when it is a PublicRecord and still present. Null when the target has no public_id (non-PublicRecord reference table) or was deleted. Use this instead of targetId in UIs.
targetTypeStringPolymorphic target class — nullable for actions with no target (e.g. full demo-data reseed).

AdminActionConnection

The connection type for AdminAction.

FieldTypeDescription
edges[AdminActionEdge] ()A list of edges.
nodes[AdminAction] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

AdminActionEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeAdminAction ()The item at the end of the edge.

AdminAiUsage

Aggregated AI spend, usage, and budget utilization for the admin dashboard. Admin only.

FieldTypeDescription
budgetCentsInt!Monthly budget ceiling from Settings.ai.monthly_budget_cents.
budgetUtilizationPercentFloat!Month-to-date spend as a percent of the monthly budget.
dailySeries[DailyUsagePoint!]! ()Daily time series for the line chart (oldest → newest).
perFeature[FeatureUsagePoint!]! ()Breakdown by feature, sorted by cost_cents DESC.
perModel[ModelUsagePoint!]! ()Breakdown by model, sorted by cost_cents DESC.
perResolvedModel[ResolvedModelUsagePoint!]! ()Breakdown by resolved model, sorted by cost_cents DESC.
totalCallsInt!Count of AiUsageEvent rows over the selected window.
totalSpendCentsInt!Total AI spend in cents over the selected window.
totalTokensInt!Sum of total_tokens over the selected window.

AdminStats

Admin statistics for platform monitoring

FieldTypeDescription
completedGoalsInt!
criticalFlagsInt!Number of critical severity pending flags
goalCategories[CategoryStats!]! ()
goalsLast7DaysInt!
growthData[GrowthDataPoint!]! ()
pendingFlagsInt!Number of pending content moderation flags
pendingReportsInt!Number of pending user content reports
publicGoalsInt!
recentActivity[ActivityItem!]! ()
supporterStatsSupporterStats! ()MRR and active supporter counts by tier
totalEncouragementsInt!
totalEventsInt!
totalGoalsInt!
totalMilestonesInt!
totalUpdatesInt!
totalUsersInt!
usersLast30DaysInt!
usersLast7DaysInt!

AdminTeamMonitoring

Internal read-only monitoring row for a team (M11, PRIVACY-3). Admin-only. Carries no personal goal/mood/journal/coach data — seat and billing state only.

FieldTypeDescription
lastActiveAtISO8601DateTime ()Most recent updated_at across the team's members. Null for an empty team.
seatCountUsedInt!Current seat usage: total number of team memberships.
seatLimitIntSeat limit from the subscription. Null if no subscription.
subscriptionStatusStringRaw TeamSubscription.status: trialing, active, past_due, grace, or canceled. Null if no subscription.
teamNameString!The team name.
teamPublicIdString!The team public_id.

AiArtifact

FieldTypeDescription
aiRunAiRun! ()
approvalStatusString!
claimedAtISO8601DateTime ()
createdAtISO8601DateTime! ()
deliveredAtISO8601DateTime ()
deliveryMetadataJSON ()
editDistanceFloat
idString!
kindString!
payloadJSON! ()
rejectionReasonString
titleString

AiArtifactConnection

The connection type for AiArtifact.

FieldTypeDescription
edges[AiArtifactEdge] ()A list of edges.
nodes[AiArtifact] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

AiArtifactEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeAiArtifact ()The item at the end of the edge.

AiEmployee

FieldTypeDescription
activeBoolean!
aiEmployeeMemories[AiEmployeeMemory!]! ()
aiRuns[AiRun!]! ()
approvalRateData[ApprovalRateData!]! ()
autonomyLevelString!
crewString
currentMonthCostInt!
descriptionString
idString!
lastRunAiRun ()
mcpServers[String!]!
modelPreferenceString
monthlyBudgetCentsInt!
nameString!
nextRunAtISO8601DateTime ()
postFilterSkillString
promotionCriteriaPromotionCriteria ()
roleKeyString!
scheduleCronString
skillRefs[String!]!
taskPromptString

aiRuns arguments:

NameTypeRequiredDescription
limitIntNo
offsetIntNo

AiEmployeeConnection

The connection type for AiEmployee.

FieldTypeDescription
edges[AiEmployeeEdge] ()A list of edges.
nodes[AiEmployee] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

AiEmployeeEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeAiEmployee ()The item at the end of the edge.

AiEmployeeMemory

FieldTypeDescription
idString!
memoryDataJSON ()
memoryKeyString!
updatedAtISO8601DateTime! ()

AiRequest

FieldTypeDescription
completedAtISO8601DateTime ()
createdAtISO8601DateTime! ()
errorCodeString
errorMessageString
idID!
kindString!
resultJsonString
statusString!

AiRun

FieldTypeDescription
aiArtifacts[AiArtifact!]! ()
aiEmployeeAiEmployee! ()
completionTokensInt!
costCentsInt!
createdAtISO8601DateTime! ()
durationSecondsInt
errorMessageString
finishedAtISO8601DateTime ()
idString!
numTurnsInt
promptTokensInt!
runLogJSON ()
startedAtISO8601DateTime ()
statusString!
triggeredByString!

AllyActivity

A recent progress event from an accepted ally (friend), shown in the ally activity feed.

FieldTypeDescription
actionString!Verb describing what the ally did (e.g. "checked in on").
allyIdIDpublic_id of the ally user who performed the action.
allyNameString!Display name of the ally user.
allyPhotoStringProfile photo URL of the ally user.
communityIdIDpublic_id of the community involved, if any.
communityNameStringName of the community involved, if any.
detailsJSON ()Per-kind display payload; keys vary by kind.
idID!Public identifier for this activity record.
kindAllyActivityKindEnum ()Activity kind discriminator: JOIN, POST, ACHIEVEMENT, GOAL, or FOLLOW.
targetString!Name of the goal the ally acted on.
timestampString!Unix timestamp (string) when the activity occurred.

AllyInvite

An accountability-partner invite token generated by a user.

FieldTypeDescription
createdAtISO8601DateTime! ()When the invite was created.
expiresAtISO8601DateTime! ()When this invite expires (7 days from creation).
idID!Public identifier for this invite record.
statusString!Current status: pending, accepted, expired, or revoked.
tokenString!URL-safe invite token — embed in the deep link.

AllyInvitePreview

Minimal public preview of an accountability-partner invite — safe for unauthenticated access.

FieldTypeDescription
invalidReasonStringWhy the invite is invalid: 'expired', 'revoked', or 'not_found'. Null when valid is true.
inviterAvatarUrlStringURL for the inviter's profile photo, or null if none.
inviterNameStringThe inviter's display name.
validBoolean!Whether the invite is active and can be accepted.

AllySuggestion

A user suggested as a potential ally, with a human-readable rationale.

FieldTypeDescription
allyStatusAllyStatusEnum! ()Relationship status — always NONE for suggestions.
firstNameStringThe user's given name.
lastNameStringThe user's family name.
mutualCountInt!Number of communities shared with the current user.
photoUserPhoto ()The user's profile photo.
publicIdString!URL-safe public identifier of the suggested user.
reasonStringShort rationale, e.g. "Both in Marathon in 16 weeks".
usernameStringThe user's unique handle.

AnalyticsActivityHeatmap

Personal Analytics: trailing 90-day activity heatmap.

FieldTypeDescription
days[AnalyticsHeatmapDay!]! ()

AnalyticsCategoryCompletion

Personal Analytics: one category's completion % for the current month-to-date.

FieldTypeDescription
categoryString!Goal category name ("Other" for folded overflow).
pctFloat!Percent of that category's goals done this period (0–100).

AnalyticsCompletionByCategory

Personal Analytics: Completion-by-category chart series.

FieldTypeDescription
series[AnalyticsCategoryCompletion!]! ()

AnalyticsHeatmapDay

Personal Analytics: one day of the activity heatmap.

FieldTypeDescription
countInt!Number of activity actions on this date.
dateString!ISO8601 date.

AnalyticsMonthInReview

Personal Analytics: the Month-in-review hero card.

FieldTypeDescription
bestCategoryAnalyticsCategoryCompletion ()The leading category this period, or null with no data.
bestStreakInt!Peak streak length achieved this month-to-date.
daysActiveInt!Distinct days with activity this month-to-date.
daysInMonthInt!Total days in the current month.
goalsDoneInt!Goals completed this month-to-date.
xpEarnedInt!XP earned this month-to-date (badge-unlock proxy).

AnalyticsStreakHistory

Personal Analytics: trailing 26-week streak history.

FieldTypeDescription
currentRunInt!The user's current active streak.
points[AnalyticsStreakPoint!]! ()

AnalyticsStreakPoint

Personal Analytics: streak length as of one week-start.

FieldTypeDescription
dateString!ISO8601 date (week start).
lengthInt!Streak length as of this date.

AnalyticsXpOverTime

Personal Analytics: trailing 26-week cumulative XP.

FieldTypeDescription
points[AnalyticsXpPoint!]! ()

AnalyticsXpPoint

Personal Analytics: cumulative XP as of one week-start.

FieldTypeDescription
dateString!ISO8601 date (week start).
xpInt!Cumulative XP as of this date.

ApprovalRateData

FieldTypeDescription
approvedCountInt!
autoRejectedCountInt!
rejectedCountInt!
weekStartString!

ApproveAiArtifactPayload

Autogenerated return type of ApproveAiArtifact.

FieldTypeDescription
artifactAiArtifact ()
errors[String!]!

ArchiveFeedbackTagPayload

Autogenerated return type of ArchiveFeedbackTag.

FieldTypeDescription
errors[String!]!
feedbackTagFeedbackTag ()

ArchiveSubCommunityPayload

Autogenerated return type of ArchiveSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

BadgeStat

Unlock statistics for a single badge

FieldTypeDescription
badgeKeyString!The badge key (action name)
percentageFloat!Percentage of users who have unlocked this badge (0-100)

BeginImportPayload

Autogenerated return type of BeginImport.

FieldTypeDescription
dataImportDataImport ()
errors[String!]!

BlockAllyPayload

Autogenerated return type of BlockAlly.

FieldTypeDescription
errors[String!]!
successBoolean!

BulkReviewContentFlagsPayload

Autogenerated return type of BulkReviewContentFlags.

FieldTypeDescription
errors[String!]!
reviewedCountInt!

CancelSupporterSubscriptionPayload

Autogenerated return type of CancelSupporterSubscription.

FieldTypeDescription
errors[String!]!
successBoolean!

CancelTeamSubscriptionPayload

Autogenerated return type of CancelTeamSubscription.

FieldTypeDescription
errors[String!]!
successBoolean!

CascadeCounts

FieldTypeDescription
adminActionsInt!
aiEmployeeMemoriesInt!
communityCommentsInt!
communityMembershipsInt!
communityPostsInt!
goalEventEncouragementsInt!
goalEventsInt!
goalsInt!
milestonesInt!
moodLogsInt!
userInt!
userActionsInt!
userDevicesInt!

CascadePreview

FieldTypeDescription
countsCascadeCounts! ()
totalModelsInt!
totalRecordsInt!

CategoryStats

Statistics for goal categories

FieldTypeDescription
countInt!
nameString!

ChallengeParticipant

A single user participation record within a community challenge, tracking progress toward completion.

FieldTypeDescription
communityChallengeCommunityChallenge ()The challenge this participation belongs to.
completedBoolean!Whether the participant has met the completion threshold.
completedAtISO8601DateTime ()When the target was crossed. Nil if not yet complete.
progressCountInt!Number of qualifying goal events logged so far.
progressPercentFloat!Progress toward completion as a percentage (0–100), clamped.
publicIdID!URL-safe public identifier for this participation record.
rankIntLeaderboard rank (1-indexed). Set by the leaderboard resolver; nil outside that context.
userUser ()The participating user.
userPublicIdStringPublic ID of the participating user (safe for membership checks).

CheckInHabitPayload

Autogenerated return type of CheckInHabit.

FieldTypeDescription
checkinTokenStringRotated check-in token, present only when this request was authenticated by a check-in token. A rejected rotation (nil) is native's signal to fall back to the foreground drain.
errors[String!]!
goalGoal ()
goalEventGoalEvent ()

CheckValidUsernamePayload

Autogenerated return type of CheckValidUsername.

FieldTypeDescription
errors[String!]!
resultResult ()

ClaimAiArtifactPayload

Autogenerated return type of ClaimAiArtifact.

FieldTypeDescription
artifactAiArtifact ()
errors[String!]!

ClaimStreakInsurancePayload

Autogenerated return type of ClaimStreakInsurance.

FieldTypeDescription
errors[String!]!
goalGoal ()

CoachAction

A tappable action chip suggested by the Coach alongside its reply.

FieldTypeDescription
kindString!Action discriminator: log_event | log_mood | view_goal | create_milestone | open_meet_coach.
labelString!Human-readable button label (e.g. "Log progress on Run a 5K").
targetIdStringpublic_id of the target record (e.g. goal public_id for log_event). Null for actions with no specific target.

CoachConversation

A persisted conversation thread between a user and their Coach.

FieldTypeDescription
goalIdStringpublic_id of the goal this thread is scoped to, or null for the global thread.
idString!public_id of this conversation.
lastMessageAtISO8601DateTime ()Timestamp of the last message.
messages[CoachMessage!]! ()Messages in this thread, oldest first.

CoachingPreferences

AI Coach persona and communication preferences for the user.

FieldTypeDescription
configuredBoolean!Whether the user has completed coach setup.
depthInt!Response depth from 1 (brief) to 5 (detailed).
focusPrimaryString!Primary coaching focus area.
focusSecondaryStringOptional secondary coaching focus area.
personaString!Selected coaching persona identifier.
rhythmString!How often Coach reaches out proactively.
toneBrevityInt!Tone brevity from 0 to 4.
toneWarmthInt!Tone warmth from 0 to 4.

CoachMessage

A single message in a Coach conversation thread.

FieldTypeDescription
contentString!Message text.
createdAtISO8601DateTime! ()When this message was sent.
idString!public_id of this message.
roleString!Who sent the message: "user" or "assistant".

CoachModelChange

One entry in the Coach model change history, sourced from admin_actions.

FieldTypeDescription
actorNameStringThe admin's full name, or null if unavailable.
changedAtISO8601DateTime! ()When the change was made.
fromModelStringPrior model id — null for the very first change.
toModelString!Model id the setting was changed to.

CoachModelOption

An allowlisted Gemini model id Coach may run, with its current effective rate.

FieldTypeDescription
idString!Concrete model id (e.g. gemini/gemini-2.5-flash).
inputCentsPerMillionInt!Current input rate, cents per million tokens.
labelString!Human-readable name derived from the model id.
outputCentsPerMillionInt!Current output rate, cents per million tokens.

CoachModelSetting

The runtime Coach Gemini model setting: current value, allowlisted options, and recent change history.

FieldTypeDescription
currentModelString!The model id Coach is currently running.
options[CoachModelOption!]! ()Allowlisted model ids with their current effective rates.
recentChanges[CoachModelChange!]! ()Last 5 changes to the setting, newest first.

CollectiveGoal

A collective (team-wide or sub-community) goal (N15/N16).

FieldTypeDescription
contributors[CollectiveGoalContributor!]! ()
createdByString!
currentInt!
daysLeftIntNull when no deadline is set (no CreateCollectiveGoal argument sets one this phase) — never a fabricated 0.
publicIdID!
scopeString!
targetInt!
targetMetricString!One of CollectiveGoal::TARGET_METRICS (check_ins, milestones_completed, members_active_days, custom).
titleString!
yourContributionCollectiveGoalYourContribution ()

CollectiveGoalContributor

A contributor slice on a collective goal (N16).

FieldTypeDescription
anonymousBoolean
colorString
countInt!
idID!
nameString!

CollectiveGoalYourContribution

The viewer's own contribution to a collective goal (N16).

FieldTypeDescription
countInt!
sourceGoalString!

CommitImportPayload

Autogenerated return type of CommitImport.

FieldTypeDescription
dataImportDataImport ()
errors[String!]!

Community

An interest-based group where users share goals and support each other.

FieldTypeDescription
activeChallengeCommunityChallenge ()The currently active challenge for this community, or nil.
activeMembersInt!Count of members who posted or commented in the past 7 days.
archiveDaysLeftIntDays remaining in the 30-day archive read-only window, or nil when not archived.
archivedAtISO8601DateTime ()When this Team sub-community began its archive window, or nil.
badgesCommunityBadges! ()Threshold and status marks describing this community.
categoryStringGeneral category label for the community (e.g. "fitness").
checkInsPerWeekInt!Check-ins logged by members in the trailing 7 days. Always 0 in Phase 3 — no check-in tracking model exists yet for sub-communities.
coverImageStringURL of the community banner/cover image.
createdAtISO8601DateTime! ()ISO 8601 datetime when the community was created.
createdAtTimeString!Unix timestamp (string) when the community was created.
demoBoolean!Whether this community is a demo-tagged record (Phase 30).
descriptionStringHuman-readable description of the community purpose.
editorialPositionIntDisplay order within editorial_slot, or nil when unassigned.
editorialSlotStringEditorial discovery slot this community is assigned to, or nil when unassigned.
feedItems[CommunityFeedItem!] ()Recent activity feed items for this community.
goalCategoryGoalCategory ()The primary goal category this community is focused on.
goals[Goal!] ()Goals that have been shared into this community.
growthRateFloat!Member growth rate as a percentage over the past 7 days.
guidelinesStringCommunity rules and posting guidelines.
healthScoreInt!Computed health score (0–100) reflecting community engagement.
iconString!Display icon key for a Team sub-community (sunrise/book/leaf/mountain/users).
idID!Alias of publicId (BaseObject#id) — the Teams frontend list types key on both.
imageUrlStringURL of the community avatar/icon image.
isDefaultBoolean!Alias of isDefaultForTeam — the Teams frontend (types.ts TeamRoom.isDefault, and every sub-community mutation/query response) is frozen on this shorter name.
isDefaultForTeamBoolean!Whether this is the Team's default landing room.
isFeaturedBoolean!Whether the community is featured on the discovery page.
isFoundingBoolean!True when the community became discoverable within 30 days of its creation.
isGatedBoolean!True when join_policy is "request" — joining requires the lead to approve.
isMemberBoolean!Whether the current user is a member of this community.
isVerifiedBoolean!Whether the community has been verified by Objectuve admins.
joinPolicyString!Join policy for a Team sub-community: "open" or "request".
leadMembershipIdIDPublic ID of the sub-community lead's TeamMembership on this team, or nil when the lead has since left the team.
leadNameStringThe sub-community's lead (its admin-role CommunityMember) first name, or nil.
memberCountInt!Total number of members in this community.
members[CommunityMember!] ()All current members of this community.
membersToDiscoverableInt!Members still needed to appear in discovery (0 when discoverable).
nameString!Display name of the community.
pastChallenges[CommunityChallenge!] ()Completed challenges for this community.
privacyString!Privacy level string: "public" or "private".
privateBoolean!When true, membership requires an invite or approval.
publicIdID!URL-safe public identifier for this community.
reasonCommunityReason ()Disclosable reason this community is ranked here, or null.
teamIdIDPublic ID of the owning Team, when this community is a Team sub-community.
teamNameStringDisplay name of the owning Team, when this community is a Team sub-community, or nil.
totalGoalsInt!Total number of goals shared in this community.
upcomingChallenges[CommunityChallenge!] ()Upcoming challenges for this community.
updatedAtTimeString!Unix timestamp (string) when the community was last updated.
userProgressPercentFloatPer-user aggregate progress (0–100) across shared goals. Null when no shared goals.

CommunityBadges

Threshold and status marks describing a community. Each field states its own threshold — see field descriptions.

FieldTypeDescription
club1kBoolean!1,000 or more people are currently members of this community.
featuredBoolean!An Objectuve admin has marked this community as featured. Does not affect discovery ranking.
streak100Boolean!10 or more current members have each reached a streak of 100 days or longer at some point. Derived from users.longest_streak, which is monotonic — never from current_streak, which goes stale.
wins500Boolean!Members of this community have completed 500 or more goals, all-time.

CommunityChallenge

A time-boxed challenge within a community where participants track progress toward a shared goal.

FieldTypeDescription
badgeIconString!Emoji or icon string for the completion badge.
badgeNameString!Name of the badge awarded to challenge completers.
communityCommunity! ()The community this challenge belongs to.
createdAtTimeString!Unix timestamp (string) when the challenge was created.
creatorUser! ()The user who created the challenge.
currentUserParticipantChallengeParticipant ()The current user's participation row, or nil.
descriptionStringOptional description of the challenge.
endDateISO8601Date! ()Date when the challenge ends (inclusive).
isParticipatingBoolean!Whether the current user is an active participant.
nameString!Display name of the challenge.
participantCountInt!Total number of active participants in the challenge.
publicIdID!URL-safe public identifier for this challenge.
startDateISO8601Date! ()Date when the challenge begins.
statusString!Date-derived status: "upcoming", "active", or "completed".
targetGoalCountInt!Number of qualifying goal events required to complete the challenge.
targetGoalTypeGoalType ()Optional goal type filter. Nil means any goal event counts.
updatedAtTimeString!Unix timestamp (string) when the challenge was last updated.

CommunityEvent

A scheduled event or activity within a community.

FieldTypeDescription
attendeeCountInt!Number of community members who have indicated they will attend.
communityIdID!public_id of the community hosting this event.
communityNameString!Name of the community hosting this event.
dateString!Unix timestamp (string) of when the event takes place.
descriptionStringOptional longer description of what the event involves.
idID!Public identifier for this event.
titleString!Title of the community event.

CommunityFeedItem

A single item in a community activity feed (e.g. a goal update or milestone).

FieldTypeDescription
contentString!Text content of the feed item.
createdAtTimeString!Unix timestamp (string) when this item was created.
idID!Public identifier for this feed item.
mediaCommunityMedia ()Optional media attachment for this feed item.
updatedAtTimeString!Unix timestamp (string) when this item was last updated.

CommunityGoal

A goal that has been shared into a community, linking the goal to the community feed.

FieldTypeDescription
communityCommunity ()The community the goal was shared into.
createdAtTimeString!Unix timestamp (string) when the goal was shared into the community.
goalGoal ()The goal that was shared.
idID!Public identifier for this community-goal association.
updatedAtTimeString!Unix timestamp (string) when the association was last updated.

CommunityInsights

Community engagement insights and recommendations for a specific user.

FieldTypeDescription
achievementsUnlockedInt!Number of community-related achievements unlocked by the user.
communitiesJoinedInt!Total number of communities the user has joined.
hasGoalSignalBoolean!True when the user has at least one goal with a goal category set — the signal the Explore subhead (UI-SPEC v4.63 Phase 4 §4) keys its S1/S2/S3 states on.
partnersCountInt!Count of accepted accountability partners for the user.
postsThisWeekInt!Number of posts the user has made in communities this week.
suggestedCommunities[SuggestedCommunity!]! ()Communities recommended for the user to join based on their interests.
suggestedCountInt!Number of communities suggested for the user to join.
totalEngagementInt!Aggregate engagement score across all communities.
trendingCommunities[TrendingCommunity!]! ()Currently trending communities across the platform.
upcomingEvents[CommunityEvent!]! ()Upcoming events in communities the user belongs to.
yourActivity[UserActivity!]! ()Recent activity items for the user across their communities.

CommunityMedia

A media attachment (image) associated with a community feed item or post.

FieldTypeDescription
idID!Public identifier for this media record.
imageUrlStringURL of the image.
nameStringOptional descriptive name or caption for the image.

CommunityMember

A user membership record within a community, with engagement statistics.

FieldTypeDescription
createdAtTimeString!Unix timestamp (string) when the user joined the community.
goalsCompletedInt!Number of goals completed by this user (proxy for community contribution).
helpfulCountInt!Count of helpful reactions received by this user in the community.
idID!Public identifier for this membership record.
joinedDateString!Unix timestamp (string) alias for created_at_time.
pointsInt!Engagement points accumulated by this member in the community.
postsCountInt!Number of posts this user has made in this community.
rankIntLeaderboard rank of this member within the community.
roleString!Role within the community (e.g. "member", "moderator", "admin").
updatedAtTimeString!Unix timestamp (string) when the membership record was last updated.
userUser ()The user who is a member of the community.
userPublicIdStringPublic ID of the member user (safe for membership checks).

CommunityPost

A discussion post or update made by a user within a community.

FieldTypeDescription
comments[PostComment!]! ()Comments left on this post.
communityIdID!public_id of the community this post belongs to.
contentString!Body text of the post.
goalIdIDpublic_id of the goal linked to this post, if any.
goalNameStringName of the linked goal, if any.
idID!Public identifier for this post.
likesInt!Number of like reactions on this post.
timestampString!Unix timestamp (string) when the post was created.
typeString!Post type (e.g. "update", "goal_share", "milestone").
userIdID!public_id of the user who created the post.
userNameString!Username of the post author.
userPhotoStringProfile photo URL of the post author.

CommunityReason

The single reason a discovery surface is allowed to show this community, chosen by fixed precedence (goal_category -> seasonal_event -> community_health), never by score. The backend never returns kind: "ally_overlap" — ally overlap ranks but is never disclosed (v4.63 Phase 4 §1).

FieldTypeDescription
disclosableBoolean!false for ally_overlap, true for every other kind. Belt-and-braces: the resolver already withholds ally_overlap reasons, but the flag lives on the reason so the frontend is never the thing that remembers which signals are safe to show.
kindString!One of: goal_category, seasonal_event, community_health, ally_overlap. (ally_overlap is never actually returned by any resolver.)
labelStringThe interpolation value only, verbatim and un-re-cased — the goal category name or the SeasonalEvent display name. null for community_health. The frontend composes the chip sentence (UI-SPEC v4.63 Phase 4 §2); this field never carries pre-composed copy.

CommunitySuggestion

A user-submitted suggestion for a new community topic or interest area.

FieldTypeDescription
contentString!Text of the community suggestion.
goalCategoryGoalCategory ()Goal category the suggested community would belong to, if specified.
goalKindGoalType ()Goal type the suggested community would focus on, if specified.
idID!Public identifier for this suggestion.

CompleteOnboardingAndCreateGoalPayload

Autogenerated return type of CompleteOnboardingAndCreateGoal.

FieldTypeDescription
errors[String!]!
goalGoal ()
userUser ()

ConnectChessComPayload

Autogenerated return type of ConnectChessCom.

FieldTypeDescription
errors[String!]!
integrationConnectionIntegrationConnection ()

ConnectedApps

The current user's Connected Apps state: the provider catalog plus their own connections and mappings.

FieldTypeDescription
connections[IntegrationConnection!]! ()The current user's connections.
mappings[HabitIntegrationMapping!]! ()The current user's habit mappings.
providers[IntegrationProvider!]! ()All available providers.

ConnectStravaPayload

Autogenerated return type of ConnectStrava.

FieldTypeDescription
authorizeUrlString!
errors[String!]!

ContentFlag

FieldTypeDescription
authorNameString
contentPreviewStringFirst 200 characters of flagged content
createdAtString!
flaggableIdInt!
flaggableTypeString!
idString!Public ID
reasonString
reviewedAtString
reviewerNameString
severityString!
sourceString!
statusString!

ContentFlagConnection

The connection type for ContentFlag.

FieldTypeDescription
edges[ContentFlagEdge] ()A list of edges.
nodes[ContentFlag] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

ContentFlagEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeContentFlag ()The item at the end of the edge.

ContentReport

FieldTypeDescription
contentPreviewString
createdAtString!
detailsString
idString!Public ID
reasonString!
reportableTypeString!
reporterNameString
statusString!

CreateAllyInvitePayload

Autogenerated return type of CreateAllyInvite.

FieldTypeDescription
errors[String!]!
inviteAllyInvite ()

CreateCheckoutSessionPayload

Autogenerated return type of CreateCheckoutSession.

FieldTypeDescription
checkoutUrlString
errors[String!]!

CreateCollectiveGoalPayload

Autogenerated return type of CreateCollectiveGoal.

FieldTypeDescription
collectiveGoalCollectiveGoal ()
errors[String!]!
teamReadOnlyBoolean!True only for the grace-period read-only failure — the frontend renders its own "team is read-only" copy for this.

CreateCommunityChallengePayload

Autogenerated return type of CreateCommunityChallenge.

FieldTypeDescription
communityChallengeCommunityChallenge ()
errors[String!]!

CreateCommunityPayload

Autogenerated return type of CreateCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

CreateCommunityPostPayload

Autogenerated return type of CreateCommunityPost.

FieldTypeDescription
errors[String!]!
postCommunityPost ()

CreateFeedbackCommentPayload

Autogenerated return type of CreateFeedbackComment.

FieldTypeDescription
errors[String!]!
feedbackCommentFeedbackComment ()

CreateFeedbackPostPayload

Autogenerated return type of CreateFeedbackPost.

FieldTypeDescription
errors[String!]!
feedbackPostFeedbackPost ()

CreateFeedbackTagPayload

Autogenerated return type of CreateFeedbackTag.

FieldTypeDescription
errors[String!]!
feedbackTagFeedbackTag ()

CreateSeasonalEventPayload

Autogenerated return type of CreateSeasonalEvent.

FieldTypeDescription
errors[String!]
seasonalEventSeasonalEvent ()

CreateSubCommunityPayload

Autogenerated return type of CreateSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!
teamReadOnlyBoolean!True only for the grace-period read-only failure — the frontend renders its own "team is read-only" copy for this.

CreateTeamInvitePayload

Autogenerated return type of CreateTeamInvite.

FieldTypeDescription
errors[String!]!
joinUrlString
teamInviteTeamInvite ()
teamReadOnlyBoolean!True only for the grace-period read-only failure — the frontend renders its own "team is read-only" copy for this.

CriticalPathPlayStatus

Today's Critical Path puzzle status for the authenticated user.

FieldTypeDescription
completedBoolean!Whether the user has completed today's puzzle.
elapsedSecondsIntTime taken in seconds; null if not yet completed.
percentileIntRank percentile (1-99) among all players today; null when fewer than 10 plays recorded.
puzzleDateISO8601Date! ()UTC calendar date of today's puzzle.
puzzleSeedInt!YYYYMMDD integer seed identifying today's puzzle; matches frontend dailySeed().
typicalSecondsIntMedian elapsed_seconds of the player's last 10 prior plays at the same grid size; null when fewer than 3 comparable plays exist.

CriticalPathReminderPreferences

Daily reminder preferences for the Critical Path feature.

FieldTypeDescription
enabledBoolean!Whether the user has opted into daily reminders.
timeOfDayString!Preferred local send time in HH:MM format. Defaults to '08:00'.
timezoneString!User's current IANA timezone string.
timezoneNeedsConfirmationBoolean!True when reminders are on but the timezone is still the UTC default.

CriticalPathTheme

A Critical Path visual theme and its unlock requirement.

FieldTypeDescription
keyString!Theme identifier key (e.g. 'forest').
nameString!Display name shown to the user.
unlockThresholdInt!Minimum stim_streak_longest required to unlock this theme.

DailyUsagePoint

Single day of AI usage data for the daily spend line chart.

FieldTypeDescription
callCountInt!Number of AI calls made on this UTC day.
costCentsInt!Total AI spend in cents for this UTC day.
dateString!ISO date (YYYY-MM-DD) in UTC.
tokenCountInt!Total tokens consumed on this UTC day.

DashboardPreferences

Dashboard hierarchy view preferences for the user (v4.15).

FieldTypeDescription
densityString!Dashboard density: standard or detailed.
modeString!Dashboard mode: focus, standard, detailed, or auto.

DataImport

FieldTypeDescription
collisions[DataImportCollision!]! ()
committedAtISO8601DateTime ()
completionCountInt!Check-in rows that will import — excludes error rows.
createdAtISO8601DateTime! ()
createdCountInt!
currentStepInt!
currentStreakIntPost-import User#current_streak. Only meaningful once status is committed.
failedCountInt!
goalCountInt!Goal rows that will import — excludes error rows and sub-goals.
idID!
rowErrors[DataImportRowIssue!]! ()
rowWarnings[DataImportRowIssue!]! ()
skippedCountInt!
sourceString!
statusString!
totalStepsInt!

DataImportCollision

FieldTypeDescription
externalIdString
nameString!

DataImportRowIssue

FieldTypeDescription
fileString!
lineInt!
reasonString!

DeclineAllyRequestPayload

Autogenerated return type of DeclineAllyRequest.

FieldTypeDescription
errors[String!]!
successBoolean!

DeclinePartnerRequestPayload

Autogenerated return type of DeclinePartnerRequest.

FieldTypeDescription
errors[String!]!
userAllyUserAlly ()

DeleteDemoEntityPayload

Autogenerated return type of DeleteDemoEntity.

FieldTypeDescription
errors[String!]!
successBoolean!

DeleteNotificationPayload

Autogenerated return type of DeleteNotification.

FieldTypeDescription
errors[String!]!
resultResult ()

DeleteOwnAccountPayload

Autogenerated return type of DeleteOwnAccount.

FieldTypeDescription
errors[String!]!
successBoolean!

DemoDataRunStatus

Progress of an in-flight or recently completed demo-data Sidekiq job.

FieldTypeDescription
currentStepInt!
errorString
finishedAtISO8601DateTime ()
scopeStringScope name for ScopeResetJob; null otherwise.
startedAtISO8601DateTime ()
statusString!'idle' | 'queued' | 'running' | 'succeeded' | 'failed'
totalStepsInt!

DemoScopePreview

Live counts of demo-tagged records across the 12 demo-bearing tables.

FieldTypeDescription
aiArtifactsInt!
aiEmployeesInt!
aiRunsInt!
communitiesInt!
feedItemsInt!
feedbackCommentsInt!
feedbackPostsInt!
feedbackVotesInt!
goalEventsInt!
goalsInt!
totalRecordsInt!
userAlliesInt!
usersInt!

DisconnectIntegrationConnectionPayload

Autogenerated return type of DisconnectIntegrationConnection.

FieldTypeDescription
errors[String!]!
integrationConnectionIntegrationConnection ()

DiscoveryMember

A minimal, public-safe preview of a community member for discovery surfaces.

FieldTypeDescription
avatarUrlStringURL for the member's profile photo, or null if none.
displayNameString!The member's display name.
publicIdID!The member's public identifier.

DismissDashboardHintPayload

Autogenerated return type of DismissDashboardHint.

FieldTypeDescription
successBoolean!

DismissEnneagramCardPayload

Autogenerated return type of DismissEnneagramCard.

FieldTypeDescription
successBoolean!

DismissHabitIntegrationMappingPayload

Autogenerated return type of DismissHabitIntegrationMapping.

FieldTypeDescription
errors[String!]!
mappingHabitIntegrationMapping ()

DocsAssistantAnswer

Response payload for askDocsQuestion.

FieldTypeDescription
answerStringAssistant answer text. Null when state is DISABLED.
citations[DocsAssistantCitation!]! ()Sources the answer drew from. Always empty when state is REFUSED or DISABLED.
stateDocsAssistantStateEnum! ()Terminal state discriminator.

DocsAssistantCitation

A single source the docs assistant drew its answer from — a docs/ path from the committed engineering docs corpus.

FieldTypeDescription
pathString!Source path within docs/ (e.g. "architecture/authentication.md").
titleStringThe page title, for display in a source chip.

EditHabitIntegrationMappingPayload

Autogenerated return type of EditHabitIntegrationMapping.

FieldTypeDescription
errors[String!]!
mappingHabitIntegrationMapping ()

EndPartnershipPayload

Autogenerated return type of EndPartnership.

FieldTypeDescription
errors[String!]!
userAllyUserAlly ()

EnneagramAssessment

A completed Enneagram personality assessment result.

FieldTypeDescription
completedAtISO8601DateTime! ()When the assessment was completed.
dominantTypeInt!Dominant Enneagram type (1–9).
idID!public_id of the assessment.
scoresJSON! ()Normalized type scores — hash keyed "1".."9", values 0–100.
tritypeString!3-character tritype string (e.g. "583").
wingInt!Wing type — adjacent type with the higher score.

EnqueueClearPayload

Autogenerated return type of EnqueueClear.

FieldTypeDescription
errors[String!]!
jobIdString

EnqueueReseedPayload

Autogenerated return type of EnqueueReseed.

FieldTypeDescription
errors[String!]!
jobIdString

EnqueueScopeResetPayload

Autogenerated return type of EnqueueScopeReset.

FieldTypeDescription
errors[String!]!
jobIdString
scopeString

EnsureTodaysCoachMessagePayload

Autogenerated return type of EnsureTodaysCoachMessage.

FieldTypeDescription
generatedBoolean!
insightString!

ExecuteDeletionPayload

Autogenerated return type of ExecuteDeletion.

FieldTypeDescription
errors[String!]!
gdprRequestGdprRequest ()

ExecuteExportPayload

Autogenerated return type of ExecuteExport.

FieldTypeDescription
errors[String!]!
gdprRequestGdprRequest ()

FeatureUsagePoint

Per-feature AI usage aggregation point for the admin dashboard.

FieldTypeDescription
callCountInt!Number of AI calls made for this feature over the window.
costCentsInt!Sum of cost_cents over the window, rounded to the nearest cent.
featureString!Feature name (e.g. coaching, milestones, insights).
tokenCountInt!Sum of total_tokens over the window.

FeedbackCategoryBreakdown

FieldTypeDescription
countInt!
nameString!

FeedbackComment

A comment on a feedback post.

FieldTypeDescription
bodyString!The comment text.
createdAtISO8601DateTime! ()
idID!Public identifier for this comment.
isOfficialBoolean!Whether this is an official team response.
userUser! ()The user who wrote this comment.

FeedbackPost

A user-submitted feedback post (feature request, improvement, bug report).

FieldTypeDescription
categoryString!Category: feature, improvement, bug, or other.
commentCountInt!Total number of comments.
comments[FeedbackComment!]! ()Comments on this post.
createdAtISO8601DateTime! ()
descriptionStringDetailed description of the feedback.
idID!Public identifier for this feedback post.
shippedAtISO8601DateTime ()When this post was marked as completed/shipped.
statusString!Status: open, planned, in_progress, completed, or declined.
tags[FeedbackTag!]! ()Tags attached to this post.
titleString!Title of the feedback post.
userUser! ()The user who created this post.
voteCountInt!Total number of votes.
votedByCurrentUserBoolean!Whether the current user has voted on this post.

FeedbackStats

Aggregate statistics for the feedback board (admin only).

FieldTypeDescription
categoryBreakdown[FeedbackCategoryBreakdown!]! ()
completedPostsInt!
declinedPostsInt!
inProgressPostsInt!
openPostsInt!
plannedPostsInt!
postsThisWeekInt!
topPosts[FeedbackPost!]! ()
totalCommentsInt!
totalPostsInt!
totalVotesInt!

FeedbackTag

An admin-managed tag that can be applied to feedback posts.

FieldTypeDescription
archivedBoolean!Whether this tag has been archived.
createdAtISO8601DateTime! ()
descriptionStringOptional description of the tag.
idID!Public identifier for this feedback tag.
nameString!Display name of the tag.
positionInt!Display order position.
postsCountInt!Number of feedback posts carrying this tag.
slugString!URL-safe slug for this tag.

FeedbackTheme

FieldTypeDescription
postCountInt!
summaryString
titleString
voteTotalInt!

FeedbackWeeklySummary

Coach-analyzed themed summary of the past week of feedback board posts (admin only).

FieldTypeDescription
emergingRequests[String!]!
generatedAtISO8601DateTime! ()
themes[FeedbackTheme!]! ()

FeedUpdatePayload

Invalidation ping for the unified activity feed — not a rendered item. The client refetches page 1 through unifiedFeed on receipt.

FieldTypeDescription
occurredAtString!Unix timestamp (string) when this ping was triggered.
sourceString!Which feed source changed — matches UnifiedFeedItemType#feed_type (ally_activity, community_post, notification, own_activity). A reconnect catch-up ping (unknown source) never reaches the client as a GraphQL payload — it is synthesized client-side by useLiveQuery on socket restore.

FollowCommunityPayload

Autogenerated return type of FollowCommunity.

FieldTypeDescription
resultResult ()

GdprRequest

FieldTypeDescription
cascadePreviewCascadePreview ()
dueByISO8601DateTime! ()
exportExpiresAtISO8601DateTime ()
exportFileUrlString
fulfilledAtISO8601DateTime ()
fulfilledByUser ()
notesString
publicIdString!
receivedAtISO8601DateTime! ()
requestTypeString!
requestorEmailString!
statusString!

GdprRequestConnection

The connection type for GdprRequest.

FieldTypeDescription
edges[GdprRequestEdge] ()A list of edges.
nodes[GdprRequest] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

GdprRequestEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeGdprRequest ()The item at the end of the edge.

GenerateGoalDraftPayload

Autogenerated return type of GenerateGoalDraft.

FieldTypeDescription
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving the draft inline (v4.60 Phase 4). Subscribe to aiRequestUpdate(requestId: id) or poll aiRequest(id:) for the result.
draftGoalDraft ()

GenerateMilestonesPayload

Autogenerated return type of GenerateMilestones.

FieldTypeDescription
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving milestones inline (v4.60 Phase 4). Subscribe to aiRequestUpdate(requestId: id) or poll aiRequest(id:) for the result.
milestones[String!]

GetAdvicePayload

Autogenerated return type of GetAdvice.

FieldTypeDescription
adviceString
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving advice inline (v4.60 Phase 3). Subscribe to aiRequestUpdate(requestId: id) or poll aiRequest(id:) for the result.
suggestedActions[CoachAction!]! ()Deterministically derived action chips (0-2). No LLM call — derived from goal/mood signals.

GetBillingPortalUrlPayload

Autogenerated return type of GetBillingPortalUrl.

FieldTypeDescription
errors[String!]!
portalUrlString

GetInsightPayload

Autogenerated return type of GetInsight.

FieldTypeDescription
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving the insight inline (v4.60 Phase 5). Backend-only migration — no frontend surface consumes this yet (OBJ-3895); the currentInsights query feeds the insight card from a pre-generated cache read, not this mutation.
ctaLabelString
insightIdString
insightTypeString
messageString
titleString

Goal

A user goal with progress events, milestones, and optional community sharing.

FieldTypeDescription
allEvents[GoalEvent!]! ()All progress events including soft-deleted ones.
appLinkStringExternal app URL (https:// or a custom app scheme, e.g. duolingo://) opened on check-in for one-click redirect to another app.
averageCheckInTimeFloatMean hour-of-day (0.0–24.0) in the user's timezone. Null if < 3 completions.
categoryGoalCategory ()The goal category (e.g. fitness, learning, personal).
checkedInTodayBoolean!Whether the user has checked in today.
collectiveGoalContributionGoalCollectiveContribution ()The collective goal this goal is actively contributing to, if any (GOALS-17).
comments[GoalEventComment!]! ()Comments left by other users on this goal.
completedBoolean!Whether the goal has been marked as completed.
completedAtTimeStringUnix timestamp (string) when the goal was completed.
completionRateFloatPercentage of expected check-ins completed in the last 30 days.
completionReflectionStringOptional free-text reflection captured when the goal was marked complete. Personalizes Coach messaging when present.
contentStringOptional longer description or motivation note for the goal.
createdAtTimeStringUnix timestamp (string) when the goal was created.
currentAmountFloatCurrent progress value for quantity-based goals (e.g. 3.2 km).
dayOfWeekDistribution[Int!]!Check-in counts by day of week [Sun, Mon, Tue, Wed, Thu, Fri, Sat].
daysToUpdateIntHow frequently (in days) the user intends to log progress events.
demoBoolean!Whether this goal is a demo-tagged record (Phase 30).
dueTodayBoolean!Whether this habit is due for a check-in today.
durationMinutesIntOptional time-per-session in minutes for habits.
encouragements[GoalEventEncouragement!]! ()Encouragement reactions left by other users on this goal.
events[GoalEvent!]! ()Active (non-deleted) progress events. For habits, routine "Checked in!" rows are filtered; only user-authored updates and milestones are returned.
followersCountInt!Accepted follows on this goal. Drops to zero when the goal becomes private. Owner-only.
fromTemplateGoalTemplate ()"From template" badge surface. Null for goals not created from a template.
fromTemplateNameStringName of the template this goal was created from. Null if not template-sourced.
habitCompletions[HabitCompletion!]! ()Check-in records for this habit (last 30 days).
habitStreakInt!Current consecutive check-in streak for this habit.
identityPromptStringOptional free-text identity framing (e.g. "Who you're becoming"). Personalizes Coach messaging when present.
imageUrlStringURL of a cover image associated with the goal.
kindGoalType ()The goal kind/type (e.g. habit, milestone, quantity).
lastCheckedInDateStringISO date of the most recent check-in.
lifeAreaStringThe area of life this goal belongs to (e.g. career, health).
longestHabitStreakInt!All-time longest streak for this habit.
milestones[Goal!]! ()Sub-goals (milestones) nested under this goal.
nameString!Display name of the goal (e.g. "Run a 5K").
nonAllyFollowersCountInt!Follows held by users who are not accepted allies of the owner — the follows a public → allies change drops. Owner-only.
parentGoalIdStringpublic_id of the parent goal if this is a milestone/sub-goal.
pastAttemptContextStringOptional free-text context on a prior attempt at this goal. Personalizes Coach messaging when present.
positionIntOrdinal position within parent goal's roadmap (nullable for top-level goals).
preBreakHabitStreakInt!Streak snapshot captured before the last break. Used by Welcome Back and Streak Repair.
privateBoolean!When true, the goal is visible only to its owner.
publicIdID!URL-safe public identifier for this goal.
quickUpdatePrompts[String!]!Coach-generated quick-fill chip prompts (0-2), pre-generated at goal creation. Always [] (never null) until the async job lands, or when skipped (milestone, demo, coaching disabled).
recurrenceDays[String!]Days of the week for weekly/custom_days recurrence (e.g. ["mon", "wed", "fri"]).
recurrenceIntervalIntNumber of days between check-ins for interval recurrence.
recurrenceTypeStringRecurrence pattern: daily, weekly, custom_days, or interval.
sharedWithPartnerBoolean!When true and the goal is private, a confirmed accountability partner can still see it. Has no effect on non-private goals.
statusGoalStatusEnum! ()Computed status: on_track | needs_attention | paused | completed.
streakFreezesAvailableInt!Number of streak freeze tokens earned and available.
streakFreezesUsedInt!Number of streak freeze tokens consumed.
streakRepairEligibleUntilStringISO 8601 timestamp when the repair window closes. Null when not in window.
streakRepairedCountInt!Number of times this streak has been repaired or mercied (unified cap).
targetAmountFloatTarget value for quantity-based goals (e.g. 5.0 km).
targetDateTimeStringUnix timestamp (string) of the target completion date.
totalCheckInsInt!Total number of actual check-ins ever recorded for this habit.
unitStringUnit label for quantity-based goals (e.g. "km", "pages", "reps").
updatedAtTimeStringUnix timestamp (string) when the goal was last updated.
userUser ()The user who owns this goal.
visibilityGoalVisibilityEnum! ()Who can see this goal: public, allies, or private.

GoalCategory

A predefined category for organizing goals (e.g. fitness, learning, personal growth).

FieldTypeDescription
idID!Public identifier for this category.
nameString!Display name of the category.

GoalCollectiveContribution

The collective goal this personal goal is actively contributing to, if any (GOALS-17).

FieldTypeDescription
collectiveGoalTitleString!
teamNameString!

GoalDraft

A Coach-drafted goal: title, category, kind, target date, why, and milestones.

FieldTypeDescription
categoryIdIDResolved GoalCategory id, or null if the suggested category was unknown.
categoryNameString
kindIdIDResolved GoalType id, or null if the suggested kind was unknown.
kindNameString
milestones[String!]!
targetDateStringSuggested ISO8601 target date, or null for habits/ongoing goals.
titleString
whyString

GoalEvent

An immutable progress log entry for a goal. Records what the user did and when.

FieldTypeDescription
clientTimestampTimeStringUnix timestamp (string) when this event actually occurred on the client device. Null for events logged while online or by legacy clients.
comments[GoalEventComment!]! ()Comments from other users on this event.
contentString!Text describing what the user did (e.g. "Ran 3 km in the park").
createdAtTimeString!Unix timestamp (string) when this event was logged.
encouragements[GoalEventEncouragement!]! ()Encouragement reactions from other users on this event.
goalGoal ()The goal this event belongs to.
idID!Alias for public_id. Prefer public_id for new integrations.
mediaGoalMedia ()Optional photo or media attachment for this event.
milestoneNameStringName of the milestone this event was logged against, if any.
moodStringOptional mood snapshot at the time of logging (amazing/happy/calm/meh/tired/low).
publicIdID!URL-safe public identifier for this event.
reactions[GoalEventReaction!]! ()Emoji reactions from other users on this event.
sourceString!Where this event originated: "manual" (user-entered) or "integration" (auto-imported from a connected app).

GoalEventComment

A comment left by a user on a goal progress event.

FieldTypeDescription
contentStringText of the comment.
createdAtTimeStringUnix timestamp (string) when the comment was posted.
goalGoal ()The goal associated with the event being commented on.
idID!Public identifier for this comment.
updatedAtTimeStringUnix timestamp (string) when the comment was last edited.
userUser ()The user who wrote the comment.

GoalEventEncouragement

An encouragement reaction (like/cheer) left on a goal progress event.

FieldTypeDescription
commentStringOptional short message included with the encouragement.
createdAtTimeStringUnix timestamp (string) when the encouragement was given.
goalGoal ()The goal associated with the event being encouraged.
idID!Public identifier for this encouragement.
updatedAtTimeStringUnix timestamp (string) when it was last updated.
userUser ()The user who left the encouragement.

GoalEventReaction

An emoji reaction on a goal event from another user.

FieldTypeDescription
createdAtTimeStringUnix timestamp (string) when this reaction was created.
emojiString!Unicode emoji character for this reaction.
idID!Public identifier for this reaction.
userUser ()The user who reacted.

GoalMedia

A media attachment (image) associated with a goal progress event.

FieldTypeDescription
idID!Public identifier for this media record.
imageUrlStringURL of the attached image.
nameStringOptional descriptive name or caption for the image.

GoalMotivationProfile

Goal Motivation Snapshot answers captured during onboarding.

FieldTypeDescription
challengeStringBiggest challenge: starting, staying_consistent, momentum_after_setbacks, knowing_progress.
completedAtStringISO 8601 timestamp of last save.
experienceStringPrior goal-tracking experience: never, a_few_times, many_still_going, many_struggled.
socialContextStringPreferred social context: solo, friend_or_partner, team_or_group.
workTimeStringPreferred time to work on goals: morning, afternoon, evening, varies.

GoalProgressData

Progress visualization data for a goal.

FieldTypeDescription
averagePerWeekFloat!Average events per week in the lookback period.
dataPoints[ProgressDataPoint!]! ()Event frequency data grouped by period.
paceString!Current pace status: ahead, on_track, or behind.
streakData[ProgressDataPoint!]! ()Habit streak completion data (habits only).
totalEventsInt!Total number of events in the lookback period.

GoalRefinementSuggestion

A single field-level refinement suggestion for a not-yet-saved goal.

FieldTypeDescription
fieldString!One of: title, description, target_date, milestone.
issueString!
suggestedValueString!
suggestionString!

GoalSummary

Aggregated statistics for the current user's goals.

FieldTypeDescription
avgProgressFloatAverage progress percentage across active, trackable goals (0–100). Null when no active goal has an observable progress signal (habit rate, roadmap, or target amount) — never a fabricated 0.
completedCountInt!Number of completed goals.
needAttentionCountInt!Number of active goals in needs_attention status.
totalGoalsInt!Total number of top-level goals.

GoalTemplate

A curated goal template users can adopt. Content is placeholder until Phase 85 (Penny).

FieldTypeDescription
categoryGoalCategory ()Optional goal category associated with this template.
descriptionString!Longer description or motivation copy for this template.
displayOrderInt!Display position within its theme group (ascending).
estimatedDurationDaysInt!Approximate number of days to complete this goal.
imageUrlStringOptional cover image URL. Null until Phase 85 canonical content pass.
milestones[GoalTemplateMilestone!]! ()Ordered milestone steps stored as JSONB.
nameString!Display name of the template (e.g. "TODO(content): Run a 5K").
publicIdID!URL-safe public identifier for this template.
themeString!Grouping theme: fitness | learning | financial | habit_wellness.

GoalTemplateMilestone

A milestone entry stored in a GoalTemplate milestones JSONB column.

FieldTypeDescription
daysOffsetFromStartInt!Number of days after the goal start date when this milestone is expected.
nameString!Display name of this milestone step.
orderInt!Zero-based position within the milestone sequence.

GoalType

A goal kind/type that determines how progress is tracked (e.g. habit, milestone, quantity).

FieldTypeDescription
descriptionString!Explanation of how goals of this type work.
displayNumberIntOrdering hint for display in the UI.
idID!Integer database identifier for this goal type (reference table, not a public_id).
nameString!Display name of the goal type (e.g. "Habit", "Milestone", "Quantity").

GrantAchievementDebugPayload

Autogenerated return type of GrantAchievementDebug.

FieldTypeDescription
errors[String!]!
successBoolean!

GrowthDataPoint

Daily growth metrics for users and goals

FieldTypeDescription
dateString!
goalsInt!
usersInt!

GuideAssistantAnswer

Response payload for askGuideQuestion.

FieldTypeDescription
answerStringAssistant answer text. Null when state is DISABLED.
citations[GuideAssistantCitation!]! ()Sources the answer drew from. Always empty when state is REFUSED or DISABLED.
stateGuideAssistantStateEnum! ()Terminal state discriminator.

GuideAssistantCitation

A single source the guide assistant drew its answer from — always a real help.objectuve.com page from the committed guide corpus.

FieldTypeDescription
pathString!Resolvable help.objectuve.com URL for this source.
slugString!Guide page slug (e.g. "goals").
titleString!The page title, for display in a source chip.

HabitCompletion

A single habit check-in record for a specific date.

FieldTypeDescription
completedDateString!ISO date string for the check-in date.
createdAtString!ISO timestamp when the check-in was recorded.
idID!Internal identifier for the completion record.
noteStringOptional one-sentence micro-journal note for this check-in (max 280 characters). Private — visible only to the completion's owner, never on community/ally/team surfaces.
streakFreezeUsedBoolean!Whether a streak freeze was used for this date.

HabitIntegrationMapping

Links a connected provider activity type to a habit (Goal), with a confidence score.

FieldTypeDescription
autoCheckEnabledBoolean!Whether matching activities auto-check-in this habit.
confidenceScoreFloatMapping confidence, 0–1, from the auto-mapping engine.
goalGoal! ()The habit this provider activity type maps to.
integrationConnectionIntegrationConnection! ()The connection this mapping belongs to.
providerActivityTypeString!Provider-specific activity type (e.g. "Strava.run").
publicIdID!URL-safe public identifier for this mapping.

InsightPack

A daily AI coaching insight card for a specific app page.

FieldTypeDescription
ctaLabelStringButton label, or null if no action is required.
idString!Stable ID for client-side dismissal state tracking.
messageString!Actionable insight text (max 2 sentences).
pageString!Page key this insight targets (e.g. "dashboard", "goals").
titleString!Short card title (max 8 words).
typeString!Card type: tip, action, insight, or celebration.

IntegrationActivity

A single fetched activity from a connected provider (a Strava run, a Chess.com game, ...).

FieldTypeDescription
activityTypeString!Normalized activity type (e.g. "run", "chess_blitz").
checkedAtISO8601DateTime ()When this activity was auto-checked-in, if ever.
distanceKmFloatDistance covered, in kilometers, if applicable.
durationMinutesIntDuration of the activity, in minutes.
publicIdID!URL-safe public identifier for this activity.
timestampISO8601DateTime! ()When the activity occurred.

IntegrationConnection

A user's link to a connected provider. Access/refresh tokens are never exposed here.

FieldTypeDescription
createdAtISO8601DateTime! ()When this connection was created.
externalUsernameStringProvider account handle (e.g. Chess.com username), if applicable.
integrationProviderIntegrationProvider! ()The connected provider.
publicIdID!URL-safe public identifier for this connection.
statusString!Connection status: active, paused, or error.
syncedAtISO8601DateTime ()When activity was last successfully fetched.
tokenExpiresAtISO8601DateTime ()When the current access token expires, if applicable.

IntegrationProvider

A connectable third-party service (Strava, Chess.com, ...).

FieldTypeDescription
authTypeString!How connections authenticate: oauth, api_key, or none.
descriptionStringShort description of what this provider syncs.
logoUrlStringURL of the provider logo, if any.
nameString!Display name (e.g. "Strava").
providerSlugString!Stable machine-readable slug (e.g. "strava").
publicIdID!URL-safe public identifier for this provider.

InviteAllyToCommunityPayload

Autogenerated return type of InviteAllyToCommunity.

FieldTypeDescription
alreadyInvitedBoolean!
errors[String!]!
successBoolean!

JoinCommunityChallengePayload

Autogenerated return type of JoinCommunityChallenge.

FieldTypeDescription
errors[String!]!
resultResult ()

JoinCommunityPayload

Autogenerated return type of JoinCommunity.

FieldTypeDescription
errors[String!]!
resultResult ()

JoinSeasonalEventPayload

Autogenerated return type of JoinSeasonalEvent.

FieldTypeDescription
errors[String!]!
resultResult ()

JoinSubCommunityPayload

Autogenerated return type of JoinSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

LeaveCommunityChallengePayload

Autogenerated return type of LeaveCommunityChallenge.

FieldTypeDescription
errors[String!]!
resultResult ()

LeaveCommunityPayload

Autogenerated return type of LeaveCommunity.

FieldTypeDescription
resultResult ()

LeaveSeasonalEventPayload

Autogenerated return type of LeaveSeasonalEvent.

FieldTypeDescription
errors[String!]!
resultResult ()

LeaveSubCommunityPayload

Autogenerated return type of LeaveSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

MappingProposal

A freshly re-scored mapping suggestion from Integrations::MapIncomingActivity.

FieldTypeDescription
confidenceScoreFloat!Score from 0-1.
decisionString!"auto", "propose", or "ignore".
goalGoal ()The best-matching habit, or null when the decision is "ignore".
integrationActivityIntegrationActivity! ()The activity being scored.

MintCheckInTokenPayload

Autogenerated return type of MintCheckInToken.

FieldTypeDescription
errors[String!]!
expiresAtISO8601DateTime ()
tokenStringThe raw check-in token — shown once, never persisted in plaintext.

ModelUsagePoint

Per-model AI usage aggregation point for the admin dashboard.

FieldTypeDescription
callCountInt!Number of AI calls made with this model over the window.
costCentsInt!Sum of cost_cents over the window, rounded to the nearest cent.
modelString!Model identifier (e.g. gemini/gemini-3.8-flash).
tokenCountInt!Sum of total_tokens over the window.

MoodLog

A daily mood check-in recorded by a user, optionally linked to a goal.

FieldTypeDescription
createdAtTimeString!Unix timestamp (string) when this mood log was recorded.
goalGoal ()Goal the user linked this mood entry to, if any.
moodString!Mood value at time of check-in. One of: amazing, happy, calm, meh, tired, low.
noteStringOptional free-text note (max 300 characters) describing how the user is feeling.
publicIdID!URL-safe public identifier for this mood log entry.

NextBadge

The locked badge closest to being unlocked for a user.

FieldTypeDescription
keyString!Badge key matching the UserAction enum action name.
progressLabelString!Human-readable progress label (e.g. "3/5 goals completed").
progressPercentageFloat!Completion percentage toward unlocking this badge (0–100).

NotificationHistory

Paginated notification history for the current user (acknowledged and unacknowledged).

FieldTypeDescription
hasMoreBoolean!Whether there are more notifications beyond this page.
items[UserNotification!]! ()Notifications for the current page, newest first.
totalCountInt!Total number of notifications across all pages.
unreadCountInt!Total unacknowledged notifications across all pages, for the same scope.

OnboardingFunnel

Aggregated onboarding funnel counts and time-to-first-goal percentiles. Admin only. Returns aggregates only — no user identifiers.

FieldTypeDescription
firstGoalInt!Distinct in-window users who have at least one non-deleted goal.
signedInInt!Distinct users with a first_sign_in UserAction in the window.
ttfgP50SecondsIntMedian seconds from sign-up to first goal. Null when no in-window user has created a goal.
ttfgP90SecondsInt90th-percentile time-to-first-goal in seconds. Nullable.
variantIdStringEchoes the variant filter when one was applied; null for unfiltered queries.
wizardCompletedInt!Distinct users with a wizard_completed UserAction in the window.
wizardStartedInt!Distinct users with a wizard_started UserAction in the window.

OnboardingProgress

In-flight progress through the onboarding wizard. Cleared (null) on exit.

FieldTypeDescription
answersJSON ()Free-form per-slide answers. Shape refined in Phase 34.
currentSlideStringSlide id the user is currently on.
updatedAtISO8601DateTime ()When progress was last written.

OnboardingStatus

v1.8 onboarding completion status, sourced from UserDetail.data["onboarding"].

FieldTypeDescription
completedAtISO8601DateTime ()When the user finished or was backfilled. null if in-flight.
completedViaStringHow completion happened: "complete" | "skip" | "backfilled".
progressOnboardingProgress ()In-flight slide progress. null after completion.
versionStringOnboarding schema version: "v1.8" (flow-completed) or "pre-v1.8" (lazy-backfilled).

OptIntoCollectiveGoalPayload

Autogenerated return type of OptIntoCollectiveGoal.

FieldTypeDescription
collectiveGoalCollectiveGoal ()
errors[String!]!

OptOutOfCollectiveGoalPayload

Autogenerated return type of OptOutOfCollectiveGoal.

FieldTypeDescription
collectiveGoalCollectiveGoal ()
errors[String!]!

PaceSuggestion

A one-tap timeline-adjustment suggestion for a goal that is consistently ahead of or behind pace.

FieldTypeDescription
currentTargetDateString!ISO date string of the goal's current target date.
directionString!"ahead" or "behind" — drives icon and copy branch.
goalNameString!Display name of the goal, for body + confirmation copy.
goalPublicIdString!public_id of the goal this suggestion targets.
idString!Stable ID for client-side dismissal state tracking.
paceSummaryString!Human phrase, e.g. "about 3 weeks faster than planned".
proposedTargetDateString!ISO date string of the computed new target date.

PageInfo

Information about pagination in a connection.

FieldTypeDescription
endCursorStringWhen paginating forwards, the cursor to continue.
hasNextPageBoolean!When paginating forwards, are there more items?
hasPreviousPageBoolean!When paginating backwards, are there more items?
startCursorStringWhen paginating backwards, the cursor to continue.

PauseAiEmployeePayload

Autogenerated return type of PauseAiEmployee.

FieldTypeDescription
employeeAiEmployee ()
errors[String!]!

PauseIntegrationConnectionPayload

Autogenerated return type of PauseIntegrationConnection.

FieldTypeDescription
errors[String!]!
integrationConnectionIntegrationConnection ()

PendingAllyUser

The requesting user for a pending ally request.

FieldTypeDescription
firstNameStringThe requesting user's given name.
lastNameStringThe requesting user's family name.
photoUserPhoto ()The requesting user's profile photo.
publicIdStringThe requesting user's URL-safe public identifier.
usernameStringThe requesting user's unique handle.

PendingCounts

Per-queue pending item counts for the admin sidebar. Fields return nil when the current user lacks the role to see that queue (UI hides the badge — never renders 0 for an inaccessible queue).

FieldTypeDescription
gdprRequestsIntGDPR requests in received state. Nil if the current role cannot handle GDPR requests. Returns 0 until Phase 28 creates the table.
moderationQueueIntPending content flags awaiting moderator review. Nil if the current role cannot moderate.
reviewQueueIntAI artifacts awaiting admin approval. Nil if the current role cannot approve artifacts.

Plan

A subscription plan (Supporter Monthly, Yearly, or Lifetime).

FieldTypeDescription
activeBoolean!Whether the plan is available for purchase.
currencyString!ISO currency code (default: usd).
intervalStringBilling interval (month, year, or null for one-time).
nameString!Display name (e.g. "Supporter Monthly").
priceCentsInt!Price in cents (e.g. 300 = $3.00).
priceDisplayString!Formatted price string (e.g. "$3.00/month").
publicIdID!URL-safe public identifier for the plan.
slugString!URL-safe slug (monthly, yearly, lifetime).

PostComment

A comment left on a community post.

FieldTypeDescription
contentString!Text body of the comment.
idID!Public identifier for this comment.
timestampString!Unix timestamp (string) when the comment was posted.
userIdID!public_id of the user who wrote the comment.
userNameString!Username of the comment author.

ProgressDataPoint

A single data point in a progress chart.

FieldTypeDescription
countInt!Number of events logged in this period.
dateString!ISO date string for the start of this period.
labelString!Display label for this period (e.g. "Mar 15" or "Mar 15 - Mar 21").

PromoteTeamMemberPayload

Autogenerated return type of PromoteTeamMember.

FieldTypeDescription
errors[String!]!
teamMembershipTeamMembership ()

PromotionCriteria

FieldTypeDescription
approvalRatePctInt!
blockReasonString
canPromoteToString
promotionConfirmedAtISO8601DateTime ()
recentRejectionsInt!
weeksActiveInt!

PublicFeedbackAuthor

Public-safe author identity for the anonymous feedback read path. Allow-listed by design — structurally cannot reach Types::UserType.

FieldTypeDescription
avatarUrlStringProfile photo URL, or null for a private_mode author and for an author with no uploaded photo — the two are indistinguishable.
displayNameString!Resolves to "{FirstName} {LastInitial}." (e.g. "Priya S.") for a normal author, or the literal "a member" for a private_mode author and for an author with no renderable name — the two are byte-identical so this field never discloses who has private mode on.

PublicFeedbackComment

A comment on a feedback post, on the anonymous public read path.

FieldTypeDescription
authorPublicFeedbackAuthor! ()The author of this comment.
bodyString!The comment text.
createdAtISO8601DateTime! ()
idID!Public identifier for this comment.
isOfficialBoolean!Whether this is an official team response.

PublicFeedbackPost

A user-submitted feedback post, on the anonymous public read path (v4.62 Phase 6). No votedByCurrentUser — it cannot be honestly answered for an anonymous caller, so it is not askable at all.

FieldTypeDescription
authorPublicFeedbackAuthor! ()The author of this feedback post.
categoryString!Category: feature, improvement, bug, or other.
commentCountInt!Total number of comments.
comments[PublicFeedbackComment!]! ()Comments on this post.
createdAtISO8601DateTime! ()
descriptionStringDetailed description of the feedback.
idID!Public identifier for this feedback post.
shippedAtISO8601DateTime ()When this post was marked as completed/shipped.
statusString!Status: open, planned, in_progress, completed, or declined.
tags[FeedbackTag!]! ()Tags attached to this post.
titleString!Title of the feedback post.
voteCountInt!Total number of votes.

PublicGoal

A goal visible on a public profile. Exposes only the fields safe for any authenticated viewer — no user back-reference.

FieldTypeDescription
categoryGoalCategory ()Goal category (e.g. fitness, learning).
completedBoolean!Whether the goal has been marked as completed.
currentAmountFloatCurrent progress value for quantity-based goals.
imageUrlStringURL of a cover image associated with the goal.
milestonesCountInt!Total number of milestones (sub-goals) under this goal.
nameString!Display name of the goal.
publicIdID!URL-safe public identifier for this goal.
targetAmountFloatTarget value for quantity-based goals.
targetDateTimeStringUnix timestamp (string) of the target completion date.

PublicProfile

Publicly visible profile of a user. Only exposes fields safe for anyone to see.

FieldTypeDescription
achievementStatsAchievementStats ()Computed rank, XP, and badge stats for the profile hero.
alliesCountInt!Number of accepted allies (either direction).
allyGoals[PublicGoal!]! ()Owner's active allies-only goals (visibility: allies), not already included in publicGoals. Only populated when the viewer is an accepted ally of the owner; empty otherwise (including for self).
allyStatusStringViewer-relative ally relationship to this profile (NONE / PENDING_OUTGOING / PENDING_INCOMING / ACCEPTED / BLOCKED / SELF). Null for anonymous viewers. SELF when the viewer is the profile owner.
firstNameStringThe user's given name.
lastNameStringThe user's family name.
levelInt!Current gamification level derived from XP.
longestStreakInt!All-time longest streak of consecutive active days.
nextLevelThresholdInt!XP required to reach the next level.
nextOnTheShelfBadgeNextBadge ()The locked badge closest to being unlocked, or null if all earned.
partnerGoals[PublicGoal!]! ()Owner's active partner-visible goals (public goals, plus private goals the owner opted to share via shared_with_partner). Only populated when the viewer is a confirmed active accountability partner of the owner; empty otherwise (including for self).
photoUserPhoto ()Profile photo for the user.
progressToNextLevelFloat!Progress toward the next level.
publicGoals[PublicGoal!]! ()Non-private active goals belonging to this user.
publicIdID!Public-safe opaque identifier for this user (base64 token, never the integer PK).
showcasedAchievements[String!]!Achievement identifiers the user has chosen to display on their profile.
signInDates[String!]ISO date strings on which the user logged activity (heatmap source).
signupAgeDaysInt!Whole days since the user account was created (signup age).
streakInt!Current number of consecutive days the user has logged activity.
unlockedBadges[RecentlyUnlockedBadge!]! ()Earned badges, rarity DESC then unlocked_at DESC.
usernameString!The user's unique handle (e.g. "jane.doe").
viewerIsAccountabilityPartnerBoolean!Whether the viewer is a confirmed active accountability partner of this profile owner. False for anonymous viewers, non-partners, blocked relationships, and self.
xpInt!Total experience points earned through goals, events, and engagement.

RecentlyUnlockedBadge

A badge recently unlocked by the user.

FieldTypeDescription
keyString!Badge key matching the UserAction enum action name.
unlockedAtISO8601DateTime! ()When the badge was unlocked.

RecordCriticalPathPlayPayload

Autogenerated return type of RecordCriticalPathPlay.

FieldTypeDescription
errors[String!]!
statusCriticalPathPlayStatus ()
stimXpEarnedIntStim XP delta awarded this play; null on duplicate or inactive feature.

RecordSharePayload

Autogenerated return type of RecordShare.

FieldTypeDescription
errors[String!]!
shareEventShareEvent ()

RecordUserActionPayload

Autogenerated return type of RecordUserAction.

FieldTypeDescription
errors[String!]!
resultResult ()

RefineDescriptionPayload

Autogenerated return type of RefineDescription.

FieldTypeDescription
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving the description inline (v4.60 Phase 5). Subscribe to aiRequestUpdate(requestId: id) or poll aiRequest(id:) for the result.
descriptionString

RefineGoalPayload

Autogenerated return type of RefineGoal.

FieldTypeDescription
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving suggestions inline (v4.60 Phase 4). Subscribe to aiRequestUpdate(requestId: id) or poll aiRequest(id:) for the result.
suggestions[GoalRefinementSuggestion!] ()

RejectAiArtifactPayload

Autogenerated return type of RejectAiArtifact.

FieldTypeDescription
artifactAiArtifact ()
errors[String!]!

RemoveAllyPayload

Autogenerated return type of RemoveAlly.

FieldTypeDescription
errors[String!]!
successBoolean!

RemoveTeamMemberPayload

Autogenerated return type of RemoveTeamMember.

FieldTypeDescription
errors[String!]!
teamMembershipTeamMembership ()

ReorderMilestonesPayload

Autogenerated return type of ReorderMilestones.

FieldTypeDescription
errors[String!]!
goalGoal ()

RepairStreakPayload

Autogenerated return type of RepairStreak.

FieldTypeDescription
errors[String!]!
goalGoal ()
userUser ()

ReportContentPayload

Autogenerated return type of ReportContent.

FieldTypeDescription
contentReportContentReport ()
errors[String!]

RequestDataExportPayload

Autogenerated return type of RequestDataExport.

FieldTypeDescription
errors[String!]!
gdprRequestGdprRequest ()

RequestMagicCodePayload

Autogenerated return type of RequestMagicCode.

FieldTypeDescription
errors[String!]!
successBoolean!

RerunHabitIntegrationMappingPayload

Autogenerated return type of RerunHabitIntegrationMapping.

FieldTypeDescription
errors[String!]!
proposals[MappingProposal!] ()

ResetOnboardingPayload

Autogenerated return type of ResetOnboarding.

FieldTypeDescription
errors[String!]!
successBoolean!
userUser ()

ResolvedModelUsagePoint

Per-resolved-model AI usage aggregation point for the admin dashboard.

FieldTypeDescription
callCountInt!Number of AI calls made with this resolved model over the window.
costCentsInt!Sum of cost_cents over the window, rounded to the nearest cent.
resolvedModelString!Concrete model id that served the request (e.g. gemini/gemini-2.5-flash).
tokenCountInt!Sum of total_tokens over the window.

Result

Generic boolean result returned by check queries (e.g. authn_check, is_following_goal).

FieldTypeDescription
successBoolean!True if the checked condition is satisfied.

ResumeIntegrationConnectionPayload

Autogenerated return type of ResumeIntegrationConnection.

FieldTypeDescription
errors[String!]!
integrationConnectionIntegrationConnection ()

RevertLastGoalEventPayload

Autogenerated return type of RevertLastGoalEvent.

FieldTypeDescription
errors[String!]!
goalGoal ()

ReviewContentFlagPayload

Autogenerated return type of ReviewContentFlag.

FieldTypeDescription
contentFlagContentFlag ()
errors[String!]

ReviewContentReportPayload

Autogenerated return type of ReviewContentReport.

FieldTypeDescription
contentReportContentReport ()
errors[String!]

RevokeAllyInvitePayload

Autogenerated return type of RevokeAllyInvite.

FieldTypeDescription
errors[String!]!
inviteAllyInvite ()

RevokeCheckInTokenPayload

Autogenerated return type of RevokeCheckInToken.

FieldTypeDescription
errors[String!]!
resultResult ()

RevokeTeamInvitePayload

Autogenerated return type of RevokeTeamInvite.

FieldTypeDescription
errors[String!]!
teamInviteTeamInvite ()

SeasonalEvent

A platform-wide, admin-curated seasonal event.

FieldTypeDescription
badgeIconString!Emoji or icon string for the completion badge.
badgeNameString!Name of the badge awarded to event completers.
createdAtTimeString!Unix timestamp (string) when the event was created.
currentUserParticipantSeasonalEventParticipant ()The current user's participation row, or nil.
descriptionStringOptional description of the event.
endDateISO8601Date! ()Date when the event ends (inclusive).
isActiveBoolean!Whether this event is currently enabled by an admin.
isParticipatingBoolean!Whether the current user is an active participant.
nameString!Display name of the event.
participantCountInt!Total number of active participants in the event.
publicIdID!URL-safe public identifier for this event.
slugString!URL-safe, unique identifier for this event.
startDateISO8601Date! ()Date when the event begins.
statusString!Date-derived status: "upcoming", "active", or "completed".
targetGoalCountInt!Number of qualifying goal events required to complete the event.
updatedAtTimeString!Unix timestamp (string) when the event was last updated.

SeasonalEventParticipant

A single user participation record within a seasonal event, tracking progress toward completion.

FieldTypeDescription
completedBoolean!Whether the participant has met the completion threshold.
completedAtISO8601DateTime ()When the target was crossed. Nil if not yet complete.
progressCountInt!Number of qualifying goal events logged so far.
progressPercentFloat!Progress toward completion as a percentage (0–100), clamped.
publicIdID!URL-safe public identifier for this participation record.
seasonalEventSeasonalEvent ()The event this participation belongs to.
userUser ()The participating user.
userPublicIdStringPublic ID of the participating user (safe for membership checks).

SeedIntegrationActivityDebugPayload

Autogenerated return type of SeedIntegrationActivityDebug.

FieldTypeDescription
decisionString
errors[String!]!
integrationActivityIntegrationActivity ()

SendAllyRequestPayload

Autogenerated return type of SendAllyRequest.

FieldTypeDescription
alreadyRequestedBoolean!
errors[String!]!
userAllyUserAlly ()

SendEncouragementPayload

Autogenerated return type of SendEncouragement.

FieldTypeDescription
errors[String!]!
successBoolean!

SendPartnerNudgePayload

Autogenerated return type of SendPartnerNudge.

FieldTypeDescription
errors[String!]!
successBoolean!

SendPartnerRequestPayload

Autogenerated return type of SendPartnerRequest.

FieldTypeDescription
errors[String!]!
userAllyUserAlly ()

SetColorThemePayload

Autogenerated return type of SetColorTheme.

FieldTypeDescription
colorThemeString
errors[String!]!

SetCommunityEditorialSlotPayload

Autogenerated return type of SetCommunityEditorialSlot.

FieldTypeDescription
communityCommunity ()
errors[String!]

SetCommunityFeaturedPayload

Autogenerated return type of SetCommunityFeatured.

FieldTypeDescription
communityCommunity ()
errors[String!]

SetCriticalPathActiveThemePayload

Autogenerated return type of SetCriticalPathActiveTheme.

FieldTypeDescription
errors[String!]!
statusStimXpStatus ()

SetCriticalPathReminderPreferencesPayload

Autogenerated return type of SetCriticalPathReminderPreferences.

FieldTypeDescription
errors[String!]!
preferencesCriticalPathReminderPreferences ()

SetDefaultSubCommunityPayload

Autogenerated return type of SetDefaultSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

SetGoalPartnerSharingPayload

Autogenerated return type of SetGoalPartnerSharing.

FieldTypeDescription
errors[String!]!
goalGoal ()

SetGoalVisibilityPayload

Autogenerated return type of SetGoalVisibility.

FieldTypeDescription
errors[String!]!
goalGoal ()

SetLeaderboardVisibilityPayload

Autogenerated return type of SetLeaderboardVisibility.

FieldTypeDescription
errors[String!]!
optedOutBoolean

SetSeasonalEventActivePayload

Autogenerated return type of SetSeasonalEventActive.

FieldTypeDescription
errors[String!]
seasonalEventSeasonalEvent ()

SetTeamNotificationPreferencesPayload

Autogenerated return type of SetTeamNotificationPreferences.

FieldTypeDescription
errors[String!]!
preferencesTeamNotificationPreferences ()

SetWeeklyDigestPreferencesPayload

Autogenerated return type of SetWeeklyDigestPreferences.

FieldTypeDescription
errors[String!]!
preferencesWeeklyDigestPreferences ()

ShareableMoment

FieldTypeDescription
badgeIconUrlString
badgeNameString
earnedOnISO8601DateTime ()The date the moment happened — earned date for a badge, completion date for a goal, today for a streak. Null for milestone.
goalTitleString
kindString!One of: badge, goal_completion, milestone, streak.
milestoneIndexInt
milestoneTitleString
milestoneTotalInt
shareCodeString!v4.56 Phase 5 (REF-01) — a code reserved for this preview, minted fresh per query. Unpersisted until recordShare is called with it; an abandoned preview simply never persists its code, so no ShareEvent row exists for it (SHARE-09).
streakDaysInt
usernameStringThe caller's own username, for building the shareable /u/:username link (REF-09). Null when the caller has no username — the client falls back to the app root.

ShareEvent

FieldTypeDescription
channelString
codeString!
idID!
kindString!
sharedAtISO8601DateTime! ()
subjectPublicIdString!

StartTeamBillingPortalPayload

Autogenerated return type of StartTeamBillingPortal.

FieldTypeDescription
errors[String!]!
portalUrlString

StartTeamCheckoutPayload

Autogenerated return type of StartTeamCheckout.

FieldTypeDescription
checkoutUrlString
errors[String!]!

StimXpStatus

The authenticated user's Stim XP and theme status.

FieldTypeDescription
activeThemeString!Active theme key; defaults to 'default' when unset.
currentStimStreakInt!Current consecutive-day streak; 0 if streak is stale.
longestStimStreakInt!All-time longest streak (used for theme unlock thresholds).
themesCatalog[CriticalPathTheme!]! ()Full catalog of available themes.
totalStimXpInt!Lifetime total Stim XP earned.
unlockedThemes[String!]!Keys of themes the user has unlocked.

StoreDeviceTokenPayload

Autogenerated return type of StoreDeviceToken.

FieldTypeDescription
errors[String!]!
resultResult ()

StoreFeatureTourStatePayload

Autogenerated return type of StoreFeatureTourState.

FieldTypeDescription
errors[String!]!
featureToursJSON ()
successBoolean!

StoreOnboardingStatePayload

Autogenerated return type of StoreOnboardingState.

FieldTypeDescription
errors[String!]!
userUser ()The current user, with the refreshed onboardingStatus field.

StoreUserDetailsPayload

Autogenerated return type of StoreUserDetails.

FieldTypeDescription
errors[String!]!
resultResult ()

StreakRepairOffer

Streak Repair offer shown to active users within 24–48h of a streak break.

FieldTypeDescription
eligibleBoolean!Whether the user has an eligible streak repair right now.
goalNameStringName of the target habit goal. Null when ineligible.
goalPublicIdIDpublic_id of the habit goal eligible for repair. Null when ineligible.
insuranceClaimsRemainingIntStreak insurance claims remaining in the current calendar month.
insuranceEligibleBoolean!Whether the user has an eligible Supporter streak insurance claim right now.
insuranceEligibleUntilStringISO 8601 timestamp when the insurance window closes.
insuranceGoalNameStringName of the insurance target habit goal. Null when ineligible.
insuranceGoalPublicIdIDpublic_id of the habit goal eligible for insurance. Null when ineligible.
insurancePeriodResetsAtStringISO 8601 timestamp when the monthly insurance allowance resets.
insurancePreBreakHabitStreakIntPre-break streak snapshot for the insurance target.
preBreakHabitStreakIntPre-break streak snapshot — the headline number to show users.
repairEligibleUntilStringISO 8601 timestamp when the repair window closes.
repairXpCostIntXP cost to repair this streak (100 + 5 × streak, capped at 500).
userIsSupporterBoolean!Whether the user has an active Supporter subscription.

SubmitEnneagramAssessmentPayload

Autogenerated return type of SubmitEnneagramAssessment.

FieldTypeDescription
assessmentEnneagramAssessment ()
errors[String!]!

SubmitTeamPulsePayload

Autogenerated return type of SubmitTeamPulse.

FieldTypeDescription
errors[String!]!
recordTeamPulseConfirmation ()

Subscription

Real-time subscriptions delivered over WebSocket (ActionCable at WS /cable).

FieldTypeDescription
achievementUnlockedUserAction ()Streams newly awarded badges for a user in real time.
aiRequestUpdateAiRequest ()Streams status/result updates for a single async AiRequest in real time.
feedUpdateFeedUpdatePayload ()Streams a feed invalidation ping for a user in real time.
notificationUpdateUserNotification ()Streams new notifications for a user in real time.

achievementUnlocked arguments:

NameTypeRequiredDescription
userIdID!Yespublic_id of the user to subscribe to achievement unlocks for.

aiRequestUpdate arguments:

NameTypeRequiredDescription
requestIdID!Yespublic_id of the AiRequest to subscribe to.

feedUpdate arguments:

NameTypeRequiredDescription
userIdID!Yespublic_id of the user to subscribe to feed updates for.

notificationUpdate arguments:

NameTypeRequiredDescription
userIdID!Yespublic_id of the user to subscribe to notifications for.

SuggestedCommunity

A community recommended to a user based on their goals, interests, and ally network.

FieldTypeDescription
activeMembersInt!Count of members who posted or commented in the past 7 days.
categoryString!Category label for the community (e.g. "Fitness", "Learning").
coverImageStringURL of the community banner/cover image.
descriptionStringHuman-readable description of the community purpose.
isRecommendedBoolean!Always true for suggested communities — indicates this is a curated recommendation.
matchScoreInt!Relevance score (0–100) indicating how well this community matches the user.
members[DiscoveryMember!]! ()A sample of up to 5 members, useful for showing mutual connections.
mutualAlliesInt!Number of the current user allies who are also members of this community.
nameString!Display name of the community.
publicIdID!URL-safe public identifier for this community.
reasonCommunityReason ()The single disclosable reason this community is recommended, or null if none applies. Always null when discovery_ranking_v2 is disabled.

SuggestedGoal

A Coach-suggested goal from the goal-discovery quiz: title, category, kind, target date, rationale, and milestones.

FieldTypeDescription
categoryIdIDResolved GoalCategory id, or null if the suggested category was unknown.
categoryNameString
kindIdIDResolved GoalType id, or null if the suggested kind was unknown.
kindNameString
milestones[String!]!
rationaleStringOne sentence on why this goal fits the quiz answers.
targetDateStringSuggested ISO8601 target date, or null for habits/ongoing goals.
titleString

SuggestGoalsPayload

Autogenerated return type of SuggestGoals.

FieldTypeDescription
aiRequestAiRequest ()Present when async_ai_delivery_enabled routes this request through Ai::DispatchAiRequestJob instead of resolving suggestions inline (v4.60 Phase 5). Subscribe to aiRequestUpdate(requestId: id) or poll aiRequest(id:) for the result.
errors[String!]!
suggestions[SuggestedGoal!] ()

SupporterStats

Supporter revenue and tier-count aggregation for admin analytics

FieldTypeDescription
activeSupportersLifetimeInt!
activeSupportersMonthlyInt!
activeSupportersTotalInt!
activeSupportersYearlyInt!
currencyString!
mrrCentsInt!Monthly Recurring Revenue in cents (monthly + yearly/12)

SyncUserPayload

Autogenerated return type of SyncUser.

FieldTypeDescription
errors[String!]!
firstSignInBoolean!
userUser ()

SystemHealth

Admin self-health probe data. Admin only.

FieldTypeDescription
agentRunnerReachableBoolean!
currentAdminPublicIdString!
currentAdminRoleList[String!]!
databaseReachableBoolean!
deployRevisionString
deployTimestampString
litellmReachableBoolean!
redisReachableBoolean!
sidekiqReachableBoolean!

Team

A paid, private, multi-community workspace (Teams V1).

FieldTypeDescription
billingOwnerUser! ()The user who owns billing for this team.
coachNameString!The team's billing owner first name, shown as "Coached by" (OBJ-1830).
memberCountInt!Total number of memberships on this team (OBJ-1830).
memberships[TeamMembership!]! ()All current members of this team.
nameString!Display name of the team.
publicIdID!URL-safe public identifier for this team.
slugString!URL-safe slug for the team.
subscriptionTeamSubscription ()The team billing subscription, if provisioned.

TeamFeedItem

A row in TeamHomeView's Today feed. Always empty in Phase 3 (Orion A1 — no activity feed model yet).

FieldTypeDescription
actorNameString!
actorPhotoUrlString
idID!
kindString!
messageString
occurredAtISO8601DateTime! ()
pointsInt

TeamHome

Aggregate read backing TeamHomeView (N13).

FieldTypeDescription
activeRoomIdIDThe public_id of the viewer's active sub-community.
billingStateStringtrial_ending, past_due, grace_readonly, or null when the subscription needs no banner (active/canceled).
collectiveGoalCollectiveGoal ()The team-wide collective goal, if any. Null when teams_collective_goals is off or none exists yet.
collectiveGoalPrivacyContractAcknowledgedBoolean!Whether the viewer has acknowledged TeamPrivacyContractView (N18) server-side (UserAction), never localStorage.
feed[TeamFeedItem!]! ()Always empty in Phase 3 — see TeamFeedItemType's description.
isFreshMemberBoolean!True when the viewer has no team activity yet (drives the empty state).
roleString!The viewer's TeamMembership role on this team.
rooms[Community!]! ()The team's non-archived sub-communities (room strip / switcher).
teamTeam! ()The team.
trialDaysLeftIntDays left in trial, clamped to >= 0. Null outside trialing.

TeamInvite

A link (and optionally email-targeted) invite to join a Team.

FieldTypeDescription
codeString!URL-safe invite code — embed in the join link.
emailStringInvitee email, or null for a link-only invite.
expiresAtISO8601DateTime! ()When this invite expires (14 days from creation).
idID!Public identifier for this invite record.
maxUsesIntMaximum number of times this invite may be accepted.
statusString!Current status: pending, accepted, revoked, or expired.
teamRoleString!Role the invitee will hold once accepted: admin or member.
usedCountInt!Number of times this invite has been accepted.

TeamInvitePreview

Public preview of a team invite — safe for an unauthenticated visitor before they sign up or accept. Never reveals whether an unavailable invite was revoked, expired, or exhausted.

FieldTypeDescription
inviterNameStringThe inviter's first name. Present only when status is valid.
memberCountIntCurrent team member count. Present only when status is valid.
statusString!"valid", "unavailable" (expired, revoked, or exhausted — indistinguishable by design), or "not_found".
teamNameStringThe inviting team's name. Present only when status is valid.

TeamLeaderboard

Aggregate read backing TeamLeaderboardView (N19).

FieldTypeDescription
entries[TeamLeaderboardEntry!]! ()Ranked, opted-in entries for the requested scope.
periodString!weekly, monthly, or all_time.
rooms[Community!]! ()The team's non-archived sub-communities, for the scope picker (OBJ-1826).
teamTeam! ()The team this leaderboard belongs to.
yourMembershipOptedOutBoolean!Whether the requesting member has opted out of the leaderboard themselves.

TeamLeaderboardEntry

A single denormalized row on a team leaderboard bucket.

FieldTypeDescription
isYouBoolean!Whether this row belongs to the requesting user.
pointsInt!Total points accrued in this bucket.
rankInt!Position within the current bucket (1 = highest points).
trendString!up, down, or flat vs. the immediately preceding bucket.
userUser! ()The team member this entry belongs to.

TeamLeaderboardOptOutStat

Per-team leaderboard opt-out raw count (PRD anti-metric monitoring). Admin-only.

FieldTypeDescription
memberCountInt!Total memberships on this team.
optedOutCountInt!Raw count of members opted out of the leaderboard.
teamNameString!The team name.

TeamMemberActivity

Read-only team-scoped activity summary for one member (N7b "View activity"). Owner/admin only — see Resolvers::TeamQueries#team_member_activity.

FieldTypeDescription
collectiveGoalContributionsInt!Count of events contributed across the team's collective goals.
lastActiveDaysIntDays since the member was last active, day granularity. Null when no activity has been recorded yet.
lastActiveLabelString!Humanized last-active label: "Active today" / "Active yesterday" / "Active Nd ago" / "Inactive Nd" / "Not recorded yet", day granularity only.
optedOutBoolean!Whether the member has opted out of the team leaderboard — render the opt-out copy instead of points/check-ins.
periodStats[TeamMemberActivityPeriodStat!]! ()Team points earned and check-ins, one row per period (weekly, monthly, all_time).
subCommunityNames[String!]!Names of the sub-communities this member belongs to.

TeamMemberActivityPeriodStat

Points and check-ins for one leaderboard period bucket, within Team Member Activity (OBJ-1823).

FieldTypeDescription
checkinsIntCheck-ins counted toward the team in this bucket. Null when the member has opted out.
periodString!weekly, monthly, or all_time.
pointsIntTeam points earned in this bucket. Null when the member has opted out.

TeamMembership

A user's seat on a Team.

FieldTypeDescription
joinedAtISO8601DateTime! ()When this member joined the team.
publicIdID!URL-safe public identifier for this membership.
roleString!owner, admin, member, or external_coach.
userUser! ()The member.

TeamMemberSummary

A member row in Team Settings → Members (N7b).

FieldTypeDescription
activityLabelString!Humanized last-active label: "Active today" / "Active yesterday" / "Active Nd ago" / "Inactive Nd" / "Not recorded yet".
firstNameString!The member's first name.
isInactiveBoolean!True when no activity in the trailing 14 days.
joinedLabelString!Humanized "joined N ago" label.
lastNameStringThe member's last name.
photoUrlStringThe member's avatar URL, or nil (falls back to initials).
publicIdID!The member's public identifier (their User public_id).
roleString!Display role: owner, admin, member, external_coach, lead, or coach. "lead" and "coach" are display-only labels layered over the underlying TeamMembership role — see PromoteTeamMember for the persisted role values.
roomIds[ID!]!Community public_ids this member belongs to. Empty array if none.
teamMembershipIdID!This member's TeamMembership public_id — the id promote/remove mutations take.

TeamNotificationPreferences

Team notification preferences for the authenticated user.

FieldTypeDescription
enabledBoolean!Whether the user receives in-app and push notifications from their teams.

TeamPendingInvite

A pending invite row in the Members (N7b) or Invites (N7d) tab.

FieldTypeDescription
codeString!The invite code (used to build the join link for Copy).
emailStringInvitee email, or null for a link-only invite.
expiresAtISO8601DateTime! ()When this invite expires.
idID!Public identifier for this invite.
sentLabelString!Humanized duration since sent (e.g. "2 days") — no trailing "ago"; TeamMembersTab.vue/TeamInvitesTab.vue append "ago" themselves ("Sent {sentLabel} ago").
statusString!pending, accepted, revoked, or expired.

TeamPulseConfirmation

Confirmation that a team pulse survey response was recorded.

FieldTypeDescription
periodString!The quarter period this response was recorded for (e.g. "2026-Q3").

TeamSettings

Aggregate read backing Team Settings (N7): Members, Sub-Communities, and Invites tabs.

FieldTypeDescription
maxSubCommunitiesInt!Sub-community cap for this team (N7c header count).
members[TeamMemberSummary!]! ()Every current team member.
pendingInvites[TeamPendingInvite!]! ()Invites still awaiting acceptance.
roleString!The viewer's TeamMembership role on this team.
seatLimitIntThe team's subscription seat count, or nil when unprovisioned.
seatsUsedInt!Current member count.
subCommunities[Community!]! ()Every sub-community for this team, including archived ones (N7c renders archived rooms in a read-only 30-day window).
teamTeam! ()The team.

TeamSubscription

A Team billing subscription — plan, seats, and lifecycle status.

FieldTypeDescription
currentPeriodEndISO8601DateTime ()End of the current billing period.
planPlan! ()The Teams plan this subscription is on.
publicIdID!URL-safe public identifier for this subscription.
seatCountInt!Number of seats currently provisioned.
statusString!Lifecycle status: trialing, active, past_due, grace, or canceled.
trialEndsAtISO8601DateTime ()When the free trial ends, if trialing.

TeamSwitcherEntry

One row of the viewer's myTeams list (OBJ-1821) — the team switcher never fetches a membership's user.

FieldTypeDescription
roleString!owner, admin, member, or external_coach.
teamTeam! ()The team this membership belongs to.

ToggleFeedbackVotePayload

Autogenerated return type of ToggleFeedbackVote.

FieldTypeDescription
errors[String!]!
feedbackPostFeedbackPost ()
votedBoolean

ToggleFollowGoalPayload

Autogenerated return type of ToggleFollowGoal.

FieldTypeDescription
errors[String!]!
resultResult ()

ToggleGoalEventEncouragementPayload

Autogenerated return type of ToggleGoalEventEncouragement.

FieldTypeDescription
errors[String!]!
goalEventEncouragementGoalEventEncouragement ()

ToggleGoalEventReactionPayload

Autogenerated return type of ToggleGoalEventReaction.

FieldTypeDescription
errors[String!]!
goalEventReactionGoalEventReaction ()

TourFunnel

Aggregated tour-completion funnel counts for a single tour id. Admin only. Returns aggregates only — no user identifiers.

FieldTypeDescription
completedInt!Users who completed this tour (completed_at present).
completionRateFloatcompleted / started. Null when started is zero.
dismissedInt!Users who skipped/dismissed this tour without completing.
startedInt!Lower-bound proxy: users with a persisted completed_at or dismissed=true entry for this tour. feature_tours never records a raw start event — true start volume lives in PostHog (tour_started).
tourIdString!Tour identifier, matching ionic_frontend TOUR_REGISTRY tourId (e.g. "dashboard-first-run").

TransferTeamBillingOwnershipPayload

Autogenerated return type of TransferTeamBillingOwnership.

FieldTypeDescription
errors[String!]!
teamTeam ()

TrendingCommunity

A community currently trending based on member growth and activity metrics.

FieldTypeDescription
activeMembersInt!Count of members who posted or commented in the past 7 days.
categoryString!Category label for the community (e.g. "Fitness", "Learning").
coverImageStringURL of the community banner/cover image.
descriptionStringHuman-readable description of the community purpose.
growthRateFloat!Percentage growth in membership over the past 7 days.
isTrendingBoolean!Always true for trending communities — indicates current trending status.
nameString!Display name of the community.
publicIdID!URL-safe public identifier for this community.
reasonCommunityReason ()The single disclosable reason this community is trending, or null if none applies. Always null when discovery_ranking_v2 is disabled.
totalGoalsInt!Total number of goals shared in this community.
totalMembersInt!Total member count.

TriggerAiRunPayload

Autogenerated return type of TriggerAiRun.

FieldTypeDescription
errors[String!]!
runAiRun ()

UnarchiveSubCommunityPayload

Autogenerated return type of UnarchiveSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

UnblockAllyPayload

Autogenerated return type of UnblockAlly.

FieldTypeDescription
errors[String!]!
successBoolean!

UnfollowCommunityPayload

Autogenerated return type of UnfollowCommunity.

FieldTypeDescription
resultResult ()

UnifiedFeed

Paginated unified activity feed.

FieldTypeDescription
hasMoreBoolean!Whether there are more items beyond this page.
items[UnifiedFeedItem!]! ()Feed items for the current page.
totalCountInt!Total number of feed items across all sources.

UnifiedFeedItem

A single item in the unified activity feed.

FieldTypeDescription
actionString!Action verb (e.g. "checked in on", "posted in").
actorIdStringpublic_id of the acting user.
actorNameStringDisplay name of the user who performed the action.
actorPhotoStringPhoto URL of the acting user.
badgeKeyStringBadge action key (e.g. complete_first_goal) when feed_type=notification and action=badge.
communityIdStringCommunity public_id if applicable.
communityNameStringCommunity name if applicable.
contentStringBody text or excerpt of the feed item.
feedTypeString!Source type: ally_activity, community_post, notification, or own_activity.
idString!Unique identifier for this feed item (prefixed by source type).
targetIdStringpublic_id of the target entity.
targetNameStringName of the goal or community acted upon.
targetTypeStringEntity type: goal or community.
timestampString!Unix timestamp as a string.

UpdateAiEmployeePayload

Autogenerated return type of UpdateAiEmployee.

FieldTypeDescription
employeeAiEmployee ()
errors[String!]!

UpdateCoachingPreferencesPayload

Autogenerated return type of UpdateCoachingPreferences.

FieldTypeDescription
coachingPreferencesCoachingPreferences ()
errors[String!]!

UpdateCoachModelPayload

Autogenerated return type of UpdateCoachModel.

FieldTypeDescription
errors[String!]!
settingCoachModelSetting ()

UpdateCoachWarmupContextPayload

Autogenerated return type of UpdateCoachWarmupContext.

FieldTypeDescription
errors[String!]!
userDetailUserDetail ()

UpdateDashboardPreferencesPayload

Autogenerated return type of UpdateDashboardPreferences.

FieldTypeDescription
dashboardPreferencesDashboardPreferences ()
errors[String!]!

UpdateDemoCommunityPayload

Autogenerated return type of UpdateDemoCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!

UpdateDemoGoalPayload

Autogenerated return type of UpdateDemoGoal.

FieldTypeDescription
errors[String!]!
goalGoal ()

UpdateDemoUserPayload

Autogenerated return type of UpdateDemoUser.

FieldTypeDescription
errors[String!]!
userUser ()

UpdateFeedbackPostStatusPayload

Autogenerated return type of UpdateFeedbackPostStatus.

FieldTypeDescription
errors[String!]!
feedbackPostFeedbackPost ()

UpdateFeedbackPostTagsPayload

Autogenerated return type of UpdateFeedbackPostTags.

FieldTypeDescription
errors[String!]!
feedbackPostFeedbackPost ()

UpdateFeedbackTagPayload

Autogenerated return type of UpdateFeedbackTag.

FieldTypeDescription
errors[String!]!
feedbackTagFeedbackTag ()

UpdateGoalEventPayload

Autogenerated return type of UpdateGoalEvent.

FieldTypeDescription
errors[String!]!
goalEventGoalEvent ()

UpdateGoalMotivationSnapshotPayload

Autogenerated return type of UpdateGoalMotivationSnapshot.

FieldTypeDescription
errors[String!]!
goalMotivationProfileGoalMotivationProfile ()

UpdateGoalPayload

Autogenerated return type of UpdateGoal.

FieldTypeDescription
errors[String!]!
goalGoal ()

UpdatePrivacySettingsPayload

Autogenerated return type of UpdatePrivacySettings.

FieldTypeDescription
errors[String!]!
userUser ()

UpdateSeasonalEventPayload

Autogenerated return type of UpdateSeasonalEvent.

FieldTypeDescription
errors[String!]
seasonalEventSeasonalEvent ()

UpdateShowcasedAchievementsPayload

Autogenerated return type of UpdateShowcasedAchievements.

FieldTypeDescription
errors[String!]
successBoolean!

UpdateSubCommunityPayload

Autogenerated return type of UpdateSubCommunity.

FieldTypeDescription
communityCommunity ()
errors[String!]!
teamReadOnlyBoolean!True only for the grace-period read-only failure — the frontend renders its own "team is read-only" copy for this.

UpdateUserPayload

Autogenerated return type of UpdateUser.

FieldTypeDescription
errors[String!]!
userUser ()

UpdateUserPhotoPayload

Autogenerated return type of UpdateUserPhoto.

FieldTypeDescription
errors[String!]!
userPhotoUserPhoto ()

UpdateUserRolesPayload

Autogenerated return type of UpdateUserRoles.

FieldTypeDescription
errors[String!]
userUser ()

User

A registered Objectuve user with gamification progress, goals, and social connections.

FieldTypeDescription
achievementStatsAchievementStats ()Computed rank, XP, and badge stats for the Achievements page hero.
actions[UserAction!] ()Gamification action log used to compute badges and achievements, newest first. Bounded by limit — use unlockedAchievementKeys for a complete badge-unlock check independent of this limit.
adminBoolean!Whether the user has admin privileges.
adminRoles[String!]!List of admin RBAC roles enabled for this user.
coachingPreferencesCoachingPreferences! ()AI Coach persona and communication preferences.
colorThemeString!Supporter color theme slug synced across devices. Defaults to "default".
completedCommunityChallenges[ChallengeParticipant!]! ()Challenge participations where the user has met the completion threshold.
completedSeasonalEvents[SeasonalEventParticipant!]! ()Seasonal event participations where the user has met the completion threshold.
createdAtTimeStringUnix timestamp (string) when the account was created.
currentInsights[InsightPack!]! ()Daily AI coaching insight cards for the five core app pages. Returns cached packs or an empty array when the cache is cold. Never raises AI_DISABLED — callers should render fallback copy on empty array.
dashboardPreferencesDashboardPreferences! ()Dashboard hierarchy view preferences (v4.15).
daysSinceLastActiveIntDays since last recorded activity. Null for users who have never been active.
demoBoolean!Whether this user is a demo-tagged record (Phase 30).
detailsUserDetail ()Extended profile metadata stored as JSON (e.g. showcased achievements).
emailString!Primary email address for the account.
emailVerifiedBoolean!Whether the user has confirmed their email address.
featureTourStatusJSON! ()Feature-tour completion/dismissal state, keyed by tour id (e.g. "dashboard-first-run"). Empty hash if no tour has started.
feedItems[UserFeedItem!] ()Personal activity feed items for the user's home timeline, newest first.
firstNameStringUser's given name.
goItAloneBoolean!Whether the user has opted out of ally/community/coach-social prompts. Defaults to false.
goalMotivationProfileGoalMotivationProfile ()Goal Motivation Snapshot answers. Null until first answer is saved.
goals[Goal!]! ()All goals owned by this user.
graceDays[String!]!ISO date strings (within last 30 days) where soft-grace forgave a single-day streak gap. Forgiven days are skipped — not counted toward the streak number.
hasAllyBoolean!True if the user has at least one accepted ally (either direction).
hasCreatedFromTemplateBoolean!True if the user has at least one goal created from a template.
hasDigestEnabledBoolean!Whether the user has weekly digest emails enabled (nil defaults to true).
isSupporterBoolean!Whether the user has an active Supporter subscription.
lastDigestSentAtStringISO 8601 timestamp of the last digest sent, or null if never sent.
lastNameStringUser's family name.
latestEnneagramAssessmentEnneagramAssessment ()Most recent completed Enneagram assessment for this user, or null if none.
levelInt!Current gamification level derived from XP.
longestStreakInt!All-time longest streak of consecutive active days.
moodGoalInsightInsightPack ()Reflective correlation between mood logs and goal check-ins. Null unless a correlation exists AND mood_goal_insights_enabled is on for this user (fail-closed).
nextLevelThresholdInt!XP required to reach the next level.
nextOnTheShelfBadgeNextBadge ()The locked badge closest to being unlocked, or null if all badges are earned.
notifications[UserNotification!] ()In-app notifications for this user, newest first.
onboardingStatusOnboardingStatus ()v1.8 onboarding completion + resume state. Null until completed or backfilled.
paceSuggestionPaceSuggestion ()Timeline-adjustment suggestion when a goal is consistently ahead of or behind pace. Null unless a suggestion exists AND goal_auto_adjust_enabled is on (fail-closed).
photoUserPhoto ()Profile photo for the user.
privateModeBoolean!Whether the user is hidden from username search. Defaults to false.
progressToNextLevelFloat!Fraction (0.0–1.0) representing progress toward the next level.
publicIdID!URL-safe public identifier. Use this for all lookups — internal integer IDs are never exposed.
recentlyUnlockedBadges[RecentlyUnlockedBadge!]! ()Badges unlocked within the specified window, newest first.
requiredCheckinsCompleteTodayBoolean!True when the user has logged every habit check-in expected today (or has no habits expected today).
showcasedAchievements[String!]Achievement identifiers the user has chosen to display on their profile.
signInDates[String!]List of ISO date strings on which the user has signed in.
signupAgeDaysInt!Whole days since the user account was created (signup age).
statsUserStats ()Aggregated goal and achievement statistics for the user.
streakInt!Current number of consecutive days the user has logged activity.
streakRepairOfferStreakRepairOffer ()Streak Repair eligibility and offer payload for the active-user repair window.
supporterTierStringActive supporter tier: monthly, yearly, lifetime, or null.
supporterUntilISO8601DateTime ()When the current supporter period ends (null for lifetime).
timeToFirstGoalSecondsIntSeconds from account creation to first (non-deleted) goal. Admin-only — returns null for non-admin viewers.
todaysMoodStringMost recent mood log from today, or null if not logged.
unlockedAchievementKeys[String!]!Distinct set of gamification action keys this user has ever unlocked, independent of the actions field limit. Use this for badge-unlock checks instead of scanning actions.
updatedAtTimeStringUnix timestamp (string) when the account was last updated.
usernameStringUnique handle chosen by the user (e.g. "jane.doe").
welcomeBackOfferWelcomeBackOffer ()Streak Mercy eligibility and offer payload. Null until user is synced.
xpInt!Total experience points earned through goals, events, and engagement.

actions arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of actions to return (default 50, clamped to 200).

feedItems arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of feed items to return (default 50, clamped to 200).

notifications arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of notifications to return (default 50, clamped to 200).

recentlyUnlockedBadges arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of badges to return.
sinceDaysIntNoHow many days back to look for recently unlocked badges.

UserAction

A gamification action record tracking user behaviour for badges and achievements.

FieldTypeDescription
acknowledgedBoolean!Whether the user has been shown/dismissed the reward for this action.
actionString!Action identifier (e.g. "goal_created", "streak_7", "encouragement_given").
communityNameStringFor community-scoped badges, the name of the community the badge was earned in.
createdAtTimeStringUnix timestamp (string) when this action was recorded.
idID!Public identifier for this action record.

UserActivity

A single activity item in a user activity timeline within a community context.

FieldTypeDescription
communityIdIDpublic_id of the community this activity is associated with, if any.
communityNameStringName of the community this activity is associated with, if any.
contentString!Human-readable description of the activity.
idID!Public identifier for this activity item.
timestampString!Unix timestamp (string) when this activity occurred.
typeString!Activity type (e.g. "goal_event", "community_post", "milestone_completed").

UserAlly

A friend/ally connection — another user in the current user allies network.

FieldTypeDescription
accountabilityPartnerBoolean!Whether this ally is the current accountability partner.
accountabilityPartnerSinceISO8601DateTime ()When the partnership was established.
createdAtTimeStringRequest creation time as unix epoch seconds (string).
firstNameStringThe ally user's given name.
idID!Public identifier for this ally relationship record.
lastNameStringThe ally user's family name.
mutualCountInt!Number of mutual allies shared between the current user and this ally.
mutualStreakCountInt!Current mutual check-in streak count.
partnerStatusString!Partnership state: "none", "pending", or "active".
photoUserPhoto ()The ally user's profile photo.
publicIdString!URL-safe public identifier of the ally user.
statusStringRaw ally relationship status: "pending", "accepted", or "blocked".
userPendingAllyUser ()The requesting user for a pending ally request.
usernameStringThe ally user's unique handle.

UserConnection

The connection type for User.

FieldTypeDescription
edges[UserEdge] ()A list of edges.
nodes[User] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

UserDetail

Extended profile metadata for a user, stored as a JSON blob.

FieldTypeDescription
dashboardMigratedFromFullBoolean!Whether this user was backfilled from the legacy "full" dashboard mode to Detailed (v4.15).
dashboardMigrationNoteDismissedBoolean!Whether the dashboard hierarchy migration note has been dismissed (v4.15).
dashboardRelocationHintAchieveDismissedBoolean!Whether the ShowcasedAchievements → Achieve relocation hint has been dismissed (v4.15).
dashboardRelocationHintCommunityDismissedBoolean!Whether the SocialSection → Community relocation hint has been dismissed (v4.15).
dataString!JSON string containing arbitrary profile metadata (e.g. showcasedAchievements, onboarding state).
enneagramCardDismissedBoolean!Whether the user has permanently dismissed the Enneagram dashboard prompt card.
idID!Public identifier for this detail record.

UserEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeUser ()The item at the end of the edge.

UserFeedItem

A single item in the user personal activity feed (home timeline).

FieldTypeDescription
contentString!Human-readable text describing the feed event.
createdAtTimeStringUnix timestamp (string) when this feed item was created.
detailsJsonString!JSON string with additional event metadata (e.g. related goal ID, user ID).
idID!Public identifier for this feed item.
kindString!Feed item type (e.g. "goal_event", "encouragement_received", "milestone_completed").

UserNotification

An in-app notification delivered to a user.

FieldTypeDescription
acknowledgedBoolean!Whether the user has dismissed/read this notification.
contentString!Human-readable notification message.
createdAtTimeStringUnix timestamp (string) when this notification was created.
detailsJsonString!JSON string with additional metadata (e.g. source user ID, goal ID).
idID!Public identifier for this notification.
kindString!Notification category (e.g. "encouragement", "milestone_completed", "community_post").

UserPhoto

A profile photo associated with a user.

FieldTypeDescription
idID!Public identifier for this photo record.
imageUrlStringURL of the profile photo image.

UserSearchResult

A user returned from the user-facing searchUsers query, with per-result ally relationship status.

FieldTypeDescription
achievementStatsAchievementStats ()Computed rank, XP, and badge stats for the Achievements page hero.
actions[UserAction!] ()Gamification action log used to compute badges and achievements, newest first. Bounded by limit — use unlockedAchievementKeys for a complete badge-unlock check independent of this limit.
adminBoolean!Whether the user has admin privileges.
adminRoles[String!]!List of admin RBAC roles enabled for this user.
allyStatusAllyStatusEnum! ()Relationship status between the authenticated user and this search result.
coachingPreferencesCoachingPreferences! ()AI Coach persona and communication preferences.
colorThemeString!Supporter color theme slug synced across devices. Defaults to "default".
completedCommunityChallenges[ChallengeParticipant!]! ()Challenge participations where the user has met the completion threshold.
completedSeasonalEvents[SeasonalEventParticipant!]! ()Seasonal event participations where the user has met the completion threshold.
createdAtTimeStringUnix timestamp (string) when the account was created.
currentInsights[InsightPack!]! ()Daily AI coaching insight cards for the five core app pages. Returns cached packs or an empty array when the cache is cold. Never raises AI_DISABLED — callers should render fallback copy on empty array.
dashboardPreferencesDashboardPreferences! ()Dashboard hierarchy view preferences (v4.15).
daysSinceLastActiveIntDays since last recorded activity. Null for users who have never been active.
demoBoolean!Whether this user is a demo-tagged record (Phase 30).
detailsUserDetail ()Extended profile metadata stored as JSON (e.g. showcased achievements).
emailString!Primary email address for the account.
emailVerifiedBoolean!Whether the user has confirmed their email address.
featureTourStatusJSON! ()Feature-tour completion/dismissal state, keyed by tour id (e.g. "dashboard-first-run"). Empty hash if no tour has started.
feedItems[UserFeedItem!] ()Personal activity feed items for the user's home timeline, newest first.
firstNameStringUser's given name.
goItAloneBoolean!Whether the user has opted out of ally/community/coach-social prompts. Defaults to false.
goalMotivationProfileGoalMotivationProfile ()Goal Motivation Snapshot answers. Null until first answer is saved.
goals[Goal!]! ()All goals owned by this user.
graceDays[String!]!ISO date strings (within last 30 days) where soft-grace forgave a single-day streak gap. Forgiven days are skipped — not counted toward the streak number.
hasAllyBoolean!True if the user has at least one accepted ally (either direction).
hasCreatedFromTemplateBoolean!True if the user has at least one goal created from a template.
hasDigestEnabledBoolean!Whether the user has weekly digest emails enabled (nil defaults to true).
isSupporterBoolean!Whether the user has an active Supporter subscription.
lastDigestSentAtStringISO 8601 timestamp of the last digest sent, or null if never sent.
lastNameStringUser's family name.
latestEnneagramAssessmentEnneagramAssessment ()Most recent completed Enneagram assessment for this user, or null if none.
levelInt!Current gamification level derived from XP.
longestStreakInt!All-time longest streak of consecutive active days.
moodGoalInsightInsightPack ()Reflective correlation between mood logs and goal check-ins. Null unless a correlation exists AND mood_goal_insights_enabled is on for this user (fail-closed).
nextLevelThresholdInt!XP required to reach the next level.
nextOnTheShelfBadgeNextBadge ()The locked badge closest to being unlocked, or null if all badges are earned.
notifications[UserNotification!] ()In-app notifications for this user, newest first.
onboardingStatusOnboardingStatus ()v1.8 onboarding completion + resume state. Null until completed or backfilled.
paceSuggestionPaceSuggestion ()Timeline-adjustment suggestion when a goal is consistently ahead of or behind pace. Null unless a suggestion exists AND goal_auto_adjust_enabled is on (fail-closed).
photoUserPhoto ()Profile photo for the user.
privateModeBoolean!Whether the user is hidden from username search. Defaults to false.
progressToNextLevelFloat!Fraction (0.0–1.0) representing progress toward the next level.
publicIdID!URL-safe public identifier. Use this for all lookups — internal integer IDs are never exposed.
recentlyUnlockedBadges[RecentlyUnlockedBadge!]! ()Badges unlocked within the specified window, newest first.
requiredCheckinsCompleteTodayBoolean!True when the user has logged every habit check-in expected today (or has no habits expected today).
showcasedAchievements[String!]Achievement identifiers the user has chosen to display on their profile.
signInDates[String!]List of ISO date strings on which the user has signed in.
signupAgeDaysInt!Whole days since the user account was created (signup age).
statsUserStats ()Aggregated goal and achievement statistics for the user.
streakInt!Current number of consecutive days the user has logged activity.
streakRepairOfferStreakRepairOffer ()Streak Repair eligibility and offer payload for the active-user repair window.
supporterTierStringActive supporter tier: monthly, yearly, lifetime, or null.
supporterUntilISO8601DateTime ()When the current supporter period ends (null for lifetime).
timeToFirstGoalSecondsIntSeconds from account creation to first (non-deleted) goal. Admin-only — returns null for non-admin viewers.
todaysMoodStringMost recent mood log from today, or null if not logged.
unlockedAchievementKeys[String!]!Distinct set of gamification action keys this user has ever unlocked, independent of the actions field limit. Use this for badge-unlock checks instead of scanning actions.
updatedAtTimeStringUnix timestamp (string) when the account was last updated.
usernameStringUnique handle chosen by the user (e.g. "jane.doe").
welcomeBackOfferWelcomeBackOffer ()Streak Mercy eligibility and offer payload. Null until user is synced.
xpInt!Total experience points earned through goals, events, and engagement.

actions arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of actions to return (default 50, clamped to 200).

feedItems arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of feed items to return (default 50, clamped to 200).

notifications arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of notifications to return (default 50, clamped to 200).

recentlyUnlockedBadges arguments:

NameTypeRequiredDescription
limitIntNoMaximum number of badges to return.
sinceDaysIntNoHow many days back to look for recently unlocked badges.

UserSearchResultConnection

The connection type for UserSearchResult.

FieldTypeDescription
edges[UserSearchResultEdge] ()A list of edges.
nodes[UserSearchResult] ()A list of nodes.
pageInfoPageInfo! ()Information to aid in pagination.

UserSearchResultEdge

An edge in a connection.

FieldTypeDescription
cursorString!A cursor for use in pagination.
nodeUserSearchResult ()The item at the end of the edge.

UserStats

Aggregated goal and achievement statistics for a user.

FieldTypeDescription
categoriesUsed[String!]!List of goal category names the user has set goals in.
completedGoalsInt!Number of goals the user has marked as completed.
encouragementsGivenInt!Number of encouragements the user has sent to other users.
goalsCreatedCountInt!Count of goals created (may differ from total_goals based on scope).
milestonesCompletedInt!Number of milestones the user has completed.
milestonesCreatedInt!Number of milestone sub-goals the user has created.
totalGoalsInt!Total number of goals created by the user (including completed and deleted).
typesUsed[String!]!List of goal type names the user has used.

UseStreakFreezePayload

Autogenerated return type of UseStreakFreeze.

FieldTypeDescription
errors[String!]!
goalGoal ()

VerifyMagicCodePayload

Autogenerated return type of VerifyMagicCode.

FieldTypeDescription
errors[String!]!
tokenString
userUser ()

WeeklyDigestPreferences

Weekly digest email preferences for the authenticated user.

FieldTypeDescription
deliveryDayString!Day to deliver the digest: 'sun', 'sat', or 'mon'. Defaults to 'sun'.
enabledBoolean!Whether the user has opted into the weekly digest.

WelcomeBackOffer

Streak Mercy offer shown to users returning after 5+ days away.

FieldTypeDescription
coachCopyStringAI Coach message for the interstitial. Null when ineligible.
daysSinceLastActiveIntDays since the user last recorded activity.
eligibleBoolean!Whether the user qualifies for a Streak Mercy offer right now.
targetGoalNameStringName of the target habit goal. Null when ineligible.
targetGoalPublicIdIDpublic_id of the habit goal eligible for Streak Mercy. Null when ineligible.
targetHabitStreakIntPre-break habit streak snapshot (captured before zeroing). Headline number in the Welcome Back interstitial. Null when ineligible.

WordCloud

A word and its frequency count, used for admin word cloud analytics.

FieldTypeDescription
nameString!The word or token extracted from the data.
valueInt!Frequency count — how many times this word appears in the dataset.

Last updated: 2026-09-19 (auto-generated from schema.graphql)

Loading…