Pick up and finish yesterday's cut-off Tier B pass. - build/: PyInstaller scaffold (datatools.spec + launcher.py + hook-streamlit.py + README) — folder-mode bundle, locked 127.0.0.1, per-OS recipe - marketing/COPY.md: single source of truth for every customer-facing string — landing H1/sub/CTAs, demo CTAs, email subjects, Gumroad listing, banned phrases - marketing/community-posts/: 9 drafts (3 posts × 3 niches: bookkeeper, revops, shopify-pet) — story / tip / soft-offer - marketing/emails/: 18 drafts (Gumroad delivery + 5-touch onboarding × 3 niches), per-niche segmentation guidance - docs/NEXT-STEPS.md: flip 2.2 / 2.4 / 3.1 / 3.4 to done with pointers to the new assets; add Phase 0 inventory rows - .gitignore: narrow `build/` ignore so PyInstaller spec + launcher + hooks get tracked, only generated artifacts (build/build/, build/__pycache__/, build/dist/) stay ignored Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.8 KiB
RevOps · Day 7 — Run it before every HubSpot import
Subject: Run it before every HubSpot import Send: Day 7 Goal: reframe from one-off tool to per-campaign workflow
Hi {{first_name}},
A week in. By now you've probably run DataTools on a real list once or twice and confirmed the dedupe catches more than HubSpot's native check.
The thing that turns DataTools into a per-month-cost saver instead of a one-off purchase: make it the gate on every import.
The pattern that works:
1. One DataTools run per campaign source. Webform pull → DataTools. LinkedIn scrape → DataTools. Apollo export → DataTools. Each run produces a "clean" CSV.
2. Concatenate the cleaned CSVs. Standard pandas concat or just paste in Excel.
3. One more DataTools run on the concatenation. This is the cross-source dedupe pass — the one that catches the same person across the three sources.
4. Compare against your current HubSpot export. DataTools' dedupe against your existing CRM as the second source catches the people you already paid for last quarter and don't need to import again.
5. Import only the residue — the rows that survived all four passes — into HubSpot.
The buyers running this pipeline tell me they've cut their HubSpot marketing-contact bill 15-25% within two months. Not because their pipeline got smaller — because they stopped paying for duplicates.
One thing to set up once: save your dedupe settings as a .datatools-preset.json and commit it to your RevOps team's repo (or a shared Drive folder). Same preset every campaign means consistent results across whoever's running it that week.
If you want, reply with a sanitized lead list and I'll suggest a starting preset for your sources — happy to do this for the first 50 buyers.
— Michael {{support_email}}