Skip to content
Open platform (opens in a new tab)

Import and export UGC

Import posts from another UGC platform with a CSV file, and export your posts as CSV or JSON.

Import the photos and videos you collected on another UGC platform or on social media with a CSV file, together with their creators, captions, labels, and product tags. Export your posts as CSV or JSON. Both run in the background.

Navigate to Settings → Import & export⁠ to import or export UGC.

SpecificationLimit
File type.csv, UTF-8
File size50 MiB
Rows100,000 per file
Columns200 per file
Photos and videos.jpg, .jpeg, .png, .webp, .mp4, .mov, .webm. 1 GB per file, videos up to 10 minutes
Carousel slides20 per row
Labels and products50 each per row, and 50 products per slide
Imports at a timeOne UGC import
Drafts and uploaded filesKept for 7 days

How importing UGC works

When you import UGC, Cevoid maps your file's columns and previews the first 30 rows. Once you start, it imports the valid rows in the background, with their photos and videos, creators, labels, and product tags.

Each row is one post, or one carousel. Imported posts land in your Inbox, unless their Status is approved: those go straight to your Library and show in every gallery, card, and email widget whose content they match. See Library & Inbox.

An import only adds posts. Posts already in your workspace stay as they are, and Cevoid skips the rows that match them: see Posts Cevoid skips. An import can't be undone: see Remove imported posts.

Import UGC from a CSV file

To see the columns Cevoid expects, click Download sample CSV in the import editor. Its rows show each kind of post, from a single photo to a carousel with products tagged on its slides.

Upload and map your file

  1. Navigate to Settings → Import & export⁠
  2. Click Import in the User-generated content row. The import editor opens.
  3. Select the Source platform your file was exported from
  4. Click Choose CSV and select your file. Cevoid analyzes it and maps the columns it recognizes.
  5. Select the column for Media URL or Carousel slides under Required mappings
  6. Select a column for each other field your file has, under Optional mappings
  7. Hover over the badge at the top of the preview to see its issues. It shows No issues, or how many issues and skipped rows the preview found.
  8. Optional: Click Save draft to finish later

Import preview shows your rows as Cevoid will import them, and Source CSV as they are in your file.

Start the import

  1. Navigate to Settings → Import & export⁠ and open the import draft under Activity
  2. Click Start import
  3. Select I understand these posts land in the inbox unless the file says otherwise, and confirm this import
  4. Click Start import. The import's progress opens.

Invalid rows aren't imported, and the error report lists them. Only the team member who created an import can change, start, or stop it.

Source platforms

The source platform is the tool your file was exported from. It's saved with the import, and it decides the Content source of rows that leave it empty.

Source platformWhat it changes
Instagram exportRows without a Content source are Instagram posts
TikTok exportRows without a Content source are TikTok posts
CevoidFor files exported from Cevoid. Rows without a Content source are other
Generic CSV, Bazaarvoice Curalate, Flowbox, Olapic, Pixlee (Emplifi)Rows without a Content source are other

Whatever the platform, Cevoid maps a column on its own only when its heading is one of the template's, such as media_url. Headings match in any case, and a space or a hyphen counts as an underscore, so Media URL matches media_url. Map the other columns by hand.

CSV columns

Map each field to one column of your file. Only Media URL or Carousel slides is required: you can leave every other field unmapped, or its cells empty. Fields with set values, such as Status, take only the values below, in any case. Separate several labels or products with |, as in kitchen | customer-photo.

FieldHeadingWhat it holds
Content sourcecontent_sourceWhere the post comes from: instagram, tiktok, facebook, upload, or other. Empty: set by the source platform
Media typemedia_typeimage, video, or carousel_album, which needs Carousel slides. Cevoid reads each file's type from the file
Media URLmedia_urlThe photo or video's public URL. Required unless you map Carousel slides
Source post IDsource_post_idThe post's ID on your previous platform. Lets Cevoid recognize the post if you import it again
Posted atposted_atWhen the post was published: 2026-03-12, or a date and time with a time zone, such as 2026-03-12T09:30:00Z. Empty: the day of the import
Original post linksource_urlThe post's link on the network, such as its Instagram link
Carousel slideschildrenA carousel's slides, as a JSON list. See Carousels
CaptioncaptionThe post's caption
Creator handleauthor_handleThe creator's Instagram handle, with or without @. See Creators and profiles
Creator nameauthor_nameThe creator's name, for a new profile
Own content (added by the brand)own_contenttrue or false, yes or no, y or n, 1 or 0. true marks your brand's own posts. Empty means no
Statusstatusapproved for your Library, or pending for your Inbox. Empty: pending
LabelslabelsPost label names, matched to your labels by exact name. Cevoid creates the ones you don't have yet, and leaves out names over 100 characters
Product identifier typeproduct_identifierHow the row names its products: id, sku, gtin, mpn, or url. Required when the row tags products
Tagged productsproductsThe products to tag. Leave it empty on a carousel, which tags products on each slide
ClapsclapsHow many claps the post has, as a whole number. Empty: 0

How Cevoid matches products

