{
"type": "object",
"properties": {
"workflow_id": {
"type": "string",
"description": "The workflow ID, e.g. workflow_abc123"
},
"file_name": {
"type": "string",
"description": "File name with extension, e.g. leads.csv or leads.xlsx. Required with file_text/file_base64; taken from the upload otherwise."
},
"file_text": {
"type": "string",
"description": "Only for rows the user TYPED into the conversation, or a small CSV/text file (under ~50 KB) you were given as a path and can read. Plain text, header row first. Not for a file the user attached in the chat: pass that as `file`."
},
"file_base64": {
"type": "string",
"description": "Only for a small .xlsx (under ~50 KB) given to you as a path on disk. NEVER base64-encode a file the user attached in the chat (pass it as `file`) and never encode anything larger (use create_upload_url)."
},
"upload_id": {
"type": "string",
"description": "Only for a file on a disk YOU control that is too large for file_text (over ~50 KB): call create_upload_url with reveal_url: true, PUT the bytes yourself from a machine with open internet access, then pass the upload_id here. Never for a file the user attached in the chat (pass it as `file`), and never from a hosted chat sandbox such as ChatGPT code interpreter, which cannot reach the storage host."
},
"file": {
"type": "object",
"properties": {
"file_id": {
"type": "string",
"description": "Host-side file id"
},
"download_url": {
"type": "string",
"description": "Short-lived signed URL the host provides for the attached file"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"size": {
"type": "number"
}
},
"required": [
"file_id",
"download_url"
],
"additionalProperties": false,
"description": "ALWAYS use this when the user attached a file in the chat: pass the attached file here and the host turns it into a download link for the server. Fastest path, any size. NEVER open, convert or base64-encode an attached file yourself."
},
"tags": {
"type": "string",
"description": "Optional tags applied to every lead in this upload, comma-separated, e.g. \"priority,q3-campaign\". Normalised to lowercase."
}
},
"required": [
"workflow_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}