I’ve struggled for quite a while to get this working properly.
For a long time we relied on Azure Functions as a workaround to handle file transfers between Zoho Creator and OpenAI Vector Stores. It worked, but added unnecessary infrastructure and complexity.
After a lot of trial and error, I finally got a fully working, direct solution using:
Zoho Creator invokeurl
Creator file download API
OpenAI Files API
OpenAI Vector Store API
No external middleware required.
Below is the working function.
For this to work, you need:
A Zoho Creator OAuth connection
Must have permission to download files from your app.
Used in the invokeurl download call.
Example link name: "zohocreator"
An OpenAI API Key connection
Connection type: API Key
Header:
Authorization = Bearer <your_openai_key>
Example link name: "openai_connection"
Correct region
Adjust creator.zoho.eu if you are using .com, .in, etc.
Correct report link name
The report must expose the File Upload field.
Use actualname
Zoho prepends a unique ID to uploaded files.
Use:
filename = input.File_upload.actualname;
This removes the internal prefix and ensures the correct file extension (e.g. .pdf) is preserved.
Without this, OpenAI may receive the file as "content" and reject it with File type not supported.