Integrations · HubSpot

Customer feedback, weighted by HubSpot ARR.

Connect HubSpot and Crumb pulls your companies and their revenue into its accounts, so every request in the inbox shows the dollars behind it. The sync is one-way and read-only: Crumb never writes to HubSpot.

How it works

  1. Connect HubSpot. An admin approves Crumb on HubSpot's OAuth screen from Settings → Integrations. Crumb asks only to read companies.
  2. Companies become accounts. The first sync runs right away. Each named HubSpot company links to the Crumb account with the same name, or becomes a new account, so you don't end up with duplicates.
  3. ARR comes with them. Crumb reads each company's annualrevenue property and stores it as the account's ARR. Companies without a value come in at $0. If you've set an account's ARR by hand in Crumb, the sync leaves that number alone.
  4. Feedback carries the revenue. When the account name your app passes to the widget matches, every request from that customer shows its account's ARR, and the inbox and initiatives add it up.
  5. Keep it fresh. Admins and PMs can press Sync now at any time, and the CRM sync job refreshes every connected workspace whenever it runs. On self-host, you schedule that job with a cron.

What syncs

WhatDirectionWhen
Company nameHubSpot → CrumbEvery sync; renames follow HubSpot
ARR (annualrevenue by default)HubSpot → CrumbEvery sync, unless set by hand in Crumb
HubSpot company IDHubSpot → CrumbStored to keep the link on later syncs
Contacts, deals, notesNot syncedCrumb reads companies only
Feedback, accounts, ARRNot synced backNothing is written to HubSpot

Each sync reads up to 2,000 companies. Companies without a name are skipped, and ARR is capped at $21M per account.

Which property holds ARR?

By default Crumb reads annualrevenue, HubSpot's standard Annual revenue company property. If your team keeps ARR in a custom company property, the property name is a deployment setting, HUBSPOT_ARR_PROPERTY, so a self-hosted instance can point at it. You can also set ARR by hand on any account, and manual values are never overwritten. Prefer Salesforce? The Salesforce integration syncs accounts the same way.

Setup

Crumb Cloud: connect HubSpot in one click from Settings → Integrations, on the Team plan and up. The first sync runs on connect, and the integrations page shows how many accounts synced and when.

Self-hosted: create a HubSpot app with the crm.objects.companies.read scope and a redirect URL of /api/integrations/hubspot/callback on your Crumb domain, then set HUBSPOT_CLIENT_ID and HUBSPOT_CLIENT_SECRET. To refresh on a schedule, call POST /api/v1/internal/crm-sync from a cron with your X-Crumb-Sweep-Secret header; the README suggests every six hours.

Frequently asked questions

Does Crumb write anything back to HubSpot?

No. The sync is one-way and read-only. Crumb asks only for read access to companies, and nothing about your feedback, accounts, or ARR is written to HubSpot.

What happens to ARR I've entered by hand?

It stays. Setting an account's ARR in Crumb marks it as manual, and later syncs refresh the name and link but leave that number alone.

How is feedback matched to HubSpot companies?

By account name. The sync links each company to the Crumb account with the same name, and widget feedback lands on the account whose name your app passes in. On Cloud, forwarded emails also get an AI-suggested account for you to confirm.

Can I connect HubSpot and Salesforce at the same time?

You can, but each sync only links to accounts that aren't already tied to a CRM, so a company that exists in both ends up as two accounts. Pick one CRM as your source of ARR.

How often does Crumb sync with HubSpot?

When you connect, whenever an admin or PM presses Sync now, and whenever the CRM sync job runs. On self-host, you schedule that job with a cron. If HubSpot revokes access, the integration shows as disconnected until an admin reconnects.

Triage by the revenue in HubSpot.

Free and open source to self-host. One click to start on Crumb Cloud.