HubSpot partner load — source sweep & handoff (2026-04-07)

Purpose: One place for what we pulled from Gmail, Google Drive, and public Slack to finish loading partner context into HubSpot, plus a repeatable runbook for Uttam (or anyone) using the same agent + CLI pattern.
HubSpot companies: All 14 partners under knowledge/sales/partners/*/PARTNER_CONTROL_CENTER.md already have a Company record (create/--if-not-exists run 2026-04-06). Next step is Contacts + timeline notes, not duplicate companies.


1. What’s already in HubSpot

Partner (Control Center name)HubSpot company ID (for linking)
Snowflake25074717772
Talisma32490367821
Superposition32765866016
Polytomic25093310219
OpenBB316936626878
OneSource317038076612
Omni31070515754
MotherDuck26782292829
Mixpanel34891757692
Glimpse36655028744
GSV317056151271
Freshpaint136661210814
CorralData28559087426
Amplitude34906218519

MoEngage is active in email + Slack but does not yet have a dedicated folder in knowledge/sales/partners/ — decide whether to add a Control Center + company or keep as pipeline-only.


2. Gmail (robert.tseng@brainforge.ai) — partner-facing emails to mirror in HubSpot

Use these as Contact creates (work emails only), associated to the Company above. Prefer npm run partner-hubspot -- create contact … --company-name "…" --if-not-exists so you don’t duplicate.

Snowflake (company-name Snowflake)

EmailRole (from headers / thread)
j.khan@snowflake.comSnowflake — thread “Insomnia onsite”
john.ranaudo@snowflake.comSnowflake — Cc same thread
chase.growney@snowflake.comSnowflake — calendar / onsite
josh.brown@snowflake.comSnowflake — calendar Cc
jarred.clifford@snowflake.comSnowflake — Summit Cc (relationship)

Skip automated senders (summitcontent@, PartnerProgram@) unless you want them as generic contacts.

MoEngage (company record TBD — create company MoEngage first if missing)

EmailNotes
karthik.baile@moengage.comPrimary thread: “Brainforge x MoEngage Follow Up”
archana.leo@moengage.comGlobal Partner Marketing
jomy.joy@moengage.com
raghav.shukla@moengage.com
sanjay@moengage.com
nick.ippel@moengage.com

Amplitude (company-name Amplitude)

EmailNotes
emily.knippa@amplitude.comWebinar / partner planning
brandon.wong@amplitude.comCc on webinar thread

Mixpanel / Amplitude marketing

Newsletters (no-reply@mixpanel.com, insights@amplitude.com) — do not create as people; optional company note only if you care.

Gmail search queries to reuse:
from:snowflake.com OR to:snowflake.com newer_than:365d · from:moengage.com newer_than:365d · from:amplitude.com newer_than:180d


3. Google Drive — artifacts (context, not auto-imported to CRM)

High-signal items for partner ops (not exhaustive):

AssetLink / purpose
GTM Review sheetBrainforge: Weekly / Monthly / Quarterly GTM Review — pipeline / partner proxy columns
Eden External Partner Performance TrackerPartner performance tracking
Robert — Snowflake Summit 26 session scratch padSession / Snowflake marketing alignment
Q2’26 Brainforge x GTM Lead OpportunityDoc — may name partner motions

Use Drive to enrich Control Centers and one HubSpot company note per partner when something material changes (“see GTM Review week of …”).


4. Slack (public search) — #sales-partnerships & Snowflake motion

#snowflake-partners returned no hits for the logged-in user (may be private, renamed, or not indexed) — rely on #sales-partnerships and DMs for Snowflake.

Themes useful for HubSpot company notes (summarize, don’t paste threads):

  • Snowflake: Weekly checklist posts, quarterly PM session, champion AE intros, “inbox from Snowflake” nudges, Cortex memo / partner network docs.
  • MoEngage: Thread for partner movement; Archana Leo / ShopTalk / white paper; deck to Nick.
  • Omni / other: Early NA service partner push; partner OS / Loom walkthrough.

Internal owners: Uttam (partnerships), Robert (orchestration), Luke / Holly / Hannah as referenced in threads.


5. Uttam: run the same “agent + HubSpot” setup

Prerequisites (one-time)

  1. Repo: brainforge-platform — pull latest; tools/hubspot-api-service has npm run partner-hubspot.
  2. HubSpot: Private app token with companies + contacts + notes + tasks + associations write (see tools/hubspot-api-service/README.md). Use 1Password team item or your own PAT: export HUBSPOT_ACCESS_TOKEN=…
  3. Cursor skill: .cursor/skills/partner-hubspot-ops/SKILL.md — tells the agent to read Control Center → resolve company → create/update contacts → CLI.
  4. Google MCP (optional but recommended): Authorize Gmail + Drive for uttam@brainforge.ai (same OAuth flow Robert used). Then searches use user_google_email=uttam@….

Repeatable sequence

  1. Pick partner folder: knowledge/sales/partners/<Name>/PARTNER_CONTROL_CENTER.md.
  2. Company: npm run partner-hubspot -- create company --name "<PARTNER NAME>" --if-not-exists
  3. Contacts: For each work email from Gmail or Control Center:
    npm run partner-hubspot -- create contact --email … --firstname … --lastname … --jobtitle … --company-name "<PARTNER NAME>" --if-not-exists
  4. If contact exists without company:
    npm run partner-hubspot -- associate contact-company --email … --company-name "…"
  5. Timeline: Log reality with notes/tasks:
    note company / note contact / task company / task contact (see README).
  6. Control Center §8: Paste HubSpot company URL (from HubSpot UI or https://app.hubspot.com/contacts/<portal>/record/0-2/<companyId>).

Prompt you can paste to Uttam’s Cursor chat

Use the partner-hubspot-ops skill. Load knowledge/sales/partners/ops/hubspot-partner-data-load-handoff.md.
For each partner in knowledge/sales/partners with PARTNER_CONTROL_CENTER.md: ensure HubSpot company exists (--if-not-exists),
then create partner contacts from Uttam’s Gmail (user_google_email uttam@brainforge.ai) for messages from/to that partner’s domain,
associating to the correct company. Add a short company note summarizing last 90d engagement. Do not create contacts for noreply addresses.

Supabase audit (optional)

If BF_SUPABASE_URL + BF_SUPABASE_SERVICE_KEY are set and migration 011_partner_agent_crm_log is applied, CLI writes also log to partner_agent_crm_log.


DocUse
partnership-ops-system.mdRepo vs HubSpot roles
partnership-manager-playbook-slack.mdSlack cadence + HubSpot pointer
SKILL.mdAgent instructions
README.mdCLI reference

Next review: After Uttam’s first pass, tighten MoEngage (company + Control Center?) and backfill Mixpanel / Polytomic emails from his inbox if Robert’s mail missed them.


8. Loaded in HubSpot (2026-04-07)

CLI: create contact --if-not-exists + associate contact-company for every row in §2, then company notes on Snowflake, MoEngage, and Amplitude documenting the sync.

Partner companyContactsNotes
SnowflakeJaveria Khan, John Ranaudo, Chase Growney, Josh Brown, Jarred CliffordExisting + new; all associated to company 25074717772
MoEngageKarthik Baile, Archana Leo, Jomy Joy, Raghav Shukla, Sanjay Kupae, Nick IppelAssociated to company 264034935518
AmplitudeEmily Knippa, Brandon WongCreated + associated to company 34906218519

Ongoing: Use partner-hubspot note contact / task contact with --email after outbound mail; or connect Gmail → HubSpot BCC so sends attach to these contacts automatically.