Answer
The steps from a brand saying yes to its first win, which we define as the first brief handed off: get the brand's own people in, let the Plays write on the first feed open, connect one real account, then make and hand off one piece.
Today
Where a partner lands
- Production, feed.joinsquareup.com, is every partner's home since 25 Oct; staging is testing only memory brew-prod-backend brew commit 119dc8a
Getting in
| Step | What happens | Source |
|---|---|---|
| Sign in | Google sign in. Our own domains see every brand; anyone else only with the brand's own email or an invite | memory brew-access-rules |
| Outsiders | A personal or other company email gets one wall: switch to a work email, or see the demo stores | brew/public/app.js:276-288 brew/public/app.js:78-90 |
| A new read | A non official email cannot start a new read | memory brew-access-rules |
| Teammates | Someone on the owner's company domain joins on their own; for a brand our staff claimed, the brand's site domain counts | brew/auth.js:104-110 |
| Invites | An invite is good for 14 days and works however the person arrives | brew/auth.js:78 brew/auth.js:101-102 |
| Closed stores | A store read from the Shopify admin while closed is visible only to its team | memory brew-closed-store-gate |
The first read and the Plays
| Step | What happens | Source |
|---|---|---|
| Read, check, brief | The read runs, the team checks what it found, the brief is written | brew/build.js:363 |
| Feed gate | On a brand's first read, the Plays start only when someone first opens the feed; corrections made while waiting go into the brief first | brew/build.js:93 brew/build.js:239 memory brew-feed-open-moves |
| Reminders | If nobody opens the feed, the starter and owners get an "Open my feed" email at 3 and 24 hours | brew/confirm-remind.js:114-122 memory brew-feed-open-moves |
| Learnings | Anything dropped in, such as a deck, notes or an agency plan, becomes context; the Plays it touches are updated | memory brew-drop-learnings memory brew-absorb-all-learnings |
Connecting accounts
| Account | How, today | Source |
|---|---|---|
| GA4 | Add the service account as Viewer, paste the property ID | brew/docs/connectors-approvals.md:10 |
| Klaviyo | A read only private key, pasted | brew/docs/connectors-approvals.md:11 |
| Judge.me | The API token, pasted with the store address | brew/docs/connectors-approvals.md:12 |
| Shopify | The brand makes its own app in the Shopify Dev Dashboard and pastes the client ID and secret; one click waits on Shopify's review, submitted 21 Oct | brew/docs/connectors-approvals.md:13 memory brew-shopify-app-review |
| Meta Ads | One click, but until App Review the brand's Meta admin must first get a role on our app | brew/docs/connectors-approvals.md:25-29 memory brew-meta-app-review |
| Google Ads | One click; Google shows an unverified app screen, 100 user cap | brew/docs/connectors-approvals.md:19-24 |
| Slack | One click, pick the channel | brew/docs/connectors-approvals.md:15 |
| Who may connect | Only the owner or our staff; teammates can only sync | memory brew-real-connectors |
| After the first connect | The run waits 30 minutes for more accounts and each first read, then rewrites the Plays privately, capped at $40 | brew/build.js:1070 memory brew-connect-refresh |
| Arata | Its connections are protected and never touched | brew/connectors/protected.js:3 |
What is not on production yet
- The new jam Set-up tab is kept on staging, so partners do not see it yet memory brew-setup-v2
- Sloosh needs a staff sign in on each site before finals work there brew/docs/production.md:125-126
Tomorrow
| Item | Version | Tag |
|---|---|---|
| Paste your store, sign in with a work email, watch it read while answering three quick questions, see one finding, then the first win | v1 | Changes, from about 11 screens and 14 choices today |
| The first win bar: heart one, make one, hand off one; it leaves once all three are done | v1 | New |
| Activation is the first hand off | v1 | New |
| Four ways in land on the same Today: founder, invited teammate, agency per brand, Shopify install | v1 | Changes |
| Nothing nags until the next Monday's picks | v1 | Changes |
| One click Shopify and Meta once the platform reviews pass | v1 | Changes |
brand-directions/book/content/c1.js c-1b path, who-onboards, activation, after-day-one
How we do it
Before the call
- Confirm the brand's read is done on production and its Plays are written. Open three Play PDFs and one jam.
- Check that nothing dummy shows on the brand's feed.
- For Meta, add the brand's Meta admin to our app's roles in advance.
- Send the design partner agreement.
On the call, 30 minutes
- The brand's owner signs in at
https://feed.joinsquareup.com/<slug>with their work email. - They open the feed. If it is a first read, this starts the Plays.
- Walk What we know about the store; fix anything wrong on the spot.
- Connect one account. Shopify through their own app is the strongest first choice.
- Invite one teammate from Team.
- Open one card with a first draft, make one version, then share the brief with whoever ships it.
- Agree the weekly 15 minute check in.
After the call
- Log the call in the partner feedback log the same day.
- Check 30 minutes later that the connected rewrite ran:
gcloud run jobs execute brew-ops --region=asia-south1
- Update the brand's page and the pipeline stage.
Numbers
| Metric | Definition | Where measured | Status |
|---|---|---|---|
| Time to team in | From read done to the first brand email joining | private/members.json |
Proposed |
| Time to first connect | From first sign in to the first real account reading | Connector ledger | Proposed |
| Time to first hand off | From first sign in to the first brief shared or sent | Jam records | Proposed, the activation metric |
| Feed gate wait | Hours from the brief to the first feed open | status.feedWaitSince to feedOpenAt |
Proposed |
Open
- Is the first hand off the activation we count? Proposal: yes, first hand off within 7 days of the first sign in.
- Does every partner onboard on a call, or alone? Proposal: on a call for the five design partners; alone, with the first win bar, for everyone after.
- Who runs the calls? Proposal: Param for the five, with Sai or Arvind shadowing one each.
- When does the new Set-up tab reach production? Proposal: after the five partners' first calls, so they learn one screen at a time.