Cevoid matches each product in Tagged products, or on a slide, to your synced catalog, by the row's Product identifier type:

  • id: the product's ID on your ecommerce platform, such as the Shopify product ID
  • sku or mpn: the product's SKU or MPN
  • gtin: the product's GTIN or barcode
  • url: the product page's full URL

Values must match exactly, including case. A product that matches nothing, or more than one product, isn't tagged. The post is still imported, and the error report lists the product.

Photos and videos

Cevoid downloads each photo and video and keeps its own copy. The URLs must be public, and Cevoid doesn't follow redirects. A row whose photo or video can't be downloaded isn't imported, and the error report lists it.

Carousels

A carousel is one row, with its slides in Carousel slides: a JSON list of up to 20 slides, in their order. Each slide has a media_url, and can have a media_type (image or video) and products, a JSON list of the products on that slide:

[
  { "media_type": "image", "media_url": "https://example.com/posts/8-1.jpg", "products": ["6411923672450"] },
  { "media_type": "video", "media_url": "https://example.com/posts/8-2.mp4" }
]

Cevoid imports each slide as its own post, as with Instagram carousels. The slides share the row's caption, creator, labels, and status.

  • Products: Tag them on each slide, in the row's Product identifier type. A carousel row with Tagged products isn't imported.
  • The first slide: If its file can't be downloaded, the row isn't imported. Another slide that can't be downloaded is left out, and the rest of the carousel is imported.
  • Media URL: Can stay empty on a carousel. If it's set and isn't one of the slides, Cevoid ignores it.

Creators and profiles

Creator handle links each post to the profile with that Instagram handle. If no profile has it, Cevoid creates one with the handle, named after Creator name, or after the handle when the row has no name.

Rows with Own content (added by the brand) set to true are your brand's own posts, such as posts from your own feed or in-house photos. Cevoid credits them to your workspace, as it does your own uploads, and links no profile, whatever Creator handle says.

A post with no Creator handle that isn't your brand's own has no profile. Once approved, it's listed under Unassigned.

Follow an import

An import's progress opens when you start it. To find it again, open it under Activity on Settings → Import & export⁠. While a UGC import runs, its badge shows Validating posts, Importing posts and media, and then Finishing import. Every status an import can have is in Run statuses.

The import's details count the posts it Created, one per slide of a carousel, the rows it Skipped, and the photos and videos it imported or couldn't.

Click View posts in the import to see its posts: in the Inbox while any of them are there, otherwise in the Library.

Stop import ends a running import, and the posts it already imported stay. See Stop an import.

Error report

The error report lists what an import skipped or couldn't bring in. Download it for 7 days with Download error report in the import, or in its ... menu under Activity.

  • The file, ugc-import-report.csv, has the columns row, column, code, and reason
  • It lists the rows that failed, the rows Cevoid skipped, and what it left out of imported posts: product tags it couldn't match, labels over 100 characters, and slides it couldn't download
  • Row numbers count the header as row 1, so your first post is row 2

Posts Cevoid skips

An import never changes a post that's already in your workspace. Cevoid skips a row, and lists it in the error report, when:

  • An earlier row in the file has the same Source post ID, or the same first photo or video
  • A post with the same Source post ID was imported before
  • An earlier import brought in the same first photo or video
  • A post in your workspace has the same Original post link, such as a post synced from Instagram
  • The row is an Instagram post, and its Source post ID is the ID of an Instagram post already in your workspace

The first photo or video is the Media URL, or a carousel's first slide. Skipped rows count as Skipped, not as errors.

What imported posts do

Imported posts work like other posts, except here:

AreaImported posts
Library and InboxHave the source Imported. The Import filter lists each import by file name and date. See Filter posts
GalleriesThe content source Imported adds posts from your imports to a custom gallery
Posted datePosted at from your file, or the day of the import. The Posted at filter and an export's Date range use it
Product tagsHave no hotspots. To add one, see Add hotspots

Remove imported posts

A UGC import can't be undone. To remove the posts one import added, filter your Library and Inbox by Import, select the posts, and archive them with the Archive bulk action. Cevoid deletes archived posts permanently 30 days after they're archived, and you can restore them until then. Profiles the import created stay.

Export UGC

Export your posts to keep a copy or move them to another tool. The file includes creators' handles and names. The export editor shows how many posts match, and a preview of the file's first 30 rows.

  1. Navigate to Settings → Import & export⁠
  2. Click Export in the User-generated content row
  3. Select a Format: CSV or JSON
  4. Optional: Set the Date range. It filters posts by the date they were posted.
  5. Click Start export
  6. Select I confirm I am authorized to export creator personal information
  7. Click Start export again

When the file is ready, Cevoid emails you a link. Click Download export in the export, or in its ... menu under Activity. The download expires after 7 days.

Each post is one row, and a carousel is one row with its slides in children. An export covers all time by default.

  • CSV: The template's columns, so the file can be imported into Cevoid again with the source platform Cevoid. Four more columns follow them, which an import ignores: cevoid_post_id, created_at, views, and clicks.
  • JSON: The same details, with carousel slides and products nested

In both formats, each media URL links to Cevoid's copy of the file, and products are listed by their ID on your ecommerce platform, with the identifier type id.