Zoho Flow + QuickBooks Estimates – Line items not created from CRM subform

Zoho Flow + QuickBooks Estimates – Line items not created from CRM subform

Hi everyone,


I’m trying to create QuickBooks Estimates from Zoho CRM Quotes using Zoho Flow.


I’m aware that Zoho Flow’s native “Create Estimate” action does not support multiple line items, so I followed the community guidance for Invoices using a custom function + invokeurl approach and attempted to adapt it for Estimates.(https://help.zoho.com/portal/en/community/topic/zoho-flow-create-quickbooks-invoice#:~:text=In%20the%20QBO%20action%20%22Create,lines%20as%20a%20single%20variable.)


Flow setup:


  • Trigger: Zoho CRm: Quote created or updated
  • Fetch full Quote record by ID
  • Pass the Quote subform (Quoted Items / Product_Details) into a custom function
  • Inside the function, build the QuickBooks Line array manually (DetailType = SalesItemLineDetail, Qty, ItemRef, Amount)
  • Call the QuickBooks API endpoint:
    https://quickbooks.api.intuit.com/v3/company/{companyId}/estimate



Sample logic used inside the custom function to build line items:


qblineItems = List();

for each line in crmLines

{

qblineItem = Map();

qblineItem.put(“DetailType”,“SalesItemLineDetail”);

salesItemDetail = Map();  
salesItemDetail.put("Qty", line.get("Quantity"));  

itemRef = Map();  
itemRef.put("value","<QBO_ITEM_ID>");  
salesItemDetail.put("ItemRef", itemRef);  

qblineItem.put("Amount", line.get("Net_Total"));  
qblineItem.put("SalesItemLineDetail", salesItemDetail);  

qblineItems.add(qblineItem);  

}


Estimate payload sent to QuickBooks:


estimate = Map();

estimate.put(“CustomerRef”, {“value”:”<QBO_CUSTOMER_ID>”});

estimate.put(“Line”, qblineItems);


invokeurl call:


resp = invokeurl

[

url : “https://quickbooks.api.intuit.com/v3/company/<COMPANY_ID>/estimate”

type : POST

parameters : estimate.toString()

headers : {“Content-Type”:“application/json”}

connection : “<QUICKBOOKS_CONNECTION>”

];


Issue:


  • The CRM Quote does contain subform line items
  • However, inside the custom function, the line parameter arrives empty
  • The resulting Estimate payload contains an empty Line array
  • QuickBooks rejects the request with:
    “Required parameter Line is missing”



This suggests Zoho Flow may not be passing CRM subform rows as a list into custom functions, even when the full record is fetched.


Questions:


  1. Has anyone successfully created QuickBooks Estimates (not Invoices) with line items using Zoho Flow custom functions?
  2. Is there a known limitation with Zoho Flow passing CRM subform data into functions?
  3. Is there a recommended workaround to reliably map CRM subform rows into QuickBooks Estimate Lines?



Any confirmation, guidance, or alternative approaches would be greatly appreciated.


Thanks in advance.