Can OpenAI in Make actually read PDFs directly (via file upload)?

:bullseye: What is your goal?

I’m trying to build a large-scale automation that processes 50+ insurance commission PDFs and lets OpenAI handle the entire accounting workflow:

:page_facing_up: Read all PDFs

:magnifying_glass_tilted_left: Extract every payment (date, amount, insurer, contract number)

:link: Match each payment with a customer from a Google Sheet

:hourglass_not_done: Ignore payments already marked as paid

:money_with_wings: Calculate commissions (50 percent per payment)

:bar_chart: Output a clean, structured final report

Goal: Do everything without PDF4me, since modern GPT models can read PDFs directly.

:thinking: What is the problem & what have you tried?

:white_check_mark: What I already built in Make:

Google Drive – Search for PDFs

Google Drive – Download

OpenAI – Upload file (all PDFs uploaded successfully :raising_hands:)

OpenAI – Create Completion (chat)
→ Passing all PDF file_ids
→ Passing the Google Sheet rows
→ Tested o4, o4-mini, gpt-5.1

:cross_mark: The unexpected problem:

Every model answers with:

“I cannot read or access the PDFs unless you provide the extracted text.”

So even though all files are uploaded in the same scenario,
the Chat Completion module seems completely blind to them.

Make’s OpenAI Chat Completion module might not support:

Assistant v2 workflows

File retrieval

File search

Direct PDF parsing through attached file IDs

ChatGPT on the website handles the PDFs perfectly —
but inside Make, the model acts like the files don’t exist.

I want to confirm whether this assumption is correct.

:clipboard: Error messages or input/output bundles

Example output:

“I cannot read PDF files directly unless you provide the extracted text.”

When I pass file IDs like:

FileID: {{19.array.id}}

The model ignores them completely.

No technical error — just refusal to read PDFs.

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

3 Likes

Hey Andre,

if you only want to extract info from the PDFs, then I suggest a dedicated PDF OCR app instead. Something like PDF.co for example. I specified tool will always be better than a generic AI.

2 Likes

Hey Stoyan, thank you for your reply. But I would really prefer to do it with some kind of AI.

AIs will hallucinate over a long enough period of time so make sure you keep a human in the loop and double check the data.

The generic create a competition prompt cant read PDFs, so you either need to send the file to Vision for OCR or you need to create a dedicated assistant to do it.

1 Like

Welcome to the Make community!

To do this, you can try using the DumplingAI “Extract data from PDF with AI” module —

Extract structured data from one or more PDF files with multimodal AI (10+ credits)

For more information about the “Extract data from PDF with AI” module and the DumplingAI app, see the DumplingAI official website and the Help Centre documentation.

@samliew
P.S.: investing some effort into the tutorials in the Make Academy will save you lots of time and frustration using Make!

1 Like

Thank you! Can you maybe recommend a good alternative which is a European company? This is important in my case, as it makes GDPR easier.

There’s also the Make AI Content Extractor. You don’t need to sign up for any other service - it’s billed through credits.

As it’s a built-in Make service, it’s covered by our standard privacy and GDPR obligations. And of course, Make (or rather our legal entity, Celonis) is a European company.

2 Likes

Hey everyone,
I noticed that when I manually use Gemini, I can upload around 10 PDFs and extract the data without any issues.

In Make, it’s a bit more complicated, so my idea is to extract the data for each PDF and store the results in Airtable after every run. In the end, I want to use the stored data to generate invoices.

Do you think this approach makes sense? Any tips or best practices for structuring this in Make?

You could easily process the 10 documents and write to Airtable, and then after that generate the invoices all within the same scenario.

One way to do that is to make use of Aggregators.

Combining Bundles Using Aggregators

Every result/item from some module types (like Trigger / Iterator / List / Search / Match modules) can potentially and likely output more than one bundle. These multiple bundles will individually run subsequent modules once per bundle, which is not optimal in most cases:

  • one operation per bundle per module, which could lead to…
  • use of multiple credits per bundle per module (some modules use more than one credit)
View example screenshots

Aggregator Example

The “Search Rows” module runs one time, returning 999 results (999 bundles).

  • Without Aggregator: the tools module run 999 times (999 operations)


    (and if there are more modules, they run 999 times each)

  • With Aggregator: the tools module only runs 1 time (1 operation)

:warning: Warning: :police_car_light:
This can easily use your entire quota of credits if you are not careful or fail to understand this concept.

To “combine” multiple bundles into a single variable, so that you can process all of the items in a single operation, you’ll need to use an aggregator. Aggregators is a type of module that accumulates bundles and outputs one bundle (unless you are using “Group By”). An example of a commonly-used aggregator module is the Array aggregator module.

You can find out more about some other aggregator modules here:

Question: Which is the best aggregator do you think you’ll need for your use-case?

Example

Here is an example of how your scenario could look like:
Screenshot 2026-01-06 114326
This is just an example. Your solution may or may not look like this depending on requirements and actual data.

I would suggest completing the Make Academy before jumping into building a complete scenario. If you need specific assistance when you are building a scenario it’s easier to help you then.

Here are some useful links and guides you can use to learn more on how to use the Make platform, apps, and app modules. I found these useful when I was learning Make, and hope they might benefit you too —

Learn Make

How-Tos

Useful to Know

My Custom AppAbsolutely Free!

Save development time and operation credits with these utility modules: Chunk Text; Chunk Array; Chunk Words; Multiple Find & Replace; Collection to Array/String List; Execute JavaScript; Estimate Tokens; Calculate Difference Between Two Dates; Get Next Business Day (with holidays); List Upcoming Dates of Day of Week; and more!

@samliew

1 Like