Web MD Open in Web MD

Last Updated: 2026-07-20
Version: 0.4
Slack: #core-health-kit-integration
Notion: Health Kit Integration
Designs

Background

As we explore a multi-modal / coaching experience, we want to collect signals that give insight into a user's overall cognitive health. The goal of this initial HealthKit integration is to get users to opt in, so we can start collecting that data and build features that surface more of that insight.

Scope (v1)

Screens

User Flows

Proactive touchpoint — after the last question in the self check-in flow:

flowchart LR
  A[Self check-in questions] --> B[Hook]
  B --> C[connect_disclosure]
  C --> D[apple_native_sheet]
  D --> E[complete_connected]

Evergreen — Apple connect button on the Lifestyle section of the My Brain tab:

flowchart LR
  A[Apple connect button<br/>Lifestyle section, My Brain] --> B[connect_disclosure]
  B --> C[apple_native_sheet]

Settings — from the connection status component:

flowchart LR
  A[settings_main_app_connected] --> B[connect_disclosure]
  B --> C[apple_native_sheet]

Requirements

Bars show the last 7 days; each card's summary statistic window (all data vs. rolling 7/30 days) is an open question (see Open questions).

Metric Source Chart (bars) Summary statistic
Sleep Apple Health or check-in Time slept per day; each day = the prior night Average, ignoring days with no sleep
Steps Apple Health Steps per day Daily average, ignoring days with no steps
Exercise Minutes Apple Health Minutes per day Daily average
Mindful Minutes Apple Health Minutes meditated per day Daily average
Resting Heart Rate Apple Health Latest-value snapshot — no chart to start
HRV Apple Health Latest-value snapshot — no chart to start
Mood Check-in Daily series; higher = more positive Most-common mood; ties → better mood
Mental Clarity Check-in Daily series; higher = more clarity Most-common clarity; ties → greater clarity

States

Self check-in flow

Lifestyle screen

Charts

Sleep

Events

Follows the Product instrumentation guide. Use the standard event names (screen_view, object_view, object_click) with product-specific state in properties — do not invent bespoke event names. Reuse canonical screen_name / click_name values from consumer-mobile/lib/analytics/events.dart; where no canonical name exists, record it here as a dictionary gap rather than inventing an alias. Treat assignment, exposure, and outcome as separate signals (required for the hook A/B readout).

Proactive hook (A/B)

Disclosure → native sheet → complete (shared across all entry points)

Evergreen & Settings surfaces

Lifestyle charts & check-in

Sync (server-owned)

Open questions & Follow Ups


Sources