---
id: "2.10"
title: "Journeys"
dept: product
status: draft
owner: Param
branded: false
last_verified: 2026-10-26
sources:
  - "brew origin/main b91e364: docs/handover/product/02-user-journeys.md:5-84, SCOPE.md:11-25"
  - "brew origin/main: public/app.js:276, 764, 1308, 1674; public/questions.js:36-40; build.js:239; confirm-remind.js:114; digest.js:54; brief-status.js:8; handoff.js:7; feed-service.js:261-264; connectors/index.js:51-53, 348; public/live.js:344-349"
  - "brand-directions/_shared/ia.md:133-145, product-model.md:37-49"
  - "brand-directions/book/content/d1.js d-4 j-first-week to j-leave"
  - "memory: brew-access-rules, brew-feed-open-moves, brew-real-connectors, brew-shopify-app-review, brew-team-jams"
---

# Journeys

## Answer

Seven journeys cover how people move through Brew: the first week, Monday, a specialist, the person who ships, the approver, connecting a tool, and when it breaks; each is written as today's steps, then tomorrow's.

## Today

### 1. First week, the founder

| Step | What happens today | Source |
|---|---|---|
| Paste | Type the store link, Build my feed | [src: docs/handover/product/02-user-journeys.md:7] |
| Sign in | Google sign in with a work email at the brand's domain; others see a wall to the demo | [src: public/app.js:276] [src: memory brew-access-rules] |
| Reading | Seven steps tick with findings; five questions on the reading screen | [src: SPEC.md:92] [src: public/questions.js:36-40] |
| Setup | Check what we read, seat, what first, connect, team | [src: public/app.js:764] |
| First feed open | Starts the Plays; reminders at 3 hours and a day if nobody opens it | [src: build.js:239] [src: confirm-remind.js:114] |
| Feed | Ten cards, Need your yes, rings | [src: public/app.js:1674] |
| Jam and hand-off | Open a card, make, Send to | [src: team-brief.js:20] |

### 2. Monday

The digest arrives on Monday from 09:00 brand time with new Plays, what people say, the next date, jams waiting and up to three ads; its button opens the feed [src: digest.js:54] [src: SCOPE.md:25].

### 3. A specialist

Picks a seat that re-ranks the feed, opens their cards, jams, sends to the founder for an OK [src: public/app.js:779] [src: memory brew-team-jams].

### 4. The person who ships

Gets the brief by email from the brand, opens `/h/<token>?full=1` with no login; signing in makes them a guest of that one jam who can chat, edit the brief and make drafts, and cannot share, approve, assign, discard or start paid makes [src: handoff.js:7] [src: feed-service.js:261-264].

### 5. The approver

Sees Need your yes in the feed, or an Ask for OK email from a jam [src: public/app.js:1308] [src: memory brew-team-jams].

### 6. Connecting a tool

Admins open Connectors, follow a guided sheet or sign in with the platform, and come back to the step they left; Shopify by the brand's own app or the Shopify app in review; reads every 3 to 12 hours [src: connectors/index.js:348] [src: memory brew-real-connectors] [src: memory brew-shopify-app-review].

### 7. When it breaks

| Case | What happens | Source |
|---|---|---|
| A read step fails | Says it could not check, never none | [src: CLAUDE.md:12] |
| A deploy cuts a read | The reading page fills missing cards on ready | [src: memory brew-read-stream-backfill] |
| A connection fails | Backs off; after 3 failures or 72 hours its numbers are stale | [src: connectors/index.js:51-53] |
| Reads cap | Three new brands a day per person | [src: build.js:222-225] |
| Leaving | Ask us to delete your data, deleted within 7 days | [src: public/live.js:344-349] |

## Tomorrow

| Journey | Version | Tag | Tomorrow's screens |
|---|---|---|---|
| First week | v1 | Changes | Paste, sign in, reading with three questions, the reveal, Today with the first win bar, a pick, Make it, Hand it off, Handed off, Caught up [src: brand-directions/_shared/ia.md:137] |
| Monday | v1 | Changes | Monday email with five picks, Today, Need your yes, a pick, Make it, Hand it off, Caught up |
| A specialist | v1 | Changes | See everything filtered to their areas, a pick, Make it, Hand it off |
| The person who ships | v1 | Changes | One brief page, then Open it in Make it as a guest |
| The approver | v1 | Changes | Need your yes, Yes, done |
| Connecting a tool | v1 | Changes | Settings, Connections, one connect sheet, status chips Connected, Needs you, Expiring, Stale, Read only |
| When it breaks | v1 | Changes | One error page, one error state, Start again |
| Post and schedule | v2 | New | Schedule it after a yes |
| See what worked | v3 | New | How it went in Work |
| Let it run | v4 | New | Inside rules, with undo |
| Agency with many brands | v2 to v4 | New | Brand switcher |

## How we do it

1. Walk each journey on production on one partner after any release that touches it, signed in, on a phone and a laptop.
2. Run the layout audit on jam links:
   ```
   node tools/audit-layout.mjs <jam share links>
   ```
3. A journey change updates this page and the [onboarding](onboarding.md) page the same day.

## Numbers

| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Time to first hand-off | Minutes from paste to the first hand-off | Decision log | Proposed |
| Monday return | Share of brands that open the feed in the week of a digest | Sign ins and feed opens | Proposed |

## Open

1. **Reveal before or after sign in?** Today sign in comes first. Proposal: keep sign in first while reads are capped.
2. **Can an approver answer from email?** Proposal: yes, with Yes and Not now links that open a confirm page.
3. **Can the person who ships mark a brief delivered?** Proposal: no; only the brand's team and our team move status.
