Recently I had to write a custom integration which would sync customers found in QuickBooks with accounts found in Salesforce. We have been using Python to write all of our custom integrations so I have been using python-quickbooks and simple-salesforce. One thing that we noticed when syncing the two datasources is that due to validation rules inherent to QuickBooks, if you try to create 2 customers with the same first and last name QuickBooks will not create the second customer record. To get around this limitation I found that you can make sure that the second customer’s name is different in some way. The following fields can all be defined to make a customer unique:

Field Maximum Length Example
Title 16 characters Mr.
GivenName 100 characters Jonathan
MiddleName 100 characters Brentyn
FamilyName 100 characters Smith
Suffix 16 characters PhD
DisplayName 500 characters Mr. Jonathan Brentyn Smith PhD
PrintOnCheckName 110 characters Mr. Jonathan Brentyn Smith PhD

What’s interesting is that the last 2 fields, if not specified, will be inferred from the first 5 fields. In the case that you are syncing data between QuickBooks and Salesforce you can simply set the DisplayName to be in this format:
{GivenName} {MiddleName} {FamilyName} ({SalesforceId})

Using this format will make it so that no matter how many accounts have the same name in Salesforce you will still be able to store the corresponding customers in QuickBooks without an issue. It is also important to note that you can still define the PrintOnCheckName field to exclude the Salesforce ID.


Leave a Reply

Your email address will not be published. Required fields are marked *