
Most Salesforce integration mistakes don’t show up on launch day. They show up three weeks later, when a rep quotes 1,800 square feet of a porcelain that’s split across two shade lots, or a dealer’s negotiated price gets overwritten by a list price nobody meant to push. Tile data is stubborn. Boxes, pallets, lots, and caliber don’t fit neatly into a default Salesforce product record.
Below are the seven mistakes that come up most in tile projects, and what a properly scoped ERP and CRM integration solution does differently.
Why Tile Is Harder to Integrate Than Most Industries
Salesforce is built around accounts, opportunities, and products with a price. Simple enough.
A tile distributor, though, quotes by the square foot, ships by the box or pallet, reserves stock by shade lot, and invoices out of an ERP like SAP or NetSuite. Each of those handoffs is a translation. And every translation is a spot where numbers drift.
Generic integration advice covers the basics well: clean your data, map your fields, test before launch. Good advice. It just stops short of the product reality that makes tile different, which is exactly where most of these projects go wrong.
7 Salesforce Integration Mistakes Tile Brands Keep Making
Some of these are technical. Most are planning gaps that only turn into technical problems once real orders start flowing.
1. Treating Tile SKUs Like Generic Products
Picture this. A rep builds a quote in Salesforce for 2,400 square feet. The ERP sells that item in boxes of 15.5 square feet. Salesforce rounds one way, the ERP rounds another, and the order that reaches the warehouse no longer matches what the customer signed.
Small gap. Expensive argument.
The fix is to model dual UoM on purpose. Store the conversion factors (square feet per box, boxes per pallet) on the product record, and let exactly one system do the rounding. Then bring over the attributes reps actually quote on, like size, finish, PEI rating, and caliber. If those only live in the ERP, reps will quote from memory. They’ll get it wrong sometimes.
2. Letting Two Systems Fight Over the Same Data
Syncing everything both ways sounds ideal. In practice, it’s where silent overwrites come from.
Pick a system of record for each data type, and write it down before anyone builds a connector. A typical tile setup looks something like this:
| Data | System of Record | Sync Direction |
| Credit terms and payment status | ERP | ERP to Salesforce |
| Dealer pricing tiers | ERP or pricing engine | ERP to Salesforce, read only |
| Opportunities and quotes | Salesforce | Salesforce to ERP when won |
| Stock and lot availability | ERP or warehouse system | ERP to Salesforce, read only |
| Contacts and activity history | Salesforce | Stays in Salesforce |
Your split might look different. That’s fine. What isn’t fine is nobody knowing which record wins when two of them disagree.
3. Syncing Stock Totals Instead of Lot Availability
This one hurts tile brands more than almost anyone else.
Watch for this: Salesforce shows 3,000 square feet on hand. Sounds great. But it’s really 1,200 in one lot, 1,100 in another, and 700 in a third. A customer tiling a single open floor needs one shade lot, so that 3,000 is really 1,200.
Reps who only see totals will overpromise. Every time.
Push availability into Salesforce by lot, or at minimum show the largest single lot for each SKU. Better still, let reps place a soft hold on a specific lot when a quote goes out. An inventory management solution with lot tracking does the heavy work here, tracking lot numbers for color and shade matching so Salesforce only has to display what’s currently sellable.
Frankly, you don’t need every stock movement inside the CRM. Reps need to know what they can sell today, by lot. The full audit trail can stay in the warehouse system.
4. Flattening Dealers, Contractors, and Specifiers Into One Account Type
Tile sales rarely involve a single buyer. On a typical commercial project:
- The architect or designer specifies the product
- A contractor buys it, often through a dealer
- The dealer places the order, holds the credit terms, and may be selling the same line into a dozen other jobs at once
If all three sit in Salesforce as flat, unrelated accounts, you lose project attribution. You’ll also collect duplicates, since the same contractor gets entered by three different reps.
Use account hierarchies and a project record that links each party by role. And if dealers order through a portal, make sure those orders land in Salesforce against the right account. A B2B dealer portal solution with tiered pricing, credit limit visibility, and order tracking only helps your sales team if its data reaches the CRM. Otherwise reps are blind to half their accounts’ activity.
5. Polling for Everything and Burning Through API Limits
Salesforce doesn’t give you unlimited calls. According to Salesforce’s developer documentation, Enterprise Edition orgs start at 100,000 API requests per rolling 24 hours, plus 1,000 for each Salesforce license. That allowance is shared across the whole org, not handed out per user.
So a connector that checks every SKU individually every few minutes can eat most of that budget. Then your ecommerce sync and marketing tools start failing too, and nobody’s sure why.
A better pattern:
- Sync on change, not on a timer
- Use the Bulk API for large catalog and price updates
- Publish changes as platform events, which don’t count against the daily API request allocation when sent through Pub/Sub API, Apex, or flows
That last point surprises a lot of teams. Worth checking against your current setup.
6. Testing Only With Clean Sandbox Data
Demo data passes every test. Your real data won’t.
Salesforce sandboxes can hold a full or partial copy of production data, so test against that instead of a handful of tidy sample records. Then run the messy scenarios on purpose:
- A partial shipment with the rest on backorder
- A backorder that ships from a different shade lot and needs customer approval
- One broken box returned from an order of 40
- A free sample order with zero value
- A dealer on credit hold who submits an order anyway
- A price change between quote and close
If the integration handles those, it’ll handle a normal Tuesday.
7. Walking Away After Launch
Integrations rarely fail loudly. Somebody renames a picklist value, an admin adds a validation rule, or the ERP gets patched, and orders quietly stop syncing. Days can pass before anyone notices.
Assign a named owner. Route failed records into an error queue that someone actually reads, set alerts for sync failures, and review integration health monthly. If you don’t have that capacity in house, a platform support solution with proactive monitoring covers the watching, so your team isn’t discovering problems through angry dealer calls.
Must Check: Salesforce CRM Integration for Tile Manufacturers
A Quick Check Before You Approve the Build
Run these five questions past your team. If any answer is “not sure,” stop there first.
- Which system owns pricing, credit, stock, and quotes?
- Where does the square foot to box conversion happen?
- Can reps see availability by shade lot, or only totals?
- How do dealer portal orders reach Salesforce?
- Who gets alerted when a sync fails?
Five clear answers usually mean a clean launch. Two or three vague ones? That’s where the rework will come from.
Get Your Salesforce Integration Right the First Time
Planning a Salesforce rollout, or fixing one that isn’t behaving? Our team has integrated 45+ enterprise systems for tile companies, including SAP, NetSuite, and Salesforce. We’ll review your data model, settle which system owns what, and flag the lot, UoM, and dealer gaps before they reach your customers.
Book a Salesforce integration solution review
FAQs
1. What’s the biggest Salesforce integration mistake tile distributors make?
Syncing inventory totals instead of lot availability. Reps end up promising stock that can’t ship as one shade, which leads to split lots, returns, and unhappy installers.
2. Should Salesforce or the ERP own tile pricing?
Usually the ERP. Salesforce should display dealer pricing and quote from it, not keep a separate copy that drifts over time.
3. Can Salesforce show shade lot availability?
Yes, but not out of the box. The integration has to send availability by lot, so plan for it during field mapping.
4. Do we need middleware to connect Salesforce and our ERP?
Not always. It depends on order volume, how many systems are involved, and how much the data needs reshaping. Simpler setups often work fine with direct API connections.
5. How do we avoid hitting Salesforce API limits?
Sync on change, batch large updates, and use platform events where they fit. Keep an eye on API usage in Setup so you spot trouble early.

