Breadwinner requires that all Xero Customers are directly associated with a Salesforce Account. A Xero Contact which has an Invoice associated with it is a 'Xero Customer'.

Behind the scenes, we create an object in Salesforce called "Xero Contact" (in the Salesforce API this is called a BAC or a Breadwinner Account Connection) that sits below the Salesforce Account Object as a child of the Salesforce Account.

You may see a related list on your Salesforce Account called "Affiliated Xero Contacts". These are the Xero Contacts associated with (or affiliated with) that Salesforce Account.

This approach allows you to have multiple Xero Customers associated with a single Salesforce Account. This is a powerful feature and comes in handy when a single Salesforce Account might have multiple departments or branches to be billed in Xero. And, because a Xero Contact can be associated with any Account, we know which Salesforce Account to put an Invoice under when importing new Xero Invoices - even if the name or spelling is entirely different.

( if you are a Salesforce Consultant or Developer, and wish to see more information on this relationship, please go to the Resources tab of our website, and look for Technical Details to see the ERD. You may also be interested in the other option Syncing and Mapping on that tab)

Initial Sync of Xero Customers to Salesforce Accounts

Every single Xero Customer must be associated with a single Salesforce Account. That's what our initial Account Sync does - connects all your Xero Customers to a Salesforce Account. You can use our suggested match feature - that's where we try to match a Xero Customer based on the company name, or email, or phone, or address.

If we can't match a Xero Customer to a Salesforce Account automatically, the relevant Account might still be in Salesforce. If that's the case, use the Manual Match to connect the Xero Customer to the correct Salesforce Account. But if there is no corresponding Salesforce Account, go ahead and select Create New Account - and we'll create a corresponding Salesforce Account (and create a BAC as a Child Object) and populate it with Xero data.

If you are connecting Xero to a new, (mostly) empty Salesforce Org (such as when in a Salesforce Trial, or installing Breadwinner in a Sandbox), the Initial Sync is a great way to populate your Salesforce database. Just click Next on the bottom of the Initial Account Sync pages to bring in Xero Contacts, 100 per page. 

Ongoing Sync of Xero Customers

When you change any value in Xero on the Xero Customers (such as the name, or default days due), we'll update that in Salesforce within the hour. This won't update the Salesforce Account but will change the details of the BAC below it. You can optionally write triggers or other code to update the Salesforce Account based on this change, but be aware that a Salesforce Account might have no BAC object, one, or many. 

Changing the Association between Xero Customers and Salesforce Accounts

You may find that a Xero Contact is associated with the wrong Salesforce Account. To fix this, please go this help article.

Creating a New Xero Contact from Salesforce 

When you click New Invoice in Salesforce from the Account or Opportunity page, you are asked which Xero Contact you would like to connect it to. If there are any Xero Customers already associated with that Account, you will see them displayed there. This is also the time to create a new Xero Contact in Xero and connect it to the Salesforce Account by selecting the option "New Xero Contact". This will let you create a Xero Contact based on the details in the Salesforce Account. Once created, you continue on to the New Invoice page.

If you want to create a new Xero Contact based on a Salesforce Account, but don't want to create a new Xero Invoice, then just click the New Invoice button on the relevant Salesforce Account, then select "New Xero Contact", create the Xero Contact, but once you arrive at the New Invoice page, rather than creating an invoice simply abandon the process by going to any other Salesforce tab. 

New Xero Customer Found after Initial Sync

You might find your business requires you to create Xero Invoices in Xero manually, or through other systems - rather than creating Xero Invoices through Breadwinner. Indeed, some of our customers use Breadwinner only as a one-way sync from Xero to Salesforce to see their customer information in Xero and never create an Invoice in Xero through Breadwinner. And, Credit Notes can only be created in Xero, not via Breadwinner (this is for financial security)

There is no explicit problem with this approach, however, when we find a new Xero Invoice attached to a Xero Customer we have never seen before, we create a new Salesforce Account (and corresponding Xero Contact child object) to represent that new Xero Customer.

This can lead to duplicate Salesforce Accounts. We mitigate this by first checking for an existing Salesforce Account with an identical spelling as the Xero Customer. If your third-party system is creating Xero Contacts based on Salesforce, this should prevent Breadwinner from creating duplicate Salesforce Accounts.

Additionally, if you upload a large number of Xero Contacts at one time, you can re-run the Account Sync from the Breadwinner tab immediately after uploading them, to control how they are matched.

There are other ways to configure this auto-matching that occurs after the Initial Sync. Please file a case with Support explaining your configuration, what additional apps you use, and what your ideal scenario is.