toga-ai 1.0.324 → 1.0.325
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: session
|
|
3
|
+
slug: bdr-plan-hubspot
|
|
4
|
+
title: BDR web-funnel implementation plan + HubSpot content decision
|
|
5
|
+
author: tcox
|
|
6
|
+
repos: [bdr, ai-bdr]
|
|
7
|
+
framework: "2.0"
|
|
8
|
+
client: shared
|
|
9
|
+
status: active
|
|
10
|
+
created: 2026-07-13
|
|
11
|
+
updated: 2026-07-13
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Session: bdr-plan-hubspot
|
|
15
|
+
**Date:** 2026-07-13
|
|
16
|
+
**Project/Repo:** bdr (new) — knowledge filed under `2.0/apps/ai-bdr/` (2.0)
|
|
17
|
+
**Task:** Produce the implementation plan for BDR — a multi-campaign "AI BDR / Agent Studio" public web funnel (Next.js) that is the new UI/front door of the existing AI-BDR product — and capture the plan + decisions into the team knowledge base.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## What WORKED
|
|
22
|
+
- Authored the full plan at `C:\WWW\BDR\PLAN.md` (local, Draft 2), grounded in a full read of the mockup (`C:\WWW\BDR\mockup\` — `app.jsx`, `screens.jsx`, `components.jsx`, `styles.css`, `CLAUDE.md`) and the `info` repo backend (`C:\WWW\info\src`).
|
|
23
|
+
- Confirmed `info`'s HubSpot usage is a ~15-line server-side fetch proxied by a Next route handler (`info/src/lib/hubspot.ts` = `getContact` via `/crm/v3/objects/contacts/{id}`; `info/src/app/bdr/api/contact/route.ts` = the proxy). This validated the "HubSpot integration is trivial" claim. `info` uses "campaign" for attribution only (`hsCampaignId` → Toga `addContactToCampaign`); it never fetches marketing content from HubSpot.
|
|
24
|
+
- Captured knowledge under `2.0/apps/ai-bdr/`: `features/bdr-web-funnel-plan.md` (full plan mirror, paths genericized), `features/web-funnel-content-model.md` (distilled), and an additive HubSpot-over-Contentful note in `architecture.md`. Registered the `bdr` repo in `registry.json`. `validate: OK (238 docs)` each pass.
|
|
25
|
+
- Kept the two feature docs at `status: draft` (this is Draft 2, still needs one more review). Architecture.md left `status: active` (shared voice-system doc; edit was additive only).
|
|
26
|
+
|
|
27
|
+
## What did NOT work — DO NOT RETRY THESE
|
|
28
|
+
- **CLI git push fails:** `fatal: could not read Username for 'https://github.com'` — the `toga-tech` origin is HTTPS with no credential helper and the shell is non-interactive. `gh` CLI is NOT installed (checked both bash and PowerShell). DO NOT retry CLI push or `gh` — the developer pushes via **GitHub Desktop**.
|
|
29
|
+
- **Filing the doc under a separate `2.0/apps/bdr/` folder:** validate failed with `ERROR: frontmatter repo "bdr" != folder "ai-bdr"`. Resolved by setting the doc's frontmatter `repo: ai-bdr` (BDR knowledge lives under the ai-bdr app per developer directive). DO NOT create a `2.0/apps/bdr/` folder.
|
|
30
|
+
- **Reverted approaches (do not reintroduce):** (1) React/Vite SPA — reverted to **Next.js** because the site is highly public (SSR/SEO) and Next's server hosts the secret-bearing calls. (2) "Hybrid" static-config-in-repo-now/CMS-later — killed. (3) Hardcode-copy-now/HubSpot-later phasing — reverted; content is HubSpot-owned from the start, no in-repo/hardcoded content.
|
|
31
|
+
|
|
32
|
+
## Not tried yet (candidates for next session)
|
|
33
|
+
- Final review of `PLAN.md` (Draft 2); on approval, flip the two feature docs off `draft` and re-capture the final version.
|
|
34
|
+
- Decide §9.10: how campaign content is modeled in HubSpot (**HubDB** likely vs custom object) — gates the content-layer build; confirm with the HubSpot instance owner. Hard part = nested content (Q&A pool + rotation sets, call summaries, accent RichLines).
|
|
35
|
+
- Create the actual `agilantsolutions/BDR` GitHub repo (needs gh install or the GitHub web UI) and version `PLAN.md` there.
|
|
36
|
+
- Resolve remaining §9 open questions: agent choice (fixed preset vs manual Creator), service-picker in scope, tweaks panel in prod, `togatech` integration mechanism, campaign catalog + who authors, first campaign direction/verbiage (pending leadership).
|
|
37
|
+
|
|
38
|
+
## Current file state
|
|
39
|
+
| File | Status | Notes |
|
|
40
|
+
|------|--------|-------|
|
|
41
|
+
| `C:\WWW\BDR\PLAN.md` | Modified (local only, not in git) | Draft 2, complete. Next.js + HubSpot-owned runtime content + same-product framing. |
|
|
42
|
+
| `knowledge/2.0/apps/ai-bdr/features/bdr-web-funnel-plan.md` | Updated, committed `c016f4e` (UNPUSHED) | Full plan mirror; `status: draft`. |
|
|
43
|
+
| `knowledge/2.0/apps/ai-bdr/features/web-funnel-content-model.md` | Updated, committed `c016f4e` (UNPUSHED) | Distilled facts; `status: draft`. |
|
|
44
|
+
| `knowledge/2.0/apps/ai-bdr/architecture.md` | Updated, committed `0b38d14` (UNPUSHED) | Additive HubSpot-over-Contentful note; `status: active`. |
|
|
45
|
+
| `knowledge/registry.json` | `bdr` registered (already pushed) | `{repo:"bdr", project:"BDR", framework:"2.0", role:"app", dependsOn:["api2"]}`. |
|
|
46
|
+
|
|
47
|
+
## Decisions made
|
|
48
|
+
- **Framework = Next.js (App Router) + TypeScript** (over React/Vite SPA). Rationale: highly public site → SSR + SEO, and Next's server components + route handlers host the secret-bearing HubSpot/Toga calls with no separate backend. Matches `info`.
|
|
49
|
+
- **Content store = HubSpot** (over Contentful). Rationale: marketing already operates in HubSpot; the campaign/attribution model already exists there; the API read is trivial (proven in `info`); no new vendor. Trade-off accepted: HubSpot is not a purpose-built content CMS (weaker nested-content + editor UX), acceptable because the content shape is stable / not frequently restructured. Contentful rejected as overkill for stable content + a new SaaS dependency.
|
|
50
|
+
- **Content is HubSpot-owned, fetched by slug at runtime, no hardcoding, no in-repo content**, behind one `CampaignContentProvider` seam + `DEFAULT` fallback. Rejected: hybrid static bundles; hardcode-then-HubSpot phasing.
|
|
51
|
+
- **BDR is the UI/front door of the existing AI-BDR product** (same product, not standalone) — so knowledge is filed under `2.0/apps/ai-bdr/`, and BDR reuses `info`'s backend calls. Resolved the earlier "backend relationship" open question.
|
|
52
|
+
- **Config-driven components** — campaign = serializable data bundle keyed by slug; never `if(campaign===x)` in components; behavior/icons via enum→registry. Follows toga25-supply `useClientFields` + toga2-commerce Cart C1-C7 precedents.
|
|
53
|
+
- **New code repo named `BDR`** (greenfield). The external `info` repo (github.com/agilantsolutions/info) is reference-only, not a TOGA registry repo.
|
|
54
|
+
|
|
55
|
+
## Blockers
|
|
56
|
+
- Knowledge commits `c016f4e` + `0b38d14` are committed locally but **UNPUSHED** — CLI auth fails; awaiting the developer's manual push via GitHub Desktop.
|
|
57
|
+
- §9.10 (HubSpot content mechanism: HubDB vs custom object) undecided — gates building the content layer.
|
|
58
|
+
|
|
59
|
+
## Exact next step
|
|
60
|
+
> In GitHub Desktop, push the `toga-tech` `_main` commits (`c016f4e` + `0b38d14`) to `agilantsolutions/claude`. Then do the final review of `C:\WWW\BDR\PLAN.md` (Draft 2); on approval, ask Claude to flip the two ai-bdr feature docs off `status: draft` and re-capture.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
_Saved by /session-save on 2026-07-13_
|
package/package.json
CHANGED