How Do I create a QuickBooks invoice monthly based on number of ZenDesk tickets completed per customer in

Userlevel 1

My company receives ZenDesk tickets from our customers to complete job requests.

At the end of each month, I would like to automate creating an invoice by for each customer, going through all completed tickets and adding them to an invoice through QuickBooks (or open to other payment softwares)

The job type will have a standard price, would like to be able to customize the price at times for special discounts.

Update the ticket status from “job completed - not invoiced” to “job completed - invoice sent”.

Repeat process on X date each month.

This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

2 replies

Userlevel 7
Badge +14

Hi @mconner11 

Good question.

Most Zap triggers/actions work on a per record basis, meaning a single record’s data.

To do what you are trying to do will likely require using the QBO API:

Plus you’ll have to handle pagination. (X records per page across Y pages)


App APIs can be used in the Code app and Webhook app.


Consider hiring a Certified Zapier Expert to help:

Userlevel 7
Badge +12

Hi @mconner11!

This is definitely very difficult to do with Zapier, if it is possible.  I can think of ways to solve different pieces of the puzzle, but I’m not sure if they’d all fit together. 


You could set up Zendesk with a view for completed tickets. You can then trigger a Zap from new tickets in that view, which sends the information to a Google Sheet (one line per customer). You could then use this Google Sheet in a Transfer step that would go through each row in the sheet and pass it to an invoicing app. The trouble there is that you can’t add a Formatter step into a Transfer, so you wouldn’t be able to add the information from Google Sheets as line items, which you need to create an invoice. 


Another avenue would be to start with the Zendesk trigger above and then add each Zendesk ticket to a Storage key using Storage by Zapier . You could set up the Storage Zap action so that clients are storage keys and any tickets are line items. When you want to create the invoice, you can pull all values from that storage key (all the tickets for each client). The problem there is that you wouldn’t be able to do them all at once. You could have one Zap to collect all the data, but you would need a Zap for each client to create the invoice at the end of the month. 

You could perhaps create a semi-automated process where you add any clients with a completed ticket to a Google Sheet (or Zapier Tables) at the end of the month. You could set up a Zap that triggers from new rows in the sheet/table and then goes through the process of finding the relevant information in Storage and creating an invoice from it. 


As I said, it’s not an easy thing, but it might be possible with some experimentation. 


I hope that gets you pointed in the right direction!