I'm having trouble using a webhook to create a quickbooks online invoice when a new record is added in quickbase. The trouble is authentication...I have a Quickbooks online developer key for our account, I'm just not quite sure where to plug it in. From what I gather, I need a GET first with that key, then I can POST. Can anyone advise if what I'm attempting is possible (without a 3rd party service)?
I did a little bit of research on the Quick Books Online API and they have a pretty standard oAuth flow for obtaining access to their API (see attached image). Unfortunately I don't think this is achievable (at least in a very secure way) via a single webhook.
3) You can then use that access token to make API Calls (like your invoice webhook here). You'll notice that it expires in 3600 seconds (1 hour) and you can use the refresh token to generate a new access token for future API Calls -- this is a pretty standard security measure.
So in summary this cannot be achieved via a single webhook without performing a few authentication steps with Quickbooks
Since you need to be able to make a few requests prior to your create invoice, I would suggest the following as options:
1) Use Workato/Zapier's http connectors; you could achieve this easily. Basically your webhook would call your integration recipe, perfrom steps 1-2, and then create your invoice.
I'd imagine those products have ways to authenticate to Qbooks without these steps (using their connectors), just by plugging in your credentials, so maybe even no need for writing http posts!
2) Use a tool like Postman to generate your tokens and plug into your quick base webhook.
Not ideal because you'd have to generate a new one every hour and put in your webhook; although they can be updated with the API so you could create a flow in Postman that can do all these steps with a button click.
Thanks so much Charlie! I appreciate the time & advice. I would rather set it up without 3rd party tools if I can help it, but I did end up giving up eventually and using workato :)
Has anyone used Zapier for this? I have a client that I really don't want to add more cost to. Is it possible to do this on the free version to show him that QB will work for him in connecting to his QBks?
If anyone has done this, can you give me a step-by-step how to of how you made it work? Currently not having much success. I feel like I am just missing some tiny thing, but I could also be way off base.
Yes, I have used Zapier both using their built-in connector and a custom code/webhook solution. Using their built-in connector is far easier because they handle all of the oAuth management. Have you tried that?
I ended up using Workato...it's not a free service unfortunately, but works like a charm for keeping Quickbase synced with Quickbooks Online Invoices. I can even update them later if needed by returning the Quickbooks Invoice ID to the Quickbase record.
You might want to consider evaluating Zapier vs Workato as they have different pricing models. Zapier is usually more affordable at the smaller scales.
Yes, that is what I have done. It is indeed much less / free fro what I need to do. However, I was asking if any one had used Zapier, and if they had a step-by-step on what worked for them.