Getting a relationship set up between sales activity in Salesforce, and billing activity in QuickBooks can be difficult and confusing, but it doesn’t have to be. As a small business integrator, we’ve done lots of projects that address this very question, and there’s actually a pretty rational way to do it. Here’s our take.
Pick an object in Salesforce that represents your sale
There is a pretty obvious choice in Salesforce for this — Opportunities. Since Salesforce is a CRM, it knows sales really, really well. The Opportunity will track lots of obvious things about what a sale is; who you’re selling to, the status of the sale, what you’re selling, the prices, and more.
The key feature here is the products that were sold. Products in this sense can be physical goods, services, or even taxes and discounts. It’s crucial to think about this, because QuickBooks requires at least one line item for any transaction you hand it.
For your business though, maybe you’ve determined that the Opportunity doesn’t work, and you need to choose a different object. That’s just fine, but you’ll want to make sure the same bases are covered in your custom object.
The most common scenario driving businesses to create a custom object in Salesforce to contain their invoices (or other transactions) is the need for many invoices for one sale. This can happen when you bill your customers according to progress, or in some other partial billing scenario. In this case, syncing the Opportunity to QuickBooks won't make sense, because there's only one Opportunity record, but we want multiple invoices in QuickBooks.
So to implement this correctly, create a custom object that looks up to Opportunities and Accounts. You can name it "Invoice", or anything else that makes sense for your scenario. Here's what we recommend it should contain to QuickBooks satisfy QuickBooks requirements:
- A lookup to your customer record (often, this is the Account)
- Reference number (this isn't required, but good to have in case you want to assign this for QuickBooks - otherwise, QuickBooks will automatically generate this on insert)
- Relevant addresses (like shipping)
- A related line item object that contains: Item/Product Name, Description, Quantity, and Price
Once your object is created, you can automate it to fit your business process, or manually create records for now.
Pick a destination in QuickBooks
QuickBooks is expecting to be told what kind of transaction to create based on your sale. This is totally up to you, and follows your business process. Some businesses want to have QuickBooks create Sales Orders, some want to go straight to Invoices, and still others want to use Estimates or Receipts. They all do slightly different things, so decide which one works best for you depending on your business.
QuickBooks is consistent with what it requires in any transaction, whichever type you use. From Salesforce, you need to tell it:
- Who the Customer is (usually taken from the Salesforce Account)
- What the items where that were sold (usually taken from the Opportunity Products, but any custom line item object can work)