Relay.app Docs
  • Getting Started
    • Introduction
    • Helpful Resources
    • FAQ
  • Triggers
    • Triggers 101
    • Webhook Trigger
    • Mailhook Trigger
    • Manual Trigger
    • Scheduled Trigger
    • Batch Triggers
    • RSS Trigger
  • Actions in Apps
    • App Actions 101
  • Creating Templated Documents
  • DATA
    • Step Outputs
    • Find Steps
    • Lists (Arrays)
    • Inspecting Run Data
  • AI
    • AI Steps
    • Human-in-the-Loop AI reviews
    • AI Credits
    • Agentic Tool Use
    • Knowledge
    • Prompt Templates
    • Prompt Tips
    • Audio Transcription
  • Built-in actions
    • Transform Data
    • Create Constants
    • Search Google
    • Scrape Text from Website
    • Custom HTTP Requests
    • Run Custom Code (JS)
  • Flow Control
    • Paths
    • Iterators
    • Wait steps
    • Sequences
  • Human-in-the-Loop
    • Human-in-the-Loop Steps
    • AI output reviews
    • Roles
  • Workflows
    • Folders and Organization
    • Sharing Workflows
    • Headings
    • Notes
  • TEMPLATES
    • About Workflow Templates
    • Using a Template (Importing)
    • Creating a Template (Exporting)
  • Workspace
    • Step & AI credit usage
    • Billing and Plans
    • Workspace administration
    • (Sharing) App Accounts
  • App-Specific FAQs
    • Airtable
    • Attio
    • Cal.com
    • Coda
    • DeepSeek
    • Discord
    • Fireflies
    • Google AI Studio (Gemini)
    • Gmail
    • Google Docs
    • Google Drive
    • Google Sheets
    • Microsoft Permissions
    • Microsoft Outlook Mail
    • Notion
    • OpenAI
    • OpenPhone
    • Slack
    • X (Twitter)
    • QuickBooks Online
Powered by GitBook
On this page

Was this helpful?

  1. App-Specific FAQs

QuickBooks Online

Last updated 13 days ago

Was this helpful?

Creating an invoice with a variable number of line items

A common use-case is that you might want to create an invoice in QuickBooks Online populated from a list of items in other data sources (for example, from a number of rows in a spreadsheet).

Setting this up requires a few extra steps, namely:

  • Creating the line items for each input using an iterator

  • Unrolling the list of line items from the iterator into the invoice creation

As an example, consider the following spreadsheet containing rows, where each row represents an invoice line item:

To populate line items from this spreadsheet, we would first retrieve a list of the spreadsheet rows, using a find step:

Next, we would use an iterator, along with a quickbooks Create Invoice Line Item step to create a list of line-items:

Finally, we can "unroll" the list of line-items to populate the line-items in the Create invoice step:

Spreadsheet showing invoice line items with columns for Item, Description, Quantity, and Rate to be used in QuickBooks invoice creation
Relay.app Google Sheets Find step configuration showing selection of rows from the spreadsheet to retrieve invoice line item data
Relay.app workflow showing an iterator step connected to QuickBooks Create Invoice Line Item action to process multiple rows
QuickBooks Create invoice step configuration showing line items field populated with unrolled data from the iterator output