Content types and limits
Which file types GuruSup Brain accepts, the size and archive limits, and what each connector brings in.
This page lists what GuruSup Brain accepts and the limits you can hit. For the steps, see Upload content and Send data with a webhook.
Accepted file types
| Type | Upload files | Add data on a webhook source |
|---|---|---|
Word (.docx) | Yes | No |
PowerPoint (.pptx) | Yes | No |
Excel (.xlsx) | Yes | No |
PDF (.pdf) | Yes | Yes |
Markdown (.md, .markdown) | Yes | Yes |
Plain text (.txt) | Yes | Yes |
CSV (.csv) | Yes | Yes |
JSON (.json) | Yes | Yes |
ZIP archive (.zip) | Yes | Yes |
TAR.GZ archive (.tar.gz, .tgz) | Yes | No |
Upload files is the dialog on Sources. During setup and on Home, Drop files opens a side panel called Upload documents with the same file types. Add data is under Manage on a webhook source: it opens the Send files to dialog. The two accept different lists, so an Office file you can upload cannot be sent with Add data.
Text files must be saved as UTF-8. JSON files must be valid JSON.
Limits
| Limit | Upload files | Add data on a webhook source |
|---|---|---|
| File size | 256 MiB (268,435,456 bytes) per file | 25 MiB (26,214,400 bytes) in total for all files in one send. Brain says "Upload exceeds the 25 MiB (26,214,400 bytes) combined limit. Choose fewer or smaller files." |
| Number of files | Files are prepared one at a time | 1000 files in one send |
| Archive nesting | 4 levels of archive inside archive | 4 levels |
| Entries in the archives | 100,000 | 100,000 |
| Expanded size, all files together | 1 GiB | 1 GiB |
| Expanded size, one file | 64 MiB | 64 MiB |
| Compression ratio of an archive | 200 to 1 | 200 to 1 |
| Path depth inside an archive | 32 folders | 32 folders |
| Length of a file name or path | 1024 bytes | 1024 bytes |
A file over the size limit is refused with "Upload exceeds the 256 MiB limit. Choose a smaller file."
Messages you may see
| Message | What to do |
|---|---|
| "At most 1000 files may be uploaded." | Send fewer files at a time (webhook Add data). |
| "These files are larger than the upload limit. Upload fewer or smaller files." | Send fewer or smaller files. |
| "The upload exceeds the nested archive depth limit." | Flatten the archive. |
| "The uploaded archives exceed the entry count limit." | Split the archive. |
| "A file exceeds the expanded size limit." or "The uploaded files exceed the total expanded size limit." | Split the archive, or remove very large files from it. |
| "An archive entry exceeds the compression ratio limit." or "An archive exceeds the compression ratio limit." | Re-create the archive without the highly compressed file. |
| "This archive has password-protected files. Remove the password and upload it again." | Remove the password. |
| "name is password-protected. Remove the password and upload it again." | Remove the password from the PDF. |
| "name can't be opened as a ZIP archive. Re-create it and upload it again." (also for TAR.GZ) | Create the archive again. |
| "name isn't saved as UTF-8 text. Save it as UTF-8 and upload it again." | Re-save the file as UTF-8. |
| "name can't be read as JSON. Check its syntax and upload it again." | Fix the JSON. |
| "name can't be read as a PDF. Check that it opens, then upload it again." | Check the PDF opens, then try again. |
| "name contains formulas without saved results. Recalculate and save the workbook before uploading." | Open the workbook, let it recalculate, save it, and upload again. |
| "The upload contains an unsafe archive symlink." or "unsafe archive link" | Remove links from the archive. |
| "Brain can't read PDF files right now. This is on our side. Contact support and we'll sort it out." (also for Office files) | Contact support. |
Other upload messages, such as "Upload selection was rejected" and "Upload service is temporarily unavailable", are in Connector troubleshooting.
What Brain skips
Inside an upload, Brain lists anything it cannot use as Unsupported, with a reason, and does not count it. The rest of the upload still goes through.
| Reason shown | Meaning |
|---|---|
| "Unsupported file format." | The file type is not on the list above. This includes images and other binary files inside an archive. |
| "PDF contains no extractable text." | The PDF has no text layer, for example a scan. Brain does not read the picture. |
| "Document contains no extractable text." | A Word, PowerPoint or Excel file with nothing to read. |
Brain also ignores the hidden metadata files that macOS adds to archives. The upload dialog only offers the file types above, so an image is not offered in the file picker.
If two entries in your selection share the same path, Brain lists the colliding paths and turns Confirm upload off until you remove one.
What each source brings in
| Source | What Brain reads | Name on Sources |
|---|---|---|
| Slack | New messages in the channels the app has joined. Each channel becomes its own source. Earlier history, direct messages and channels the app has not joined are not read. | Slack #channel-name, for example Slack #sales. A group message is named Slack followed by its members. The account connection is named Slack: account name. |
| Notion | The pages you share, and changes to them. In setup, Brain imports the pages it can reach. Later you choose pages under Choose content, or upload a Notion export: Markdown & CSV, with Include subpages, as the ZIP Notion gave you. | Notion: account name |
| HubSpot | Deals, with their linked contacts and activity. In setup, Brain imports deals that are not archived. Later you choose deals under Choose content. | HubSpot: account name |
| Webhook | The JSON object your tool sends to the URL, when it sends it. Files sent with Add data become one document each, named after the file path. | The App name you chose |
| Uploaded files | Each file once, with no ongoing sync. Files inside an archive become one document each. | Local Uploads |
If a Notion or HubSpot account has no name, the source is just Notion or HubSpot.
Webhook payloads
Send a POST request with a JSON object as the body. Arrays and other JSON values are rejected. No field is required. If ingestion is paused for your organization, Brain accepts the request and answers that it was ignored, but does not store the data.
Names you may also see on Ingest, in the source filter, are Manual knowledge (knowledge saved through an assistant) and Human answer (replies from colleagues).