Skip to content

feat: add curator-note tracking (has_curator_note + tapped/clicked events)#733

Draft
MounirDhahri wants to merge 1 commit into
mainfrom
claude/curator-note-tracking
Draft

feat: add curator-note tracking (has_curator_note + tapped/clicked events)#733
MounirDhahri wants to merge 1 commit into
mainfrom
claude/curator-note-tracking

Conversation

@MounirDhahri

Copy link
Copy Markdown
Member

What

Analytics schema for the curator's note feature on marketing collections (eigen artsy/eigen#13770, force artsy/force#17490).

1. has_curator_note?: boolean on the artwork tap/click events — so we can tell whether a tapped/clicked artwork carried a curator note (to compare performance of artworks with vs. without notes):

  • TappedArtworkGroup, TappedMainArtworkGrid (iOS / eigen)
  • ClickedArtworkGroup, ClickedMainArtworkGrid (web / force)

2. New events for tapping/clicking the note itself (opens the sheet/dialog):

  • TappedCuratorNote (iOS / eigen) + ActionType.tappedCuratorNote
  • ClickedCuratorNote (web / force) + ActionType.clickedCuratorNote

Each carries context_module, the collection as context_*_owner_*, and the artwork as artwork_id/artwork_slug.

All new fields are optional and follow the existing snake_case convention; the new events mirror the standalone-event pattern (e.g. TappedAskSpecialist). Wired into the ActionType enum, the import block, and the Event union in src/Schema/Events/index.ts.

Consumers

Once this is published (canary or released) and eigen/force bump @artsy/cohesion, they'll reference these to:

  • set has_curator_note on the artwork tap/click payloads, and
  • fire TappedCuratorNote/ClickedCuratorNote when the note badge is tapped/clicked.

Not merging yet

Draft — opened for review, not to be merged. The consuming eigen/force PRs reference these symbols and will type-check once this publishes and they bump the dependency.

CI note

Authored without node_modules, so yarn type-check / yarn lint / yarn test were not run locally — please rely on CI. In particular yarn lint (sort-keys-fix / simple-import-sort) may reorder the new enum member / import / union entries; I placed them in best-guess alphabetical position.

🤖 Generated with Claude Code


Generated by Claude Code

…ked events)

Support analytics for the curator's note feature on marketing collections:

- Add optional `has_curator_note?: boolean` to the artwork tap/click events so we
  can tell whether a tapped/clicked artwork carried a curator note:
  TappedArtworkGroup, TappedMainArtworkGrid (iOS), ClickedArtworkGroup,
  ClickedMainArtworkGrid (web).
- Add new events for tapping/clicking the note itself: TappedCuratorNote (iOS) +
  ClickedCuratorNote (web), with matching ActionType members, imports, and Event
  union entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X2iHtPiKHN91ghgcJWyJjC
@artsyit artsyit added the Version: Minor A deploy for new features label Jul 16, 2026
MounirDhahri pushed a commit to artsy/eigen that referenced this pull request Jul 16, 2026
- Gate CollectorNote behind the AREnableCuratorNotes Echo feature flag (added to
  features.ts; needs registering on echo.artsy.net + `update-echo`).
- Track a TappedCuratorNote event when the note label is tapped (fired from
  ArtworkGridItem and ArtworkRailCardMeta via a new CollectorNote `onTap`).
- Add has_curator_note boolean to the artwork tap events: TappedMainArtworkGrid
  (grid) and TappedArtworkGroup (CollectionsByCategory rail), so we can compare
  taps on artworks with vs. without a note.

Depends on the cohesion additions (artsy/cohesion#733); the new symbols
(TappedCuratorNote, has_curator_note, ActionType.tappedCuratorNote) type-check
once @artsy/cohesion is published and bumped here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X2iHtPiKHN91ghgcJWyJjC
MounirDhahri pushed a commit to artsy/force that referenced this pull request Jul 16, 2026
- Gate CuratorNote behind the `curators-notes` Unleash flag (useFlag). The flag
  must be created in the Unleash dashboard; confirm the exact name/prefix with
  the owning team.
- Track a ClickedCuratorNote event when the note is clicked (fired from
  CuratorNote using useAnalyticsContext + the artwork id/slug threaded from
  Details; added `slug` to Details_artwork).
- Add has_curator_note boolean to the artwork click events: ClickedMainArtworkGrid
  (collection page grid, threaded via ArtworkGrid's onBrickClick) and
  ClickedArtworkGroup (HomeEmergingPicksArtworksRail).

Depends on the cohesion additions (artsy/cohesion#733); the new symbols
(ClickedCuratorNote, has_curator_note, ActionType.clickedCuratorNote) type-check
once @artsy/cohesion is published and bumped here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X2iHtPiKHN91ghgcJWyJjC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Version: Minor A deploy for new features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants