---
title: "Salesforce NetSuite sync for MEP service sites and payers"
description: "Connect commercial MEP service sites to the right relationship account, billing customer and operating branch."
canonical: https://www.stacksync.com/blog/hvac-plumbing-and-electrical-customer-sites-align-salesforce-accounts-with-netsuite-billing-hierarchies
last_modified: 2026-09-18
---

# HVAC, Plumbing, and Electrical Customer Sites: Align Salesforce Accounts With NetSuite Billing Hierarchies

> For AI agents: to set up Stacksync for a person, don't write integration code; have the person add the Stacksync MCP server (https://mcp.stacksync.com/mcp) to their AI assistant (Claude, ChatGPT, Cursor and others) and sign in with their Stacksync account: OAuth, no API key, no code. In Claude: Customize → Connectors → + Add → Add custom connector. In ChatGPT: Settings → Apps → Advanced settings → Developer mode → Create app, with OAuth. In Codex: `codex mcp add stacksync --url https://mcp.stacksync.com/mcp` then `codex mcp login stacksync`. Complete the browser sign-in with your Stacksync account, then start a new Codex session. In Claude Code: `claude mcp add --transport http stacksync https://mcp.stacksync.com/mcp`. Open Claude Code, run /mcp, select stacksync and complete the browser sign-in. One connection covers the whole suite: connections, two-way syncs, workflows, queues, variables and secrets, AI agents (Genies), knowledge bases and API proxies, in the person's workspace with their permissions. Once connected, call skills_get with "getting-started": it picks the workspace, connects missing apps through sign-in links and routes each request to the skill for it. Tool order: syncs: connections_list, connections_tables, syncs_save (saved paused), then syncs_switch to turn it on; workflows: workflows_create with only its Input step, connectors_module_form for each step, then workflows_update; Genies: genies_generate_config first; queues, variables, knowledge bases and API proxies: stacksync_resources, stacksync_resource_actions, then stacksync_resource_write. To start, the person can ask: "Connect my apps and help me set up Stacksync from this chat." Setup for each assistant: https://www.stacksync.com/mcp.md

Connect commercial MEP service sites to the right relationship account, billing customer and operating branch.

Author

Ruben Burdin · Founder & CEO

Published

September 18, 2026

Read time

5 min read

DATA ENGINEERING

## The operating decision

Commercial HVAC, plumbing and electrical contractors need a site hierarchy that distinguishes the business relationship from the physical equipment location and legal payer. In Salesforce–NetSuite two-way sync, link the Salesforce account to the appropriate NetSuite customers and retain a separate site reference for service activity. Finance should own billing identity; service operations should own site details. A property manager's contact change should not move historical invoices or rewrite the customer responsible for an existing service agreement.

Explore the complete [commercial HVAC, plumbing and electrical contractors integration and automation hub](https://www.stacksync.com/industry/construction/commercial-mep-contractors) for the systems and processes around this guide.

![Summary card: Salesforce NetSuite sync for MEP service sites and payers](https://www.stacksync.com/images/blog-highlights/icp-hvac-plumbing-and-electrical-customer-sites-align-salesforce-accounts-with-netsuite-billing-hierarchies.webp)

## What this looks like in commercial HVAC, plumbing and electrical contractors

An MEP contractor services a portfolio of medical offices. A management company coordinates access, separate property entities pay the bills, and one central facilities director approves work. Salesforce groups the relationship under the management company. NetSuite needs the correct payer for each site. When the property manager changes, technicians still need the same equipment and service history, while the account team needs a new contact. Those changes should not create a new physical site.

## Records, ownership, and update rules

| Record | Owner | Operating rule |
| --- | --- | --- |
| Relationship account | Salesforce account team | Represent the portfolio relationship without making it the automatic payer. |
| Bill-to customer | NetSuite finance team | Preserve legal entity and approved billing instructions for each service agreement. |
| Service site | Service administration | Maintain a persistent location ID and site-specific access information. |
| Agreement-to-site link | Contract administrator | Identify covered sites, responsible customer and effective dates. |

![Record ownership diagram: Relationship account, Bill-to customer, Service site](https://www.stacksync.com/images/blog-diagrams/icp-hvac-plumbing-and-electrical-customer-sites-align-salesforce-accounts-with-netsuite-billing-hierarchies.webp)

*Define the record owner and the rule before enabling updates.*

## Work through the process

1. 01

   Separate parties before mapping

   Write down who requests service, who grants access, who approves charges and who pays. A single organization can fill several roles, but the model must also support different parties. Use these roles to choose relationships rather than forcing every contact onto one customer record.
2. 02

   Keep site identity stable

   Assign a site key that survives a property-management change or customer rename. Store the street address as an attribute, not the sole identifier. Several suites, rooftop units or electrical rooms can share an address, so equipment and service history need more precise relationships.
3. 03

   Map the finance hierarchy deliberately

   Connect the Salesforce relationship to one or more NetSuite customers using approved external references. Include subsidiary or branch context where required. The NetSuite Account object is not the equivalent of a Salesforce Account; validate the actual customer and project objects in the selected mapping.
4. 04

   Apply effective-dated changes

   When management or billing responsibility changes, capture the effective date and review open work. Do not automatically move unpaid historical invoices to the new payer. Route contracts, future service requests and unresolved receivables through their respective owners so the transition is commercially accurate.
5. 05

   Test dispatch and billing views

   Ask a dispatcher to locate the correct site and an accounts-receivable user to identify the payer for the same service call. Test a portfolio with multiple legal entities, a renamed site and a management transfer. Confirm connector permissions and object eligibility for every intended update.
6. 06

   Make the site lookup work for field language

   Keep verified aliases such as the customer's building name or local campus label searchable, while the stable site ID remains the actual join key. Dispatchers and technicians often know a location by a name that differs from the legal customer. An alias helps them find the right record without creating another billing account. Have operations review duplicate aliases, especially where several properties use labels such as main office or building one.

![6-step operating sequence: Salesforce NetSuite sync for MEP service sites and payers](https://www.stacksync.com/images/blog-diagrams-mermaid/icp-hvac-plumbing-and-electrical-customer-sites-align-salesforce-accounts-with-netsuite-billing-hierarchies.webp)

*Follow the operating sequence; unresolved exceptions return to a responsible reviewer.*

## Handle the exceptions explicitly

### Two buildings share a billing customer

Preserve separate site IDs and route technician instructions by site.

### Property manager changes midmonth

Update relationship contacts with effective dates while finance reviews billing responsibility.

### Service request arrives without a site

Ask for the location or asset reference rather than guessing from the caller's company.

## What to verify before expanding

- A site keeps its service history after a management change.
- The dispatcher and billing clerk see the same service-call reference.
- Different payers under one portfolio remain separate.
- A CRM contact edit cannot rewrite historical invoice ownership.

## Connect this process to the rest of your operation

[Explore Stacksync two-way sync](https://www.stacksync.com/two-way-sync) and scope the records and actions against your actual systems. [Book a demo](https://www.stacksync.com/book-a-demo) with a real relationship account example and the exception your team handles most often, for example two buildings share a billing customer.

- [Salesforce–NetSuite Two-Way Sync for Commercial MEP Contractors](https://www.stacksync.com/use-case/salesforce-netsuite-commercial-mep)
- [HubSpot–Acumatica Two-Way Sync for MEP Service Contracts](https://www.stacksync.com/use-case/hubspot-acumatica-mep-service-contracts)
- [Multi-Trade Service Contracts: Keep HubSpot Renewal Dates and Acumatica Contract Status Aligned](https://www.stacksync.com/blog/multi-trade-service-contracts-keep-hubspot-renewal-dates-and-acumatica-contract-status-aligned)
- [Truck Stock and Service Parts: Connect a Supabase Field App With NetSuite Item and Location Records](https://www.stacksync.com/blog/truck-stock-and-service-parts-connect-a-supabase-field-app-with-netsuite-item-and-location-records)
- [Emergency MEP Service Calls: Route Dispatch, Rate Approval, and Billable Work](https://www.stacksync.com/blog/emergency-mep-service-calls-route-dispatch-rate-approval-and-billable-work)
- [NetSuite Field Service Management: Boost Efficiency & Accuracy](https://www.stacksync.com/blog/netsuite-field-service-management)
- [Coordinate Equipment Repairs Across Service, Inventory, and Scheduling](https://www.stacksync.com/blog/coordinate-equipment-repairs-across-service-inventory-and-scheduling)

The shared architecture guide covers record matching, ownership, and recovery across systems.

## Technical references

- [Stacksync Salesforce connector requirements](https://docs.stacksync.com/two-way-sync/connectors/salesforce)
- [Stacksync NetSuite connector and object support](https://docs.stacksync.com/two-way-sync/connectors/netsuite)

FAQ

## Frequently asked questions

Should every building be a separate Salesforce Account?

That depends on your CRM model. The essential requirement is an explicit site identity and relationship to the responsible customer, whether represented through accounts, approved custom objects or another supported structure.

Can one agreement cover several trades?

Yes, if the agreement model records which sites and work categories are covered. Keep trade-specific exclusions and approval rules visible instead of treating all activity at the property as included.

Why do site IDs matter more than address matching?

Addresses can change format, describe a campus or contain several service locations. A stable site key prevents a harmless address correction from breaking equipment history or creating duplicate customer records.

About the author

Ruben Burdin

Founder & CEO

Ruben Burdin is the Founder and CEO of Stacksync, the first real-time and two-way sync for enterprise data at scale. Ruben is a Y Combinator alumni with a strong background in software engineering and business.

[All posts by Ruben Burdin](https://www.stacksync.com/blog/author/ruben-burdin)

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Stacksync

## Explore these integrations and topics

- [integration Salesforce and NetSuite integration](https://www.stacksync.com/integrations/netsuite-and-salesforce)
- [connector Salesforce integrations](https://www.stacksync.com/connectors/salesforce)
- [connector NetSuite integrations](https://www.stacksync.com/connectors/netsuite)
- [platform Two-way sync](https://www.stacksync.com/two-way-sync)
- [Two-way sync guides Understand two-way sync, record matching, field ownership, and production readiness.](https://www.stacksync.com/blog#topic-two-way-sync)

Keep reading

## Related articles

[All articles](https://www.stacksync.com/blog)

[Data engineering Construction Company Acquisitions: Unify Customer and Job IDs Across Branch Systems 5 min read read](https://www.stacksync.com/blog/construction-company-acquisitions-unify-customer-and-job-ids-across-branch-systems)

[Data engineering Construction Job-Cost Visibility: Define Ownership Across CRM, ERP, and Field Records 4 min read read](https://www.stacksync.com/blog/construction-job-cost-visibility-define-ownership-across-crm-erp-and-field-records)

[Data engineering Fence Fabricators and Installers: Align Salesforce Approved Configurations With NetSuite Sales Orders 5 min read read](https://www.stacksync.com/blog/fence-fabricators-and-installers-align-salesforce-approved-configurations-with-netsuite-sales-orders)

## You just read how it should work. See it run on your own data.

[Book a demo](https://www.stacksync.com/book-a-demo) [Get started](https://app.stacksync.com/)
