5-step wizard. Paste the NTK, Claude pre-fills voice + rules, you review, commit. The client appears in the main app's dropdown right after save.
1. Auth
2. Paste & extract
3. Basics
4. Integrations
5. Review & commit
Step 1 — Sign in
You're signed in via ECD Hub (magic link). Click Continue.
Step 2 — Paste the NTK AI assists
Paste the client NTK or brand-audit text. Claude will extract voice, top products, standing rules, brand pillars, personas, etc. You can edit everything in step 3-4.
Accepts .md, .txt, .pdf, .docx, .csv — content is appended to the textarea below.
Optional: Shopify analytics CSVs
Upload Shopify analytics exports so the brief writer can ground briefs in real performance data instead of guessing. Without these, the agent will rely on the NTK + your standing rules only — workable, but less sharp.
Most useful reports to export (Shopify Admin → Analytics → Reports → click the report → "Export"):
Sales by product — biggest single signal. Top SKUs by revenue + units. Time range: last 12 months ideal, last 6 minimum.
Sales by collection / category — tells the agent which collections deserve more campaign slots.
Sales over time — monthly revenue trend, seasonality, weak/strong months.
Returning customer rate — % first-time vs repeat. Drives the importance of replenishment flows + retention briefs.
Sales by traffic source — confirms email's revenue share and what channels co-exist.
Sales by hour / day of week — informs default send time + best-revenue day.
Top customers (or RFM-style export) — VIP-segment sizing, ties into "champions" / "loyal" briefs.
Upload as many or as few as you have. Claude reads them all and folds the insights into the client profile's performanceSnapshot block.
Accepts .csv, .tsv, .xlsx, .xls
Step 3 — Basics
Pre-filled from the extraction. Confirm or adjust.
Step 4 — Integrations
Wire the Google Sheet, Klaviyo, and optional Drive folder. Validation runs against the real APIs.
Before validating: share the Sheet (and Drive folder, if you have one) with the service account.
The brief writer reads + writes the client's Sheet using a service account. You have to share access to it BEFORE pasting the URL below, otherwise validation will fail with "permission denied."
Service account email to add as Editor:
loading...
How to share:
Open the Google Sheet for this client
Click the Share button (top right)
Paste the service account email above into the "Add people" field
Set permission to Editor (not Viewer)
Uncheck "Notify people" (the service account has no inbox to notify)
Click Share
If you're also providing a Drive folder URL below, repeat the same sharing step for that folder.
How to generate the Klaviyo private API key
The brief writer creates draft campaigns + reads segments using a PRIVATE API key. Only an admin in the client's Klaviyo account can generate one. Public/site keys (the ones that go in JavaScript snippets) won't work.
Steps in Klaviyo:
Log into Klaviyo as an admin on the client's account.
Click your account name (bottom-left) → Settings.
Open the API keys tab (sometimes nested under "Account").
Click Create Private API Key.
Name it something like ECD Brief Writer — [Client Code] so it's easy to identify later.
Scopes: select Full Access. We need broad access for current and upcoming features (flows, profile reads, segment management, metrics analytics, etc.). Klaviyo lets you revoke or rotate the key any time if anything changes.
Click Create.
Copy the key that starts with pk_ — Klaviyo only shows it ONCE. If you lose it, you'll have to generate a new one.
Paste it into the field below and click "Validate Klaviyo key" to confirm it works.
The key stays encrypted at rest in Render env vars; it's never written to the GitHub repo or shown to other LMMs. If you ever want to revoke it, do so from Klaviyo → Settings → API keys.
Step 5 — Voice, rules, segments, then commit
Editable. Pre-filled from extraction. When ready, hit Commit to push the JSON to GitHub.