See llms.txt for all machine-readable content.

Back to Templates

Check weekly customer data consistency between HubSpot, freee, Backlog and Slack

Quick overview

This workflow runs weekly to compare customer and billing data between HubSpot, freee, and Backlog, then posts a single Slack report listing any mismatches (or confirming everything matches).

How it works

  1. Runs every Monday at 9:00 (or manually) and loads comparison settings such as lifecycle stages, link/tag prefixes, and IDs.
  2. Fetches your HubSpot account details and searches HubSpot companies in the specified lifecycle stages.
  3. Fetches freee partners and uses their stored HubSpot link values to batch-read the corresponding HubSpot companies.
  4. Fetches recent freee invoices for the configured lookback window and, if enabled, reads the target Backlog project and recent issues.
  5. Compares HubSpot companies, freee partners, and Backlog issues to find missing links, deleted HubSpot records, differing names/phones, duplicate partner links, and invoices without matching Backlog tags.
  6. Posts one formatted message to the configured Slack channel with links to affected HubSpot records or a “no mismatches found” result.

Setup

  1. Add HubSpot credentials (HubSpot app token / service key) with permission to read companies and account info.
  2. Add freee OAuth2 credentials with read access to partners and invoices, and set your freee company ID.
  3. (Optional) Add Backlog HTTP Query Auth credentials (API key), plus your Backlog space URL and project key, or disable invoice task checking.
  4. Add Slack credentials and set the target Slack channel ID, ensuring the Slack app is invited to the channel.
  5. Align your linking conventions (freee partner shortcut2 like hubspot:<companyId> and Backlog issue text containing freee-invoice-<invoiceId>) and update the Config values to match.

Requirements

  • freee account with an app (partners and invoices read)
  • HubSpot account with a Service key (companies read)
  • Backlog with an API key (optional; only for the invoice check)
  • Slack app with chat:write

Customization

  • Change the stages in lifecycle_stages, or the link prefixes to match how you link records.
  • Set check_invoice_tasks to false to skip Backlog entirely (the Backlog nodes may then stay without a credential).
  • Change invoice_lookback_days, or the schedule (for example daily).
  • Compare more fields (address, e-mail) in the Compare node.

Additional info

Important limits:

  • Up to 100 HubSpot customer companies, 3,000 freee partners, 2,000 freee invoices from the lookback period and 100 Backlog issues are read per run. The freee invoice list is oldest first with a limit of 100 per page, so the workflow narrows it by billing date and reads every page.
  • Names are compared after normalization; a company that really changed its name will be reported until both sides match.

What I tested (n8n 2.36.8, HubSpot free account, a freee test company, a Backlog space during its trial, a Slack test channel; all data made up): all five kinds were reported from real data — two customer companies without partners, a partner pointing to a deleted company, two name differences, a company with two partners, and (with a deliberately wrong invoice tag) six invoices without issues. With check_invoice_tasks off and no Backlog credential, the run finished and the invoice check was skipped. I did not test more than 100 companies or invoices.