Skip to main content
Skip table of contents

Manage data ingestion

This page contains documentation for both the redesigned Ingestion tool within the Admin portal and the legacy Bulk Upload tool within the Library portal

Overview

ContentNav supports multiple ingestion methods, including CSV upload, Thin Common Cartridge (ThinCC), and API integration. This allows flexibility in how content is added to catalogs.

Administrators can:

  • Create content catalogs to group learning materials by content area, grade level, or any preferred classification.

  • Upload content in bulk using standardized CSV templates or industry-supported formats like Thin Common Cartridge.

  • Use secure APIs for scalable, automated ingestion and integration with other systems.

  • Download sample templates to ensure proper formatting and data validation.

Each content material is assigned a unique ID and can be enriched with metadata, ensuring discoverability and alignment with curriculum standards. Monitoring tools are also built-in to track ingestion status, identify errors, and confirm successful uploads.

Ingestion Tool

This section guides you through the redesigned Ingestion tool within the Admin portal.

After ingestion, it may take a few minutes to a couple of hours for the content to appear on the search page, depending on the volume of materials submitted.

Create content

You can create content within ContentNav through the Admin portal by uploading via CSV, ThinCC, or API. Refer to the section titled Upload content for more information.

Generate partner access token

A partner is created within ContentNav as part of the tenant onboarding process. Administrators can generate partner authentication tokens.

To generate a partner access token:

  1. Log in to the Admin portal.

  2. Click Partner Registry.

  3. Select the Partner.

  4. From the Technical tenant details section, click Generate Details to generate a Client ID and Secret code.

  5. Enter the API documentation URL in a new tab.

  6. Enter the Client ID and Secret code.

  7. Click Execute to generate the access token.

Download templates

To make uploading easier and error-free, ContentNav provides downloadable templates for both CSV and Thin Common Cartridge formats.

To download:

  1. Log in to the Admin portal.

  2. Click Ingestion Tool.

  3. Click Download Templates, and then select from:

    • CSV ingestion template

    • Sample thin common cartridge file

Save the file to your local device to use it as a starting point for uploading content.

CSV templates

CSV templates help you structure your content metadata correctly for ingestion and include the following mandatory fields:

  • UniqueId

  • ResourceFormat: Acceptable values are video_resource, webpage_resource, interactive_resource, image_resource, text_resource, audio_resource, file_download, instructional_strategy, lesson_plan, presentation, or html_resource.

  • Title

  • Description

  • URL

  • Operation

Use Excel or Google Sheets to fill the template, then export it as a .csv before uploading. Refer to Upload using CSV for more information.

Thin Common Cartridge template

A sample ThinCC file in .imscc format is available for users unfamiliar with packaging their content and includes the following:

  • A valid imsmanifest.xml file 

  • LTI links or web links as materials 

  • Metadata aligned with supported taxonomies (e.g., grade, subject, standards) 

Use the sample as a reference to create your cartridges.

Refer to Upload using Thin Common Cartridge for more information.

Upload content

Upload using CSV

You can upload multiple digital learning materials into ContentNav using a CSV file. This method is ideal for bulk uploads when managing large libraries of content, especially if metadata such as title, subject, grade, and standards are pre-organized in a spreadsheet.

The maximum number of materials per CSV for ingestion is 100k.

The following fields must be included in your CSV:

  • UniqueId

  • ResourceFormat: Acceptable values are video_resource, webpage_resource, interactive_resource, image_resource, text_resource, audio_resource, file_download, instructional_strategy, lesson_plan, presentation, or html_resource.

  • Title

  • Description

  • URL

  • Operation

You can upload the CSV file in two ways:

  • Catalog registry

  • Ingestion tool

To upload through the Catalog registry:

  1. From the menu, click Catalog Registry.

  2. Click the ellipsis (⋮) icon for the catalog, then select “Upload CSV.” A modal appears.

  3. Drag and drop the CSV file or click browse to upload.

  4. Click Upload.

image-20250606-131437.png

Upload a CSV through the Catalog Registry

To upload through the Ingestion tool:

  1. From the menu, click Ingestion Tool.

  2. Click Upload and select CSV. A modal appears.

  3. Select Catalog to choose the destination catalog.

  4. Drag and drop the CSV file or click to add.

  5. Click Upload.

image-20250609-093614.png

Upload a CSV through the Ingestion tool

You will receive a confirmation message once the content has been successfully processed.

To monitor the status of your CSV ingestion:

  1. From the menu, click Ingestion Tool.

  2. Monitor the progress of specific uploads in the Status field of the CSV file.

    • The Status field in the CSV List indicates the status of your CSV ingestion.

    • Use the Search bar to search for a specific file.

    • Click Processed Count or Error Count for details of uploaded material and details for each material’s ID.

    • Click Filters to narrow the list by Uploaded date range and Catalog.

  3. Click Refresh to view the updated status.

