Link Menu Expand (external link) Document Search Copy Copied

List QuickBooks Entities

Definition

The “List QuickBooks Entities” action provides a unified interface that allows you to retrieve a comprehensive list of records from various modules within your QuickBooks account.

  • Select and retrieve data from the supported entities: Accounts, Bills, Classes, Customers, Expenses, Invoices, Terms, and Vendors.
  • Apply dynamic filters and conditions to narrow down the returned records based on specific criteria.
  • Manage large datasets efficiently using pagination features like Max Result and Start Position.

This action streamlines data retrieval from QuickBooks, making it easier to automate financial reporting, cross-reference records, and populate dynamic forms in your workflows.

Inputs

1. Connection:

  • Description: This field is used to authenticate and authorize Zenphi to access your QuickBooks account securely. You provide this by selecting an existing QuickBooks connection from the dropdown menu, or by creating a new one. This is typically a static selection that remains the same each time the flow runs. You would use the ‘Connection’ field to securely link your automation to the specific QuickBooks workspace where your financial data resides.

2. Entity Type:

  • Description: This field determines which specific QuickBooks module or category of records you want to retrieve. You select your desired entity from the supported list: Accounts, Bills, Classes, Customers, Expenses, Invoices, Terms, or Vendors. This is usually a static value chosen during setup. You would use the ‘Entity Type’ field and select “Invoices” to tell Zenphi exactly which type of financial document you want to pull into your workflow.

3. Condition:

  • Description: This field allows you to filter the retrieved records so that you only get the specific data you need, rather than the entire list. To use this, click the filter icon inside the input to build your logic by selecting a parameter (like ID), choosing an operator (like “equals to” or “greater than”), and providing a value. The value can be typed in as a static value (hardcoded) or inserted dynamically using the token picker (chain icon) to use data from a previous step. You would use the ‘Condition’ field to only retrieve expenses that are greater than $500, filtering out smaller transactions.

4. Max Result:

  • Description: This field specifies the maximum number of records you want the action to return in a single run. You provide this by typing a number between 1 and 1000 into the field, which is typically entered as a static value. You would use the ‘Max Result’ field set to 10 if you only want to fetch the top 10 most recent bills for a quick weekly review.

5. Start Position:

  • Description: This field defines the starting point or index from which the action should begin retrieving records, which is essential for pagination. You enter a numeric value representing the starting index; while this can be a static value, for looping through pages of data, it is often provided dynamically using the token picker to increment the position in each cycle. You would use the ‘Start Position’ field set to 11 (alongside a Max Result of 10) to fetch the second “page” of customer records (items 11 through 20).

6. Order by:

  • Description: This field determines the sorting order of the records returned by the action. You select the name of the field by which you want to sort the data directly from the dropdown menu based on the entity type you selected. This is generally provided as a static value. You would use the ‘Order by’ field to ensure your list of invoices is sorted chronologically by their creation dates.

7. Select fields to return:

  • Description: This field allows you to specify exactly which pieces of information (attributes) you want included in the output for each record. You choose the desired fields from a list of available options based on the Entity Type you selected earlier, which is typically a static selection. You would use the ‘Select fields to return’ field to only pull the “Customer Name” and “Balance” to keep your workflow data lightweight and focused.

Outputs

1. Results:

  • Description: This output provides a collection (list) of the QuickBooks records that match your specified Entity Type and Conditions, containing only the specific fields you chose to return. This list of objects is highly useful in subsequent steps, particularly for iteration and reporting. For example, you can pass this ‘Results’ list into a “For Each” loop action to process each record individually, such as sending a personalized email reminder for every overdue invoice in the list. Alternatively, you can use this output to dynamically populate a dropdown menu in a Zenphi Form with a list of valid QuickBooks Classes or Terms, ensuring users select only valid categories when submitting requests.

Example Use Cases

1. Automate Expense Tracking and Approvals: Retrieve a list of recent expenses to cross-reference against employee reimbursement requests within an automated approval workflow.

2. Populate Dynamic Form Fields: Fetch a list of valid QuickBooks terms or classes to dynamically populate dropdown menus in Zenphi Forms, ensuring users select accurate categories during data entry.

3. Generate Accounts Payable Reports: List all open bills on a weekly basis to help finance teams prioritize upcoming payments and manage cash flow effectively.

4. Identify Overdue Invoices: Retrieve a filtered list of invoices that exceed their due date to automatically trigger personalized email reminders to customers.

Example

Scenario

Your finance team needs to review upcoming payments every Monday morning to manage cash flow effectively. Instead of manually logging into QuickBooks to compile this data, you want to automatically retrieve a list of all open bills and send a consolidated report to the finance department.

Steps to Implement

1. Set the Trigger:

  • Action: Choose the Scheduled Flow trigger and configure it to run every Monday at 8:00 AM.

2. Configure the “List QuickBooks Entities” Action:

  • Connection: Select your established QuickBooks connection from the dropdown.
  • Entity Type: Select “Bills” to specify the module you want to query.
  • Condition: Click the filter icon to build a logic statement where the Balance is greater than 0 (this is how QuickBooks identifies open/unpaid bills).
  • Order by: Select the due date field from the dropdown to sort the bills chronologically.
  • Max Result: Enter a static value (e.g., 100) to ensure you capture the necessary volume of records.
  • Select fields to return: Choose specific attributes like “Vendor Name”, “Balance”, and “Due Date” to keep the workflow data lightweight.

3. Process and Send the Data:

  • Action: Use the “Results” output collection in a subsequent action (such as Create HTML Table or Send Email) to format the retrieved bills into a readable report and deliver it to the finance team.

    Outcome

    The finance team automatically receives a precise, sorted weekly report of all open bills without any manual data extraction. This saves valuable administrative time, reduces the risk of human error, and ensures the team has accurate, up-to-date information for cash flow management.

Best Practices

1. Utilize Conditions for Efficiency: Always apply specific conditions to filter your records at the source, which reduces the amount of data processed and speeds up your workflow execution.

2. Select Only Necessary Fields: Use the “Select fields to return” option to pull only the attributes you actually need, keeping your workflow data lightweight and easier to manage in subsequent steps.

3. Implement Pagination for Large Datasets: When dealing with hundreds of records, use the “Max Result” and “Start Position” fields dynamically within a loop to iterate through pages of data and prevent workflow timeouts.

4. Sort Data at the Source: Use the “Order by” field to sort your records directly within the QuickBooks action (e.g., chronologically by creation date) rather than attempting to sort the resulting collection later in the flow.