Snapshots

Five partners, one checklist, and a first brief shared within a week

Waiting on you
  • Arata, Nutrova, Mana, Puma India and Scrubroom are live on production since 25 Oct.
  • Only staff, the brand's own email domain or an invite gets in; Google sign in only.
  • The team has 15 minutes to check what we read before the brief goes on.
  • Shopify, GA4, Meta, Klaviyo and Judge.me connect read only; Meta waits on App Review.
  • Never touch any Arata connection; disconnect tests run on Cozy or Zenant.
15minutes to check the read
Your call

Who on our team owns each partner's first week?

Customer success and support · 12.1

Partner onboarding

DraftLast checked 2026-10-26Owner Param

Answer

The first week with a design partner, from the first sign in to the first brief, and the checklist our team runs so every partner starts the same way.

Today

Who we onboard

Fact Source
The five design partners are Arata, Nutrova, Mana, Puma India and Scrubroom. Cozy Snugglet and Zenant are our own test brands. memory brew-live-stores
All five live on production at feed.joinsquareup.com since 25 Oct. Staging at brew.joinsquareup.com is for testing only. memory brew-prod-backend; brew commit 119dc8a
On 25 Oct a commit moved Arata and Nutrova back to staging for a 26 Oct onboarding, and a later commit the same evening moved every partner home to production again. brew commits deb7d90, 119dc8a, 41b0258
The five were copied to production on 25 Oct with their reads, Plays and connections. Jams, finals and simulated connector data stayed on staging. memory brew-prod-backend
The preview is free and offered as it is. brew/legal-pages.js:40

Getting in

  • Only three kinds of people open a brand: our own staff domains, someone with an email at the brand's own domain, or someone the team invited. memory brew-access-rules
  • Sign in is Google only. The landing says email sign in is coming. brew/public/app.js:409
  • Anyone else sees one wall that points to the demo stores. brew/public/app.js:286-290
  • Someone without the brand's email cannot start a new read of it. brew/server.js:761
  • A teammate who signs in with the same company domain joins on their own, and the admins get an email. brew/auth.js:108-110, 125
  • An invite link works for 14 days and only for the invited Google account. brew/auth.js:78, 190
  • A pending invite also works if the person arrives another way and signs in with that email. brew/auth.js:102
  • A store still behind Shopify's password page is shown to its own team only. brew/closed-gate.js:31-32

The first run

Step What the product does Source
Landing Says Your store’s marketing team, in one feed. and asks for the website. brew/public/app.js:405
Limits One new brand an hour from the same network, and a daily reading budget. brew/build.js:226-227
Check what we read The brand brief waits 15 minutes for the team to check the read, then goes on with what was read. brew/build.js:94
Check reminders If nobody checks, the starter and the admins get an email after 3 hours and once more after a day. brew/confirm-remind.js:21, 70-74
Feed gate On a brand's first read the Plays wait until someone opens the feed. Reminders follow at 3 hours and a day. brew/build.js:239, 363; brew/confirm-remind.js:84-87; memory brew-feed-open-moves
Set up screens Who's this feed for, Anything Brew should know, Connect your tools, Invite your team. brew/public/app.js:773, 786, 818, 843
Plays ready Emails go to the whole team when the first Plays land and when all are in. brew/build.js:1012-1019

Connecting accounts

  • Only an admin or our staff connect or disconnect. Teammates can only sync. memory brew-real-connectors
  • Shopify connects through the brand's own Dev Dashboard app. One click install waits on Shopify's review of our public app, submitted 21 Oct. memory brew-real-connectors, brew-shopify-app-review
  • Meta connects in one click, but until Meta App Review passes only people with a role on our Meta app can connect. Review was blocked on 24 Oct by business verification and two screencasts. memory brew-real-connectors, brew-meta-app-review
  • Google Analytics connects by adding our service account as Viewer and pasting the property ID, or by one click Google sign in. memory brew-real-connectors
  • Klaviyo and Judge.me connect with a pasted key. memory brew-real-connectors
  • The first real connection rewrites every Play privately for the team, capped at $40 a brand, after a 30 minute quiet period. brew/build.js:1070; memory brew-connect-refresh
  • A Meta sign in that will run out triggers an email to admins 7 days ahead and again when it runs out. brew/connectors/index.js:53, 482-493
  • Arata's Meta and Shopify connections are protected in code and are never disconnected. brew/connectors/protected.js:1-3; memory never-disconnect-arata-meta

