Automated AI-Powered AP Processing: Docsumo to QuickBooks (Make.com)

Streamline invoice extraction and multi-line item bill creation using Make.com’s advanced array handling.

Tools: DocsumoQuickBooks

Platform: Make.com

Short Answer

A touchless AP workflow where Docsumo extracts structured data from PDFs, and a Make.com scenario automatically validates vendors, maps line-item arrays, and creates bills with the original document attached in QuickBooks.

The Problem

Manual entry of supplier invoices is prone to human error and delays accounting cycles. Specifically, processing invoices with multiple line items into QuickBooks is tedious and often leads to duplicate records or mismatched vendor data.

The Outcome

A touchless AP workflow where Docsumo extracts structured data from PDFs, and a Make.com scenario automatically validates vendors, maps line-item arrays, and creates bills with the original document attached in QuickBooks.

Step-by-Step Guide

1. **Create Webhook in Docsumo**: Log into Docsumo, go to 'Settings' > 'Webhooks', and create a 'Document Processed' webhook. Copy the Make.com Webhook URL generated in Step 2. 2. **Setup Custom Webhook Module**: In Make.com, add the **Webhooks > Custom Webhook** module. Paste the URL into Docsumo to link the systems. 3. **Search for Vendor**: Add the **QuickBooks Online > Search for Vendors** module. Use the `vendor_name` from the Docsumo bundle to find a match. 4. **Implement Router Logic**: Add a **Router**. Set a filter on Path A: 'Vendor ID does not exist' (to trigger a **Create a Vendor** module). Set Path B: 'Vendor ID exists' to proceed. 5. **Iterate Line Items**: Add the **Iterator** module. Map the `line_items[]` array from Docsumo into the Iterator. This breaks down the invoice table into individual bundles. 6. **Transform Data & Logic**: (Optional) Add a **Tools > Set Variable** module inside the iteration to calculate tax per line if Docsumo only provides a total tax amount. 7. **Aggregate for QuickBooks**: Add the **Array Aggregator**. Select the Iterator as the source and 'QuickBooks Online > Create a Bill' as the target structure. Map the fields (Description, Amount, Item Ref) into the aggregate structure. 8. **Create the Bill**: Add the **QuickBooks Online > Create a Bill** module. Map the Vendor ID from your search/create steps and map the *entire* array from the Aggregator into the 'Lines' section. 9. **Upload PDF Attachment**: Add the **QuickBooks Online > Upload an Attachable** module. Use the `document_url` from Docsumo and link it to the `Bill ID` created in the previous step. 10. **Add Error Handling**: Right-click the 'Create a Bill' module and select **Add error handler**. Use a **Slack** or **Email** module to alert the team if a bill fails due to a closed accounting period.

Data Mapping

| Docsumo Field | QuickBooks Mapping | Make.com Transformation/Function | | :--- | :--- | :--- | | `vendor_name` | `VendorRef` | Use `first()` on Search results or the Newly Created ID | | `invoice_number` | `DocNumber` | `toString(invoice_number)` | | `invoice_date` | `TxnDate` | `formatDate(invoice_date; "YYYY-MM-DD")` | | `line_items[]` | `Line` | Use **Array Aggregator** to map to QB Line structure | | `line_items.amount` | `Line.Amount` | `parseNumber(amount)` | | `currency` | `CurrencyRef` | `upper(currency)` (e.g., USD) | | `document_url` | `Attachable` | Map to File Content via HTTP 'Get a File' module |

Gotchas & Failure Modes

• **Array Aggregator Source**: Ensure the 'Source Module' in your Aggregator is set to the **Iterator**, not the Webhook, or you will only capture the first line item. • **Date Formats**: QuickBooks is strict about `YYYY-MM-DD`. Use Make’s `formatDate()` function to avoid 400 Bad Request errors. • **Duplicate 'DocNumber'**: QuickBooks will fail if an invoice number already exists for a vendor. Add a check or use a 'Break' error handler to manage duplicates. • **Connection Refresh**: QuickBooks OAuth tokens in Make.com may occasionally disconnect if the scenario isn't run for 100+ days; ensure the scenario is active or use a heartbeat monitor. • **Tax Calculation**: QuickBooks often calculates tax based on the 'TaxCodeRef'. If you map a hardcoded tax amount from Docsumo, ensure the 'GlobalTaxCalculation' setting in the QB module is set to 'TaxInclusive' or 'TaxExcluded'.

Verification Checklist

1. [ ] Run the Scenario once using 'Run Once' and upload a test document in Docsumo. 2. [ ] Check the **Webhook Inspector** in Make.com to ensure the JSON structure of `line_items` is received correctly. 3. [ ] Verify in the **Array Aggregator** output that the array contains the correct number of items. 4. [ ] Open QuickBooks Online and confirm the Bill is created under the correct Vendor. 5. [ ] Confirm the PDF icon appears on the Bill in QuickBooks and correctly opens the Docsumo source file. 6. [ ] intentionaly trigger an error (e.g., empty vendor) to verify the Error Handler sends a notification.

Ready to Automate?

Build this automation with Make.com in minutes.