QuickBooks Connector

Data Model & ERD Documentation

This document provides a detailed schema model for QuickBooks integration, outlining key objects, relationships, and important fields for seamless data synchronization.


1. Object Schema

1.1 QuickBooks Company

Description: Stores each company's information as a record.

Relationships: Linked to all QuickBooks objects via Lookup Relationship.

Important Fields:

Name

Data Type

Description

Active

Boolean

Indicates whether the company is currently active and available for transactions in QuickBooks.

Company ID

Text (Realm Id)

Unique identifier assigned by QuickBooks to each company; used for API interactions and authentication.

Company Name

Text

The legal or display name of the company as stored in QuickBooks.

Default

Boolean

Specifies whether this company is set as the default company in the integration or system.

QuickBooks Id

Text

External reference identifier linking this record to the corresponding company record in QuickBooks Online.


1.2 QuickBooks Account

Description: Stores account data for QuickBooks (e.g., Accounts Payable).

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

Important Fields:

Name

Data Type

Description

Account Type

Text

The primary classification of the account (e.g., Bank, Accounts Receivable, Income, Expense) as defined by QuickBooks.

Account Sub Type

Text

Further categorization of the account type, providing more detailed classification (e.g., Checking, Savings, Credit Card).

Active

Boolean

Indicates whether the account is active and available for transactions within QuickBooks.

Current Balance

Currency

The current balance of the account as maintained in QuickBooks, reflecting recent transactions.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this account; used for API synchronization and reference.

Status

Picklist

Represents the operational status of the account (e.g., Active, Inactive, Archived).

Sub Account

Boolean

Indicates whether the account is a sub-account of another parent account within the QuickBooks chart of accounts.


1.3 QuickBooks Customer

Description: Stores customer data from QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

  • Parent QuickBooks Customer (Self Lookup for hierarchical customer structure)

Important Fields:

Name

Data Type

Description

Active

Boolean

Indicates whether the record (e.g., customer, vendor, or entity) is active and available for use in QuickBooks.

Balance

Currency

The outstanding balance associated with the record, as maintained in QuickBooks.

Display Name

Text

The name displayed in QuickBooks for this record, typically used for identification in transactions and reports.

Ignore Webhook

Boolean

Specifies whether incoming QuickBooks webhook notifications should be ignored for this record during synchronization.

Parent Record Id

Text

Stores the Record ID of the source object that triggered the workflow initiation.

Process Via Batch

Boolean

Indicates whether operations related to this record should be processed in batch mode rather than individually.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this record; used for integration and external references.

Status

Picklist

Represents the current operational state of the record


1.4 QuickBooks Vendor

Description: Stores vendors' data from QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

  • Parent QuickBooks Customer (Self Lookup for hierarchical customer structure)

Important Fields:

Name

Data Type

Description

Account Number

Text

Stores the Account number of the Vendor

Active

Boolean

Indicates whether the record (e.g., customer, vendor, or entity) is active and available for use in QuickBooks.

Balance

Currency

The outstanding balance associated with the record, as maintained in QuickBooks.

Display Name

Text

The name displayed in QuickBooks for this record, typically used for identification in transactions and reports.

Ignore Webhook

Boolean

Specifies whether incoming QuickBooks webhook notifications should be ignored for this record during synchronization.

Parent Record Id

Text

Stores the Record ID of the source object that triggered the workflow initiation.

Process Via Batch

Boolean

Indicates whether operations related to this record should be processed in batch mode rather than individually.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this record; used for integration and external references.

Status

Picklist

Represents the current operational state of the record


1.5 QuickBooks Class

Description: Stores class records as per QuickBooks configuration.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

  • Parent QuickBooks Class (Self Lookup for hierarchical class structure)

Important Fields:

Name

Data Type

Description

Active

Boolean

Indicates whether the class is active and available for use in QuickBooks transactions.

Class Name

Text

The name of the class as defined in QuickBooks, used to categorize transactions for tracking and reporting.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this class; used for API synchronization and reference.


1.6 QuickBooks Custom Field

Description: Stores custom fields configured for Sales forms (e.g., Invoices) in QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

Important Fields:

Name

Data Type

Description

Custom Field Name

Text

The name or label of the custom field as defined in QuickBooks, used to capture additional information on entities or transactions.

Definition Id

Text

Unique identifier assigned by QuickBooks to the custom field definition; used for referencing and mapping in integrations.


1.7 QuickBooks Invoice

