Herald

Importing what you have

Bring in Markdown, Word, PDF, HTML and CSV files, a zipped folder of them, or spreadsheets and decks for agents to download.

Updated

You probably have a lot of this written down already, scattered across docs and decks. Import in the sidebar turns those files into pages so you can start from what exists rather than a blank workspace.

Importing is for people who can edit the whole workspace. If you can only edit some folders, ask someone who can, or create pages in your folders by hand.

What you can import

File What happens
Markdown (.md, .markdown, .mdx) and .txt Each file becomes a page. Frontmatter can set its properties.
Word (.docx) Converted to Markdown, keeping headings, lists, tables and links. Embedded images are dropped.
HTML (.html, .htm) Converted to Markdown, like Word. Scripts and styles are stripped, but navigation and footers come through, so trim those afterwards.
PDF (.pdf) The text is extracted. Headings don't survive, so add them afterwards. Scanned PDFs need OCR first.
Zip (.zip) Unpacked. Each file inside is imported as above, and folders become folders.
CSV (.csv) A table, unless you choose one page per row or to keep it as a file. See below.
Excel (.xlsx) and PowerPoint (.pptx) Kept as the original file, attached to a new page, for agents to download. See Files agents download.

You can choose several files at once, and mix types. Leave Publish right away so agents can use them ticked if the files are ready to go; untick it to review everything as drafts first.

Where things land

Imported pages go in at the top level of the workspace. Folders inside a zip are recreated as folders (and merged into a folder of the same name if one already exists at that spot). If everything in a zip sits inside one top-level folder, that folder is skipped, so zipping up a folder called context doesn't give you a Context folder with everything else inside it.

After importing, use Move to… in the sidebar to put pages where you want them.

Titles and types

A page's title comes from, in order: the title in its frontmatter, its first # heading, or its file name (with dashes and underscores turned into spaces). If the first # heading is the same as the title, it's removed from the body, since the title already shows it.

If the frontmatter gives a type the workspace doesn't have yet, it's added to the list. If the frontmatter doesn't give one, a type is guessed from the title, but only from types the workspace already has: a file called competitors.md or battlecard-slotly.md becomes a competitor page if there's a competitor type, pricing.md a pricing page, brand-voice.md a voice page, and so on. A title containing "guardrails", "style guide" or "style rules" makes the page a rule. Check these after importing; the guesses are usually right, but not always.

Frontmatter

Markdown files can start with a block of frontmatter to set any page property:

---
title: Competitors
type: competitor        # added to the workspace's types if it's new
role: reference         # or "rule" to send it with every request
tags: [Avalara, BOFU]
pinned: false           # true to always include it
usage_note: Never disparage a competitor by name in published content.
---

Every field is optional. This is the easiest way to move a folder of prompt files or a Claude project's knowledge into a workspace with its structure intact.

CSV files

When you pick a CSV, you're asked how to import it:

A table. The default. The sheet becomes a table: a page with the sheet's columns and rows, edited in a grid. Each row is indexed on its own, so search finds the row, and agents can filter and sort the whole table with query_table or download it as a CSV. The title column (the first, unless you name another) names each row. Pick this for a price list, a list of accounts, a product catalogue: anything where every row has the same fields.

Keep the file for agents to download. The CSV is stored as-is and attached to a page, and agents fetch the original with get_file. Nothing inside it is searchable. Pick this for data an agent should process as a file rather than read.

One page per row. Each row becomes its own page, in a folder named after the file. The title column titles each page, and every other column becomes a ## section. This suits lists where each row is a thing in its own right with its own story, like competitors or case studies.

After importing a table, open it and write a short description above the grid: what's in it and when to use it. That's what gets it found for a task.

Limits

  • Up to 4 MB of files per import, not counting spreadsheets and decks kept as files.
  • Up to 500 pages per import.
  • A zip can unpack to at most 500 files or 20 MB of text.
  • Files kept for download can be up to 50 MB each.

If you hit a limit, split the import into a few smaller ones.

After an import

Imported documents rarely come out perfectly structured for agents. A few things are worth a pass:

  • Add headings to PDFs. They come in as plain paragraphs, which search treats as a few large sections.
  • Split long Word docs. A 40-page sales playbook works better as several pages, one per topic.
  • Remove the boilerplate. Cover pages, tables of contents, "Confidential, do not distribute" footers and revision histories all end up as text that search will happily return.
  • Check types and rules. Especially the guessed ones.
  • Look at How agents see this page on the biggest pages, and break up any section that's much larger than the rest.

Writing pages agents can use has more on all of this.