Blog & Help Center

How to import or export blog posts

How to import or export blog posts

In TeleportHQ, you bring posts in from a spreadsheet or another blog with the Import Posts button (the upload arrow) at the top of the Blog panel. A CSV or JSON file holds one post per row; a Markdown file is one post; a ZIP of Markdown files brings in a whole folder of articles with their pictures. You download all your posts with More → Export Posts, as CSV or JSON. The Help Center has the same buttons (Import Articles, Export Articles).

Before you start

Import posts from a CSV or JSON file

  1. In the left sidebar (the icon column), click Blog, or Help Center.
  2. At the top right of the panel, click the upload arrow (tooltip Import Posts, or Import Articles). A panel with an empty list also offers Import posts below Create Post.

    The top of the TeleportHQ Blog panel with 1 the Import Posts button and 2 the More button highlighted
  3. In the Import Blog Posts panel, click Format requirements & examples, then the CSV or JSON tab. The guide lists every column the import reads. Click the copy button next to the example to start your file from it.

    The TeleportHQ Import Blog Posts panel with the format guide open on its CSV tab
  4. In your file, fill at least the title of each post. The most useful columns:
    • status: draft (the default) or published. A published_at in the future schedules the post.
    • date or published_at: the date your site shows for the post, for example 2024-03-15.
    • created_at: keeps an imported archive in its original order.
    • content: the post's text, as HTML.
    • featured_image_url for the main picture, and gallery_images for a list of more pictures.
    • category: a category name. A name your blog doesn't have becomes a new top-level category.
    • sort_order: the post's place in your own order of the whole blog, 1 first, for Manual Order. Posts without one come after the posts that have one, newest first. See How to put posts or articles in your own order.
    • no_index, canonical_url, redirect_url, redirect_type: the post's SEO settings.
  5. Drop your .csv or .json file on the box ("Drop a .csv, .json, .md or .zip of Markdown files here"), or click it to choose the file.
  6. Read the check: "Found 24 valid posts ready to import", with any errors and warnings below it.
  7. Click Import followed by the number, for example Import 24 Posts. Wait until the progress reaches 100%.

Export your posts

  1. At the top right of the Blog panel, click More (the three dots).
  2. Click Export Posts (Export Articles in the Help Center).

    The TeleportHQ Blog panel's More menu with Export Posts highlighted
  3. In the Export Blog Posts window, under Choose format, pick CSV (Spreadsheet-compatible) or JSON (Developer-friendly).

    The TeleportHQ Export Blog Posts window with the CSV and JSON formats
  4. Click Export as CSV or Export as JSON. A file named blog-posts-export- followed by today's date downloads.

Check that it worked

  • After an import, a message says, for example, "Successfully imported 24 posts". If some rows couldn't be imported, the panel stays open and lists them; click Done to close it. Posts without a status in the file show in the panel with a Draft badge.
  • After an export, the message "Exported 24 posts as CSV" appears, and the file is in your downloads.

Troubleshooting

Imported posts don't appear on my site Posts without a status in the file are imported as Draft, and drafts aren't shown. Open each post and set Status to Published, or add a status column with published before importing. To publish many at once, see How to publish, move or delete several posts at once.

"File is too large. Maximum size is 10MB." CSV, JSON and Markdown files are limited to 10 MB (a ZIP to 250 MB). Split your posts into several smaller files and import them one by one.

"Please upload a .csv, .json, .md or .zip file" Only those files are accepted. Save your spreadsheet as CSV first.

"CSV file contains only a header row with no data" The file has column names but no posts. Add at least one row with a title.

"JSON must be an array of blog post objects" The file must start with [ and hold one { … } object per post. Compare it with the JSON example in the guide.

A warning says Unknown status, defaulting to "draft" The status in that row isn't one TeleportHQ knows. Use draft, published, scheduled or archived.

A row reads Unreadable publishedAt or Unreadable createdAt The date in that row couldn't be read, so it was left out. Write dates as 2024-03-15.

Export Posts shows a PRO label and opens an upgrade window Your workspace's trial or subscription has ended. Subscribe to export. See How to subscribe to Pro or Premium.

"No posts to export" The blog has no posts yet, so there is nothing to download.

Good to know

  • Import has no limit on the number of posts. Files with more than 500 posts can take a few minutes ("Large import detected.").
  • In a CSV or JSON import, a row whose slug another post already has gets a new address ending in -1, -2: it doesn't replace that post. To update posts in place, import them as Markdown. See How to import Markdown files into your blog or help center.
  • A date without a time is stored at noon (UTC), so the post shows the same day for visitors in almost every time zone.
  • In JSON, the same fields are written in camelCase (featuredImageUrl, readingTimeMinutes); the snake_case names work too.
  • Export includes posts of every status: draft, scheduled, published and archived. A JSON export imports back as it is.
  • On a site with several languages, import and export use one column per language and field, named with the language code, for example fr_title or es_content. A field left empty uses the main language. See How to translate blog posts.
  • Blog and Help Center use the same panel and the same file format. The window and the file still say "Blog Posts" when you export from the Help Center.
Share

Related Articles

How to import Markdown files into your blog or help center

In TeleportHQ, click the Import button in the Blog or Help Center panel and drop a Markdown file or a ZIP of Markdown files; folders become categories, front matter sets the title, date, order and more, pictures next to the files are uploaded, and you review a plan before anything is written.

How to write and publish a blog post

In TeleportHQ, open the Blog panel, click + (New Post), add a title and your content, keep the status on Published and click Create Post; published posts appear on your live site within seconds, and the same steps write Help Center articles.

How to put posts or articles in your own order

In TeleportHQ, click Reorder above the posts list in the Blog or Help Center panel and drag the posts into one order; the list page shows it as "Your order", category pages and Previous / Next follow it, and Manual Order in the settings switches it on and off.

How to translate blog posts

In TeleportHQ, a blog on a multilingual site shows a Content language tab for each language in every post, where you type the translated title, excerpt, text, tags and SEO text or fill the empty fields with AI; categories are translated in Manage Categories, and a field left empty shows the main language.

Why isn't my blog post showing on my site?

A TeleportHQ blog post or Help Center article only shows on your site when its status is Published and its pages have been published at least once; drafts, archived posts, CSV or JSON imports without a status, AI Assistant posts and posts or articles scheduled for later stay hidden.

What's the difference between Trial, Pro and Premium?

TeleportHQ has three plans. Trial is a free 7-day test of the whole product on 1 project, Pro is a paid plan for unlimited websites with private projects, a custom domain and code download, and Premium adds one included web app, more AI tokens, more storage and unlimited forms.