Connect BetterContact and HubSpot in Deepline, pass name + company rows, and Claude runs BetterContact enrichment + HubSpot upsert. BetterContact itself is a waterfall under the hood — pairs with Deepline's outer waterfall nicely.
BetterContact to HubSpot is a supported Deepline workflow path for Claude Code. Use it when an agent needs to run BetterContact, inspect the returned fields, and write the reviewed result into HubSpot with run history, retries, and explicit failure states.
Best query match
“How do I connect BetterContact to HubSpot with Claude Code?”
Source primitive
BetterContact returns structured fields that Deepline records with provider attribution and row-level status.
Destination primitive
HubSpot receives only reviewed rows after the pilot command succeeds.
This workflow moves data from BetterContact into HubSpot with Claude Code as the orchestration layer. It is strongest when you need a repeatable, inspectable handoff with explicit auth, cost math, and recovery steps.
First callable command
curl -s "https://code.deepline.com/api/v2/cli/install" | bash
deepline auth registerOne command installs the Deepline CLI and registers a workspace. Takes about 30 seconds. You only do this once per machine.
curl -s "https://code.deepline.com/api/v2/cli/install" | bash
deepline auth registerIn the Deepline dashboard, click Integrations → BetterContact → paste your API key from bettercontact.rocks. BetterContact itself runs a 20+ provider waterfall under the hood — Deepline wraps it as one node inside your own larger waterfall.
In the Deepline dashboard, click Integrations → HubSpot → Authorize. HubSpot's OAuth flow opens in a new tab — pick the account and confirm scopes (contacts read/write, notes write). Deepline handles the token refresh forever.
Open Claude Code and describe the workflow in plain English. Deepline handles the tool calls, waterfall routing, rate limits, auth refresh, and dedup. An example prompt for this pair:
> For 500 name + company rows, run BetterContact enrichment. Upsert verified results into HubSpot Contacts matching on email. Set bettercontact_confidence as a custom property.Once Claude's one-off run looks right, type "Deploy this as a workflow" and tell it the schedule. Deepline wraps the exact prompt + tool chain as a recurring workflow with run history, billing, and alerting in the dashboard.
> Deploy this as a workflow that runs every weekday morning at 8am.For 1,000 leads: $3.00
~0.3 credits per verified email. BetterContact's per-row cost is higher than single-providers because it already runs multiple under the hood. Deepline's credit pricing is pay-as-you-go — see code.deepline.com/docs/pricing for current rates.
Deepline tries the cheapest provider first and only falls back if it misses. For BetterContact workflows, this means email enrichment stops at the first valid hit — you don't pay for the second and third provider unless you need to.
Once the one-off run looks right, "Deploy this as a workflow" wraps the same prompt + tool chain as a cron-scheduled workflow. Run history, per-run billing, and retry logic all live in the dashboard. No DevOps.
BetterContact keys, HubSpot OAuth, waterfall fallbacks (Hunter, Dropcontact, Findymail, Prospeo) — all live in the Deepline dashboard. Rotate once; every workflow picks up the new credential automatically.
“Waterfall enrichment consistently delivers 80%+ match rates versus 35-50% from any single provider.”
“ZoomInfo pulled about 75% on its own, Apollo about 65%. A 4-provider waterfall landed at 88%.”
Citations sourced from community posts, vendor case studies, and engineering blogs.
Cause: BetterContact credentials are either expired, revoked at the provider side, or the account tier doesn't expose API access.
Fix: Click the integration row in the dashboard → Test Connection. If it fails, re-paste the API key (or re-run OAuth for OAuth-based providers). Confirm the provider account tier includes API access — most providers gate this to paid tiers.
Cause: The filter returned 0 matches, OR rows failed a downstream gate (email not verified, already in destination, deliverability check failed).
Fix: Open the run in the Deepline dashboard → expand the step-by-step trace. Every row's path is logged: matched/unmatched at each stage. Most frequent culprit is the email-verification gate. Loosen the filter or remove the gate in the prompt if that's the cause.
Cause: Either hit a provider rate-limit, ran out of Deepline credits, or the destination API returned 500s Deepline classified as permanent.
Fix: Dashboard → Workflows → Recent Runs. Failed runs show the exact error and a "Replay" button. Credits are visible top-right. Rate-limit issues auto-resume once the window resets; permanent errors need intervention.
No. You need Claude Code (the CLI/IDE). Deepline provides the tool-execution layer and credit system. Your Claude Code subscription or Anthropic API key handles the LLM calls — Deepline handles the GTM actions underneath.
Built-in. For HubSpot as a destination, Deepline uses the provider-native idempotency key (email for HubSpot/Attio, External_Id for Salesforce, campaign-level dedup for Instantly/Smartlead/Lemlist). Reruns update existing records instead of creating duplicates.
Yes. Paste them in the Deepline dashboard under Integrations. Deepline uses your keys for the actual provider calls — you keep your provider contracts, billing, and rate limit allocation. Deepline's credit billing only covers the orchestration + waterfall layer.
Deepline runs exactly what you describe. The 1000 in cost-math is the reference cost per 1K rows — a 3-row run costs 3/1000 of that total. You never pay for rows that don't exist.
Yes. Mention it in the prompt — e.g. "If BetterContact doesn't return an email, fall back to Hunter → Dropcontact → Findymail." Deepline assembles the waterfall automatically and charges you only for the provider that successfully finds each row.
Connect BetterContact and Instantly in Deepline, pass the prospect list, and Claude runs the enrichment + Instantly import.
Connect Findymail and HubSpot in Deepline, pass a list of prospects, and Claude runs Findymail lookup + HubSpot upsert.
Connect Apollo and HubSpot in Deepline, tell Claude exactly who to find and how to tag them in HubSpot, and the workflow runs. Deepline batches 100 Contacts per HubSpot call and handles the 150 req/10s rate limit.
Run it on Deepline or fork the full skill pack on GitHub. Either way, the code is yours to read and change.