Upload using Thin Common Cartridge

ContentNAV supports the ingestion of learning materials using the IMS Thin Common Cartridge (ThinCC) 1.3 format. This enables the streamlined integration of external learning materials via LTI links and metadata, eliminating the need to upload full content packages. 

The Thin Common Cartridge (ThinCC) is a lightweight packaging format defined by 1EdTech (formerly IMS Global). It contains metadata and links (typically LTI launch URLs) to external learning tools, enabling seamless integration into platforms like ContentNAV. 

Prerequisite for ingestion

A Unique ID is mandatory for every resource uploaded.

When uploading content using ThinCC, each resource must include a Unique ID to ensure successful ingestion and accurate tracking within the system.

Upload location

For each resource in your ThinCC package, the Unique ID must be included in the resource metadata tag, within the <lomr:identifier> element of the manifest file.

Sample format
CODE
<resource identifier="RESOURCE_LTI_02" type="imsbasiclti_xmlv1p3">
  <metadata>
    <lomr:lom>
      <lomr:general>
        <lomr:identifier>
          <lomr:entry>Unique ID</lomr:entry>
        </lomr:identifier>
      </lomr:general>
    </lomr:lom>
  </metadata>
</resource>
  • The <lomr:entry> field must contain the Unique ID.

  • The Unique ID should be unique within your organization (school district or publisher account) to avoid conflicts during ingestion.

  • The Unique ID can be any value you choose, as long as it is unique within your organization. Some examples are:

    • math-content-grade5-lesson01

    • ENG-2025-ModuleA-Resource3

    • 123e4567-e89b-12d3-a456-426614174000 (UUID format if preferred)

To upload using ThinCC:

Ensure your .imscc ThinCC file meets the prerequisite format.

  1. From the menu, click Ingestion Tool.

  2. Click Thin common cartridge 1.3.

  3. Click Upload, and select Thin common cartridge 1.3. A modal appears.

  4. Select the catalog you want to upload to. LTI catalogs are prefixed .lti.

  5. Drag and drop or browse to select the .imscc file.

  6. Click Upload.

image-20250609-102804.png

Upload data using ThinCC

To monitor the status of a ThinCC ingestion:

  1. Click Ingestion Tool.

  2. Click Thin Common Cartridge 1.3.

  3. Monitor the progress of specific uploads in the Status field.

    • The Status field in the Thin common cartridge list indicates the status of your data ingestion.

    • Use the Search bar to search for a specific file.

    • Click Processed Count or Error Count for details of uploaded materials and details for each material’s ID.

    • Click Filters to narrow the list by Uploaded date range and Catalog.

  4. Click Refresh to view the updated status.

Upload using API

ContentNav also supports programmatic uploads using secure APIs. This is ideal for automated content publishing from other platforms or internal content systems.

Contact your PowerSchool representative to establish your API connection and begin uploading content via API.

The maximum allowed materials per API request is 100.

To access a list of API request uploads:

  1. From the menu, click Ingestion Tool.

  2. Click API.

The Request upload date lists the timestamp of the upload.

Required fields

Field

Type

Example

Required for

Id

UUID

652b9d9e-14e3-11ee-be56-0242aac120002

All

operation

string

insert, update, or delete

All

title

string

Title of content

Insert, Update

description

string

Description of content

Insert, Update

url

string

https://en.wikipedia.org/wiki/Test

Insert, Update

contentFormat

string

webpage_resource, etc.

Insert, Update

productId

integer

123

All

Optional Fields

Optional API fields

Field

Type

Example

Used for

metadata

JSON

        "audience": [ 

          "All Students" 

        ], 

        "depth_of_knowledge": [ 

          "Level 1: Recall" 

        ], 

        "application": [ 

          "General Use" 

        ], 

        "esol": [ 

          "Level 1" 

        ], 

        "curriculum": [ 

          "Mathematics" 

        ], 

        "grade": [ 

          "1" 

        ], 

        "content_area": [ 

          "Mathematics" 

        ] 

      } 

Insert, Update

thumbnail

string

https://example.com/thumbnail.jpg

Insert, Update

openNewTab

boolean

false

Insert, Update

aboutURL

string

https://example.com/about 

Insert, Update

language

string

English

Insert, Update

copyrightOwner

string

TestAuthor

Insert, Update

keywords

array

[“PS”]

Insert, Update

standardUids

array of UUIDs

 [ "82c7e81b-62f8-4e0f-b81d-e96830e993b1"] 

Insert, Update

LtiCustomParams

JSON

        "launchingFrom": "string", 

        "isLtiTool": "string" 

      } 

Insert, Update

To monitor the status of an API ingestion:

  1. Click Ingestion Tool.

  2. Click API.

  3. Monitor the progress of specific uploads in the Status field.

    • The Status field in the API List indicates the status of your API ingestion.

    • Click Processed Count or Error Count for details of uploaded materials and details for each material’s ID.

    • Click Filters to narrow the list by Uploaded date range. To reset, click Clear All.

  4. Click Refresh to view the updated status.

