Integration with Google Drive?

@Anthony I’ve moved your post here as we already have an open feature request for GDrive.

The position is still the same here, we’d be happy to work with a developer on the API, but it is not something we want to provide native support for at this time.

I understand this, I have already setup Zapier to move my google drive files to the quickfile dropbox folder. It works well I just thought it would be valuable to others.
I might write a guide for the setup if it would be used

1 Like

I am sure that would be very helpful, if you do write a guide, let me know and I shall reference it when similar topics come up.

With our Dropbox integration the folder acts as a sort of conduit to funnel files into QF. I think if GDrive was your primary file storage solution you could easily setup a free Dropbox account to work as a bridge.

For reference if you are using Chrome OS (Chromebook / box / base etc.) then you can use this to mount Dropbox within the Files app to access Dropbox directly:

PB

1 Like

I know I can upload receipts to Dropbox but I’d prefer to use Google Drive as I have more space on Google than Dropbox. Can this be considered please.

Hi @jeremygadd

I merged your topic here to keep everything in one place.

It’s worth reading the notes above, and also worth looking at Zapier: https://zapier.com/zapbook/dropbox/google-drive/

I find this to be a big shame since as mentioned by others Google Drive offers more space, has a native “scan” feature and is also tied into Gmail, so you can save attachments directly to drive. I definitely think this should be reconsidered. :pray::crossed_fingers:

This thread tickled my problem-solving brain, so I’ve run up a tool that should do this now in Google Apps Script and I’d welcome people trying it out. I don’t claim this is “production quality” code but it seems to work for me in the common cases I’ve tried and I’m happy to put it out there for feedback.

Instructions

  1. Create two empty folders in your drive (named whatever you like). One will be the “source” folder that the script scans to find receipts to upload, the other will be the “processed” folder where items are moved once they have been imported. The processed folder can be a child of the input folder if you want - the scan only looks at the source folder itself and doesn’t descend into child folders.
  2. Open this Google spreadsheet, then do “File → Make a copy…” to save a copy to your own Google Drive (you can’t edit the original). You will be entering sensitive details into this sheet in step 4 so make sure you don’t save it in a shared folder.
  3. In your QuickFile account, go to account settings → 3rd party integration → API, and create a new app.
    • you can put anything you like for the name and description, I recommend something meaningful like “GDrive importer”
    • grant the Invoices.Document_Upload permission - this is the only permission the app requires
  4. In your copy of the spreadsheet, enter the required configuration settings (account ID, API key and App ID - see the image below) in the appropriate cells. Make sure you don’t add any leading or trailing spaces around any of the values.
  5. Use the “select” buttons to select the two folders you created in step 1.
    • the first time you click the button it will ask you for authorization. It will tell you the app isn’t verified, you need to click “advanced” and then “go to Drive-to-QuickFile-script (unsafe)”, and allow the permissions it is asking for:
      • full access to your google drive (to read the files to upload and to move them to the processed folder when finished)
      • access to spreadsheets (to read the configuration settings from this sheet)
      • connect to an external service (to call the QuickFile API)
      • run when you are not present (to be able to work in the background)
      • display and run third party content (for the drive folder picker UI)
  6. The script is able to convert Word, Excel and OpenOffice files into PDFs before uploading them to QuickFile - this is not a perfect conversion as it works by first importing the Word file as a Google Doc and then turning that into PDF, so you can untick the box if you would prefer these kinds of files to be uploaded in their original format (though you may not be able to view them in the receipt hub). JPG and PNG files are uploaded as-is, native Google Docs are always converted to PDF.

Once everything is set up, you will see a “QuickFile” menu appear in the menu bar at the top of the spreadsheet. In this menu you can “Import now” to run a one-off import and check everything is working as it should be. Once you’re happy with this, select “Enable trigger” to start the background job that will poll every ten minutes. After that you can close the Google Sheet, the import script will continue indefinitely in the background.

Any programmers who are interested in looking over the code, it’s all there in “Tools → Script editor” - any suggestions welcome. If there’s interest I’d be willing to look at turning this into a proper Google Sheets “add-on” rather than an unverified script, but timed triggers in add-ons are limited to fire no more than once per hour, which means there’d be a much longer delay between dropping something into Drive and having it appear in the Receipt Hub.

API credentials

The API apps page can look a bit intimidating if you’re not a programmer, the bits of information you need are highlighted here:

2 Likes

Great little script @ian_roberts - thank you for sharing!

1 Like

I’ve just updated the code with a bug fix - receipts were failing to import when the file name was longer than 35 characters.

1 Like

Absolutely amazing! Thank you so much for sharing, it has worked well so far for me, without any issues. :smiley:

Wonderful. Works perfectly. Will tweak it later and let you know.

Definitely worth adding as a verified add on and at some point should be adopted formally by QF

1 Like

Annoyingly, published Google Sheets add-ons have a much tighter restriction on how often you can run background triggers - as an add-on it’d only be able to import once per hour rather than every ten minutes.

I have to say that wouldn’t be an issue for me. How often do you add new items that need near immediate attention? Once per hour would be more than brilliant for me!

Also - bloody good work on your part!

1 Like

Wondering if there is a cunning plan to consider enabling the Receipt Hub to access files from Google Drive?

PB

1 Like

I’m afraid there isn’t. We generally can’t commit to integrating with all the different storage providers, we just don’t have the time or resources…certainly not right now. We’d be much more inclined to allow this through the API so other developers can get involved and build the necessary bridge. Same sort of philosophy applies to payment gateways.

Hi,

Has there been any further consideration for google drive integration?

It’s not something that we’re planning to provide native support for, although Zapier may offer a solution. You could setup a Zap to move any Google Drive file created in a specific folder to Dropbox, and from there to QuickFile.

We may also extend our Zapier integration to allow direct file movements from any cloud storage provider to QuickFile.

4 Likes

I would like to add my vote here.
Due to the changes on Dropbox, I cannot longer use it (limit of devices).
And drive is part of my Google workspace, so that would be the best option for me.
I will check the script above (thanks!) but a full integration will be best.