I’ve built an automation in n8n that summarizes PDF files using an AI Agent.
Right now, I’m using a Google Drive trigger:
I upload a PDF into a specific Drive folder, and the workflow checks the folder every minute.
It works fine, but this approach feels inefficient since it relies on polling and constantly consumes API calls and system resources.
I looked into Google Drive push notifications (webhooks), but as far as I understand, they require Google Workspace / Shared Drives, which I don’t have.
So my question is:
Is there a better or more “event-driven” way to trigger this workflow?
Would it make more sense to upload the PDF via another app (for example Gmail or a form)?
What would you recommend as a best practice for near-real-time PDF processing in n8n without polling?
1- Use S3 like Cloudflare R2 (best option).
2- Use Dropbox, which has better API limits and webhooks.
3- If you want to keep Google, then vibecode an Apps Script in Google Cloud (free) and send the file to n8n whenever it is uploaded. i don’t like appscript because it’s slow but it’s free and can solve your problem.
If you will add a trigger event on any service it will work the same ‘inefficient’ so in your case i recommend just add a Form or Webhook as a trigger that gets a file for you in a way something like you added a file now just trigger the workflow , or use Form to upload your PDF and that would upload it on your drive’s folder and will generate the output for you, hope this helps!
Yes. If you need to keep using the Drive folder as the entry point, the only real optimization is to reduce how often you check it.
Instead of polling every 1 minute, increase it to something like every 5 or 10 minutes. This significantly reduces API calls and resource usage without changing your workflow logic.
You can also add a filter by creation or modification time and exit early when there are no new files, so the workflow does almost no work on empty runs.
Beyond that there isn’t much to reduce. Without native push events for your type of Drive, some level of polling will always be required.
Thank you a lot, I think dropbox is the better option but I’m still trying to implement it haha, is really hard, I get 5000 errors. Still, thank you so much
@Alvaroestoico Using Form instead of webhooks for some tasks cuts down almost 50% of your problems with its simplicity, and its better with these taking user files and inputs, if that helped you kindly mark that as a solution to let others know what is the right answer.
Happy to help!
If this solved your issue, please consider leaving a like or marking the reply as the solution (it helps others find the answer more easily and also supports community contributors.)