> For the complete documentation index, see [llms.txt](https://oodlz-ai-studio.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://oodlz-ai-studio.gitbook.io/docs/inbound-agent/the-knowledge/knowledge-upload/any-document-format.md).

# Any Document Format

CSV, TXT, PDF, DOC, DOCX, and MD files supported — PDF auto-detected by MIME, structured CSV format for FAQ content, namespace routing by document type.

> **6 file formats, 1 upload form, automatic namespace routing.**

The upload form accepts the document formats brands actually have on hand: CSV, TXT, PDF, DOC, DOCX, and MD. PDFs are detected by MIME type and routed through PDF text extraction. Every other format goes through structured extraction. The document type dropdown determines which retrieval namespace the content lands in.

## How It Works

On submit, the pipeline checks the file's MIME type. PDFs go through PDF text extraction; everything else goes through CSV/structured extraction. The extracted text is normalised into a single field per chunk and passed to the embeddings model.

CSVs support a structured Q\&A format — each row with a question column and an answer column gets concatenated into a single embeddable chunk. FAQ content lifted directly from a spreadsheet uploads with no reformatting.

The document type dropdown — `faq`, `product`, `shipping`, `terms`, `company`, `other` — determines the destination namespace. Upload FAQ content and it returns only from the FAQ tool. Upload product specifications and they return only from the product namespace. Namespace isolation is automatic; the agent can't accidentally serve the wrong content type for a given query.

## What You Get

* 6 file formats accepted — covers every common document a brand keeps.
* PDF text extraction handled automatically — no separate PDF processing step.
* Structured CSV Q\&A support — bulk-load FAQ content from a spreadsheet without preprocessing.
* Document type dropdown enforces namespace routing — wrong type can't leak into the wrong tool.