Description: Stores invoices from QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

  • QuickBooks Customer (Lookup to QuickBooks Customer)

Important Fields:

Name

Data Type

Description

Balance

Currency

The remaining balance due on the invoice after payments and credits are applied.

Custom Field 1, 2, 3

Text

User-defined custom fields from QuickBooks used to store additional invoice-related information.

Deposit

Currency

Any deposit or upfront payment applied to the invoice amount.

Document Number

Text

The unique invoice number assigned to this transaction in QuickBooks.

Due Date

Date

The date by which payment for the invoice is due, based on the terms associated with the customer.

Ignore Webhook

Boolean

Indicates whether webhook updates from QuickBooks should be ignored for this invoice during synchronization.

Invoice Date

Date

The date on which the invoice was created in QuickBooks.

PDF Generated

Boolean

Denotes whether a PDF version of the invoice has been generated or stored.

Process Via Batch

Boolean

Specifies if the invoice should be processed in batch mode for bulk synchronization or posting.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this invoice; used for external references and integrations.

Status

Picklist

Represents the current state of the invoice (e.g., Open, Paid, Void).

Total Amount

Currency

The total amount of the invoice before payments or credits are applied.


1.8 QuickBooks Invoice Item

Description: Junction object storing invoice and product relationships.

Relationships:

  • QuickBooks Invoice (Lookup to QuickBooks Invoice)

  • QuickBooks Product (Lookup to QuickBooks Product)

  • QuickBooks Class (Lookup to QuickBooks Class)

Important Fields:

Name

Data Type

Description

Archived

Boolean

Indicates whether the invoice line item has been archived or excluded from active processing.

Invoice Line Id

Text

Unique identifier for the specific invoice line item, used to distinguish it from other lines within the same invoice.

Rate

Currency

The rate applied per unit for the product or service on this invoice line.

Unit Price

Currency

The price per unit of the item before discounts or taxes are applied.


1.9 QuickBooks Product

Description: Stores items present in QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

  • Asset Account (Lookup to QuickBooks Account)

  • Expense Account (Lookup to QuickBooks Account)

  • Income Account (Lookup to QuickBooks Account)

Important Fields:

Name

Data Type

Description

Active

Boolean

Indicates whether the product or service is active and available for use in QuickBooks transactions.

Ignore Webhook

Boolean

Specifies whether incoming QuickBooks webhook updates should be ignored for this product during synchronization.

Parent Record Id

Text

External reference to the parent item, if this product or service is a sub-item in QuickBooks.

Process Via Batch

Boolean

Indicates whether the product record should be processed in batch mode during integration or synchronization.

Product Name

Text

The name of the product or service as defined in QuickBooks, used for display in transactions.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this product or service; used for external references and API synchronization.

Status

Picklist

Represents the current state of the product or service (e.g., Active, Inactive).

Type Of Product

Picklist

Specifies the product or service type (e.g., Inventory, Non-Inventory, Service, Bundle) as defined in QuickBooks.


1.10 Tax Rate

Description: Stores tax rates present in QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

Important Fields:

Name

Data Type

Description

Active

Boolean

Indicates whether the rate is active and available for use in QuickBooks transactions.

Description

Text

A descriptive label for the rate, typically identifying the purpose or type of the rate (e.g., Sales Tax, Discount).

Rate Value

Percentage

The percentage value of the rate applied in calculations (e.g., 18% for GST).

UID (QuickBooks Id)

Text

Unique identifier assigned by QuickBooks to this rate; used for API synchronization and external reference.


1.11 Custom Field Mapping

Description: Stores the mapping of custom fields between Salesforce and QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

Important Fields:

Name

Data Type

Description

Source

Text

Indicates the origin of the data (e.g., Salesforce or QuickBooks) that drives the synchronization.

sObject API Name

Text

The Salesforce object API name (e.g., Account, Invoice__c) that is being mapped to a QuickBooks entity.

Mapping Type

Picklist

Specifies the type of mapping (e.g., Field Mapping, Custom Field Mapping, Static Value).

Field Mapping

Text

Defines the relationship between Salesforce fields and corresponding QuickBooks fields for data synchronization.

QB Custom Field Mapping

Text

Specifies the mapping of Salesforce fields to QuickBooks custom fields defined in the QuickBooks environment.


1.12 QuickBooks Journal Entry

Description: Stores journal entries from QuickBooks.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

Important Fields:

Name

Data Type

Description

