Skip to main content

What breaks when Salesforce billing address fields don't sync to AR?

Loopfour's Salesforce integration polls Account records, so an address update sits unsynced for the poll interval — an invoice can go to a stale address if generated inside that window. The other break: Salesforce's Billing* fields are named differently from HubSpot's flat address fields, so a mapping copied between the two CRMs maps to nothing.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Last reviewed Editorial policy

Part of the finance integrations guide.

SymptomAn invoice or statement is addressed to a customer's old billing address
Root cause #1Poll-only sync — no Salesforce webhook exists in this integration, so updates lag by up to one poll interval
Root cause #2Field-name mismatch — Salesforce uses BillingStreet/BillingCity/etc.; HubSpot uses flat address/city/etc. A mapping copied between the two maps to nothing
Where to checkThe Account record's BillingAddress fields directly in Salesforce vs. what the workflow last read

The staleness window is structural, not a bug

Loopfour's Salesforce integration has no webhook or change-event handler — there's no directory of event/normalize/match code the way there is for HubSpot in this same matrix. Every read of an Account's billing address happens on a poll, which means a change made in Salesforce is invisible to the workflow until the next scheduled poll runs. If an invoice or a dunning notice generates inside that window, it uses whatever address was current at the last poll, not the one just entered.

The second failure mode: copying a HubSpot mapping onto Salesforce

HubSpot's Company object exposes billing-address-equivalent data as flat, non-prefixed fields (address, city, state, zip, country). Salesforce's Account object uses Billing*-prefixed names (BillingStreet, BillingCity, BillingState, BillingPostalCode, BillingCountry) for the same concept. A field mapping built for one CRM and reused for the other, without renaming each field, maps to nothing — the workflow reads empty values rather than erroring, because the source field simply doesn't exist under that name on the other object.

How to catch either one

For staleness: compare the address on a just-generated invoice against the Account record directly in Salesforce, not against what the workflow's last poll cached. For a mapping mismatch: an address field reading consistently empty across every Account, not just one, points at a wrong field name rather than missing data — a genuinely empty billing address on one customer is normal, but every customer showing empty is a mapping bug.

Next step

Map the finance workflow with the most exposure and prove the automation path.

Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.

Book a workflow review

Worked example

An invoice mailed to a customer's old address three days after they moved

A customer's AP team updates their company's BillingStreet and BillingCity in Salesforce on Monday morning after relocating offices. The workflow's Account poll runs once every 24 hours, overnight. An invoice for that customer generates Monday afternoon — before that night's poll — and goes out addressed to the old office. The billing team only finds out when the customer calls asking why their invoice references an address they left three days earlier. Nothing in the sync failed; the poll interval was simply wider than the gap between the address change and the invoice run. The fix isn't a bug fix — it's either shortening the poll interval for Account data specifically, or triggering an ad hoc Account refresh immediately before generating an invoice rather than trusting the last scheduled poll.

Frequently Asked Questions

Yes, within whatever rate limits the Salesforce integration and org's API call allocation allow — a shorter interval reduces the window but doesn't eliminate it, since polling is inherently a snapshot, not a live feed.

It would, but this integration doesn't currently have one for Salesforce (unlike HubSpot in this same matrix) — that's a product gap, not a configuration option available today.

Check the pattern across multiple Accounts. One customer with a blank billing address is plausible (a new record, incomplete onboarding); every customer showing blank on the same field is a mapping problem, not missing data.

Sources

Related