Tomorrow

Version Tag Item
v1 New A first week checklist per partner, kept in this document and run by one named person on our team.
v1 New Activation means the first brief shared, to the brand's own team or to ours, within the first week. The old book proposed heart one, make one, hand off one; today's code has no first win bar, so the brief is the event we can count now.
v1 Changes Shopify partners install from the Shopify admin once our public app is approved, and skip pasting the address.
v1 Changes Meta connects for any partner once App Review passes. Until then we add each partner's Meta person as a role on our app.
v1 Stays Read only. Nothing is posted, sent to customers or spent from a partner's accounts.
v1 Stays The feed gate: Plays are written only once the team has finished onboarding and corrections are in.
v2 New A short welcome call script, if Param wants one, once the checklist has run on all five.

How we do it

Run this for every partner, in order.

  1. Before the first sign in, write down the brand's official domain and who its admin is. Only that domain, or an invite, gets in.

  2. Confirm the brand is on production and reads its connections.

    gcloud run jobs execute brew-ops --region=asia-south1 --wait
    

    The job runs db/status.mjs and shows connection states and table sizes.

  3. Send the partner the production address, feed.joinsquareup.com plus the brand's slug, and ask them to sign in with their work Google account.

  4. Watch for the sign in. Staff can read who opened a brand:

    GET /api/admin/visitors?slug=<slug>
    
  5. Ask them to check what we read within 15 minutes, or the brief goes on without their corrections.

  6. Ask them to open the feed. The Plays start then, and land one by one.

  7. Help them connect accounts in this order: Shopify, Google Analytics, Meta, then Klaviyo or Judge.me if they use them. Only their admin can connect.

  8. Ask them to invite one teammate from Invite your team.

  9. By the end of the week, walk them through one jam to a shared brief.

  10. Never disconnect, reconnect or reselect any Arata connection (Meta, Shopify or any other), in any step or rollback (Param, 26 Oct). Disconnect tests run on Cozy or Zenant only.

Numbers

Metric Definition Where measured State
Time to first check Minutes from the read finishing to the team confirming what we read status.json confirm stage and waitingSince, see confirm-remind.js Proposed
Time to first feed open Hours from the brief to the first feed open status.feedOpenAt against the brief stage time Proposed
Activated in week one Share of partners with one shared brief within 7 days of the first read jam jamBrief.sharedAt per brand Proposed
Accounts connected Real connectors live per partner at day 7 connections per brand, db/status.mjs Proposed
Team size People on the brand's team at day 7 access_log and members per brand Proposed

Open

  1. Who on our team owns each partner's first week? Proposal: Param owns Arata and Nutrova, Sai and Arvind split the other three, one name per brand written here.
  2. Is the first brief shared within 7 days the activation event? Proposal: yes for v1, and revisit once the five have each shared one.
  3. Do invited teammates see the set up screens on first open? The code does not say clearly. Proposal: test it on Zenant with a fresh invite and record the answer here.
  4. Should every partner get a welcome call in week one? Proposal: one 30 minute call on day 1 or 2, run from the checklist above.
Sources
  • brew/auth.js:78, 102, 108-110, 125, 189-190
  • brew/build.js:94, 226-227, 239, 363, 1012-1019, 1070
  • brew/confirm-remind.js:21, 70-74, 84-87
  • brew/connectors/index.js:53, 482-493
  • brew/connectors/protected.js:1-3
  • brew/closed-gate.js:31-32
  • brew/legal-pages.js:36-40
  • brew/public/app.js:286-290, 405-409, 773, 786, 818, 843
  • brew/server.js:761
  • brew commits 119dc8a, deb7d90, 41b0258
  • memory brew-live-stores, brew-access-rules, brew-prod-backend, brew-feed-open-moves, brew-real-connectors, brew-connect-refresh, brew-meta-app-review, brew-shopify-app-review, never-disconnect-arata-meta
  • brand-directions/book/content/c1.js c-1b, checked against the code

Source file content/customer-success-and-support/partner-onboarding.md · For agents: Markdown · JSON