Journal Date

Date

The date on which the Journal entry was recorded.

Parent Record Id

Text

Stores the Record ID of the source object that triggered the workflow initiation.

Private Note

Text

A note that the user wants to enter on the Journal entry.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to this Journal entry; used for external references and integrations.

Status

Picklist

Represents the current state of the journal entry (e.g., Successfully Synced, Failed).


1.13 QuickBooks Journal Entry Line Item

Description: Child object storing Journal entry line item details and customer/vendor relationships.

Relationships:

  • QuickBooks Journal Entry (Lookup to QuickBooks Journal Entry)

  • QuickBooks Account (Lookup to QuickBooks Account)

  • QuickBooks Customer (Lookup to QuickBooks Customer)

  • QuickBooks Vendor (Lookup to QuickBooks Vendor)

Important Fields:

Name

Data Type

Description

Amount

Currency

The amount for the journal entry line item.

Description

Text

Description for the line item.

Detail Type

Currency

The rate applied per unit for the product or service on this invoice line.

Entity Type

Picklist

When Account Payable or Account Receivable is selected in the QuickBooks Account field, we need to specify whether this entry is for Vendor/Customer (Valid values - Vendor, Customer).

Line ID

Text

Unique Identifier for QuickBooks Journal Entry Line Item.

Transaction Type

Picklist

Specifies whether the entry is of Debit/Credit.


1.14 QuickBooks Sales Receipt

Description: Stores sales receipts from QuickBooks, representing payments received for goods or services at the time of sale.

Relationships:

  • QuickBooks Company (Lookup to QuickBooks Company)

  • QuickBooks Customer (Lookup to QuickBooks Customer)

  • QuickBooks Payment Method (Lookup to the payment method used for the receipt, where configured)

  • QuickBooks Account (Lookup to the deposit-to account, where configured)

Important Fields:

Name

Data Type

Description

Transaction Date

Date

The date on which the sales receipt was created or the sale occurred.

Customer

Lookup

The QuickBooks customer associated with the sales receipt.

Payment Method

Lookup / Picklist

Identifies how the customer paid, such as cash, check, credit card, or bank transfer.

Deposit To Account

Lookup

The QuickBooks account where the payment is deposited or recorded.

Document Number

Text

The receipt number or transaction number assigned by QuickBooks.

Total Amount

Currency

The total sales receipt amount, including applicable taxes and adjustments.

Custom Field 1, 2, 3

Text

User-defined custom fields from QuickBooks used to store additional receipt information.

Private Note

Text

An internal note associated with the sales receipt.

Ignore Webhook

Boolean

Indicates whether incoming QuickBooks webhook updates should be ignored for this sales receipt during synchronization.

Process Via Batch

Boolean

Indicates whether the sales receipt should be processed in batch mode during synchronization.

Parent Record Id

Text

Stores the Salesforce record ID that initiated the sales receipt workflow.

QuickBooks Id

Text

Unique identifier assigned by QuickBooks to the sales receipt.

Status

Picklist

Represents the current synchronization state of the sales receipt, such as Successfully Synced or Failed.


1.15 QuickBooks Sales Receipt Item

Description: Child object storing the products or services included on a sales receipt and the amounts recorded for each line.

Relationships:

  • QuickBooks Sales Receipt (Lookup to QuickBooks Sales Receipt)

  • QuickBooks Product (Lookup to QuickBooks Product)

  • QuickBooks Class (Lookup to QuickBooks Class, where configured)

Important Fields:

Name

Data Type

Description

Sales Receipt Line Id

Text

Unique identifier for the sales receipt line item in QuickBooks.

Product

Lookup

The QuickBooks product or service referenced by the line.

Description

Text

Description of the product or service shown on the receipt.

Quantity

Number

Number of units sold.

Rate

Currency

Price charged per unit for the product or service.

Unit Price

Currency

Unit price before the line amount, discounts, or taxes are calculated.

Amount

Currency

Total amount for the line, generally calculated as quantity multiplied by rate.

Tax Code

Lookup / Text

Tax code applied to the line item.

Class

Lookup

QuickBooks class used to categorize the line for reporting.

Archived

Boolean

Indicates whether the sales receipt line item has been archived or excluded from active processing.


2. Entity Relationship Model for Quickbooks

QuickBooks_ER_Diagram.pdf

Conclusion

This schema ensures structured data flow and synchronization between QuickBooks and Salesforce, supporting accurate data management and operational efficiency.