Manage data (Legacy system)

This section provides information on managing data ingestion within the legacy Library portal.

Download a sample CSV

You can download a sample CSV file from the Bulk Upload page.

To download and access the sample file:

  1. Log in to the Library portal.

  2. Click Catalog.

  3. From the ContentNav Catalog dropdown, click My Content.

  4. Click the Create menu and select Bulk Upload.

  5. From the Upload List, click Download Ingestion Template.

Upload files via CSV

You can add content to the Library through a CSV upload. You can upload one file or upload several in a bulk upload.

To upload content via CSV files:

  1. Log in to the Library portal.

  2. Click Catalog.

  3. From the ContentNav Catalog dropdown, click My Content.

  4. Click the Create menu and select Bulk Upload.

  5. Click Browse.

  6. Select the appropriate CSV file on your device.

  7. Click Upload.

Required fields

The following fields are required for ingesting content via CSV upload:

  • UniqueId

  • ResourceFormat: Can be video_resource, webpage_resource, interactive_resource, image_resource, text_resource, or audio_resource.

  • Title

  • Description

  • Url

  • Operation

  • isCurated

  • ProductId

You can also access a list of previous uploads from the Bulk Upload page.

Each previous upload will display the:

  • File Name

  • Uploaded Date

  • Material Count

  • Processed Count

  • Error Count

  • Status

Click on the Error Count cell to access a list of reasons why an upload failed.

Monitor the status of CSV ingestion

After you upload a CSV file, or multiple files, you can monitor the status of the job from the Bulk Upload page.

To access this list:

  1. Log in to the Library portal.

  2. Click Catalog.

  3. From the ContentNav Catalog dropdown, click My Content.

  4. Click the Create menu and select Bulk Upload.

    • The Status field in the CSV List indicates the status of your CSV ingestion.

    • Use the Search bar to search for a specific file.

    • Click Processed Count or Error Count for details of uploaded materials and details for each material’s ID.

  5. Click Refresh to view the updated status.

API content ingestion

Contact your PowerSchool representative to establish your API connection and begin uploading content via API.

To access a list of API request uploads:

  1. Log in to the Library portal.

  2. Click Catalog.

  3. From the ContentNav Catalog dropdown, click My Content.

  4. Click the Create menu and select API. You can view requests by Requested Uploaded date.

  5. Click Refresh to view updated status.

There is no limit on the number of API calls that can be made in one day.

Required API fields

The following fields are required when making a content ingestion API call:

Field

Supported Value

Example

Id

UUID

652b9d9e-14e3-11ee-be56-0242aac120002

operation

insert

update

delete

insert

title

String

Title of Content

description

String

Description of Content

url

String

https://en.wikipedia.org/wiki/Test

contentFormat

String

webpage_resource

productid

Integer

123

isCurated

Boolean

true

  • The Id must be a unique UUID for that tenant.

  • contentFormat values can be video_resource, webpage_resource, interactive_resource, image_resource, text_resource, audio_resource, html_resource, file_download, lesson_plan, instructional_strategy, or presentation.

  • webpage_resource can be used for Microsoft Word, PDF, PowerPoint, XLS, etc. files if they are hosted as a URL.

  • isCurated should be marked as 'false.’

The ProductId associates content with the corresponding catalog. You can find the ProductId in the Admin Portal. Navigate to the Learning Registry tab and select Catalog Registry. The Product Id is displayed in the first column.

Monitor the status of API ingestion

After you upload an API file, or multiple files, you can monitor the status of the job from the Request API List page.

To access this list:

  1. Log in to the Library portal.

  2. Click Catalog.

  3. From the ContentNav Catalog dropdown, click My Content.

  4. Click the Create menu and select Bulk Upload.

  5. Select Thin Common Cartridge 1.3.

    • The Status field in the CSV List indicates the status of your API ingestion.

    • Use the Search bar to search for a specific file.

    • Click Processed Count or Error Count for details of uploaded materials and details for each material’s ID.

  6. Click Refresh to view the updated status.

Create a content catalog

Administrators can create one or more content catalogs. Catalogs are groupings of content that administrators manage from the Content Registry.

  1. Log in to the Admin portal.

  2. Click Catalog Registry, and click Create catalog.

  3. In the Catalog registry, provide the following catalog details:

    • Name

    • Logo

    • Partner Name

    • Description

    • Website

    • Content Access

  4. Select PS (PowerSchool) users can move content from My Content to this catalog, if applicable.

  5. Select Catalog content can be used for PowerBuddy for Learning, if applicable.

  6. In the Additional details, select the Content Areas.

  7. Select Grade Level.

  8. Select Audience.

  9. Click Save.

Your saved content material will be assigned a Product ID, which is essential for the content ingestion process when uploading via CSV or API.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.