Planning and Troubleshooting: Bulk Import Activities from CSV into the Activity Bank

Planning and Troubleshooting: Bulk Import Activities from CSV into the Activity Bank

Use this article before preparing a CSV file for bulk activity import, or when troubleshooting a CSV import that did not work as expected.

The Bulk Import from CSV function allows authors to create activities in bulk and import them into the Activity Bank. The resulting activities are not automatically placed on pages. Once the Activity Bank is populated with activities, authors can place Activity Bank Selectors on practice and scored pages throughout the course project. Activity Bank Selectors choose activities based on selection criteria such as Objectives, Item Type, and Tags.

For step-by-step instructions, see:

  1. Bulk Import Activities from CSV
  2. Add Activities to a Page with Activity Bank Selectors

What is an Activity Bank?

The Activity Bank contains some or all of the activities that are used, or may be used, in a course project.

The Activity Bank is useful when activities need to be reused in different places, such as in a module quiz, unit test, or different quiz versions for different audiences. Activity Banks can also be used to create pools of questions so that students receive different questions or answer choices on different attempts.

Activity Banks are also useful when activities already exist outside of Torus, or when activities can be created more efficiently in bulk using a CSV file.

When to use bulk import

Bulk import is most useful when:
  • Activities already exist outside of Torus and can be converted to the CSV format.

  • Authors need to create many similar activities more efficiently than creating them one by one in the user interface.

  • Authors prefer drafting and editing activities in a spreadsheet before importing them into Torus.

  • Teams are collaborating on a large group of questions and need a structured format for review before import.

When not to use bulk import

Bulk import may not be the best choice when:

  • Only a small number of activities need to be created.
  • The activities require images, unless the author is prepared to add images manually after import.
  • The objectives and tags have not been planned yet.
  • The activities do not fit the CSV format.
  • The activities require complex formatting that is easier to create directly in Torus.
  • The author needs to create and test activities one at a time.

For a small number of activities, it may be faster to create the activities directly in Torus.

How imported activities are used

Activities imported by CSV are added to the Activity Bank. They are not automatically placed on a course page.

To use imported activities on a page, add the Bank content type to the page to create an Activity Bank Selector.


The Activity Bank Selector determines:

  • How many activities should be selected

  • The total number of points for each selected activity

  • How activities should be selected

  • Whether activities should be selected by criteria such as Learning Objectives, Item Type, or Tags

The point value set in the Activity Bank Selector overrides the point value set on the individual activity. For example, if an activity has a point value of 1, but the selector is set to 2 points per selected activity, the selected activity will be worth 2 points on that page.

Because selectors often rely on objectives and tags, it is important to plan how the activities will be selected before importing them. Objectives and tags should be set up carefully so the imported activities can be filtered and selected correctly.

Before you import

Before setting up the CSV import, review the following items:

  1. Learning Objectives
  2. Tags
  3. Images
  4. Activity titles
  5. CSV formatting
  6. Activity Bank Selector criteria

CSV format requirements

The sample CSV is available from Download Sample CSV in the Bulk Import Questions window and attached to this article. To open this window, go to Activity Bank, select Create New, and then select Bulk Import from CSV.


Each row in the CSV should represent one activity.

The CSV must use the expected column structure. Do not add extra columns, remove columns, or change the column headers.

Common columns include:

  • type: MCQ, CATA, ORDERING, NUMBER, TEXT, PARAGRAPH, MATH
  • title
  • objectives
  • tags
  • stem
  • choiceA
  • choiceB
  • choiceC
  • choiceD
  • choiceE
  • choiceF
  • answer
  • correct_feedback
  • incorrect_feedback
  • hint1
  • hint2
  • hint3
  • explanation

Some columns may be optional depending on the activity type, but the column headers should remain in the file.

Each activity row should follow the format required for its activity type. For example, multiple-choice activities should include answer choices and a valid answer value.

Requirements

The following items are required for a successful import.

Use the required CSV structure

The CSV must use the required column headers and column order from the sample CSV.

Do not:

  • Add extra columns
  • Remove expected columns
  • Leave required fields blank
  • Change column names
  • Shift content into the wrong column

Create learning objectives before importing

Learning objectives used in the CSV must already exist in the project under Objectives.

The import does not create new Learning Objectives. If the CSV includes learning objectives that do not already exist, the activities will not have the expected objective alignment or be selectable based on objectives.

Before importing:

  • Create all needed learning objectives under Objectives.
  • Make sure the learning objective names in the CSV exactly match the learning objective names in Torus.
  • Use brackets around learning objectives in the CSV.

Example:

[Identify accessibility barriers]

If multiple learning objectives are used, include each objective in brackets with a comma in between.

Example:

[Identify accessibility barriers],[Apply accessibility guidelines]

Create tags before importing

Tags used in the CSV must already exist in the project.

The import does not create new tags. If tags do not already exist, the activities will not have the expected tags. This can make the activities difficult to find and can prevent Activity Bank Selectors from selecting the intended activities by tag.

Before importing:

  • Create all needed tags.
  • Make sure the tag names in the CSV exactly match the existing tags.
  • Use brackets around tags in the CSV.
  • Commas separate multiple tags.

Example:

[accessibility],[image],[unit-2]

Use valid answer values

Answer values must match the answer choices for the activity.

For example, if the correct answer is B, the activity should include a populated choiceB field.

Avoid using answer-choice cells that contain only a value that can be interpreted as something other than text. For example, avoid using FALSE as the only text in an answer choice. Some systems interpret FALSE as a Boolean value instead of text, which can cause the import to fail.

Avoid standalone values such as:

TRUE
FALSE
NULL
None
NaN
N/A
0
1

Instead, use clearly textual answer choices.

Instead of:

FALSE

Use:

False.

Or:

False - this statement is not accurate.

Recommendations

The following recommendations are not always required, but they can make the import process easier to manage and troubleshoot.

Use unique titles

Use unique activity titles whenever possible.

Unique titles make it easier to:

  • Find activities after import
  • Troubleshoot import issues
  • Review Activity Bank contents
  • Analyze activity use and performance later from data downloads

A title can include the unit, quiz, topic, and item number.

Example:

Unit 2 Quiz - Accessibility Barriers 4

Plan for images before importing

Images cannot be imported directly through the CSV activity import.

If an activity requires an image, import the activity text first, then add the image manually after import.

Recommended image workflow:

  • Add a general [image] tag to any activity that requires an image.
  • Add a specific image-name tag, such as [map-image-1] or [screen-reader-example].
  • After import, use the image tags to find the activities that need images.
  • Open each activity and add the image manually.

This makes it easier to locate image-based activities after import.

Use Google Sheets or Excel

Use Google Sheets or Excel to prepare the CSV file.

Save the file as UTF-8 CSV when possible. This helps prevent punctuation and special characters from importing incorrectly.

Avoid opening and saving the file in programs that change CSV formatting unexpectedly. Some programs can add extra columns, change encoding, or modify characters in ways that prevent the import from working correctly.

Import in manageable chunks

For large imports, import activities in smaller batches, such as 50 activities or fewer.

Smaller imports are easier to review and troubleshoot. If an import fails, divide the CSV into smaller files to identify the row causing the issue.

For example:

  1. Split the file in half and try importing each half.
  2. If one half fails, split that half again.
  3. Continue narrowing the file until you identify the row causing the issue.

This is often faster than reviewing a large CSV line by line.

Test with a small import first

Before importing a large CSV, test the process with a small group of activities.

After the test import, confirm that:

  • Activities were created in the Activity Bank.
  • Titles imported correctly.
  • Objectives were assigned correctly.
  • Tags were assigned correctly.
  • Answer choices imported correctly.
  • Feedback, hints, and explanations imported correctly.
  • Special characters display correctly.
  • Activities with images can be located for manual image placement.

Known limitations and common import blockers

Images are not imported

CSV import creates the activity text and related activity data. It does not import image files. 

Activities that require images should be tagged before import so they can be found and updated after import.

New learning objectives and tags are not created

Learning objectives and tags are not created during CSV import. They must already exist and must exactly match the values in the CSV.

Special characters can import incorrectly

If punctuation imports as a question mark inside a black diamond, the file encoding is likely incorrect.

To prevent this issue:

  • Save the file as UTF-8 CSV.
  • Use Google Sheets or Excel to manage the file.
  • Check apostrophes, quotation marks, hyphens, dashes, and other special characters after import.

Standalone special values can stop the import

Standalone values such as FALSE can be interpreted as non-text values and cause the import to fail.

Use sentence-style answer choices instead of standalone Boolean or code-like values.

Troubleshooting checklist

If the CSV does not import as expected, check for:

  • Extra columns
  • Missing required fields
  • Changed column headers
  • Content shifted into the wrong column
  • Missing brackets around tags or learning objectives
  • Extra spaces before or after tags or objectives
  • Standalone special values such as FALSE

Authors can also use AI or another CSV-checking process to identify issues such as extra columns, trailing spaces, missing brackets, special values, special characters, non-matching learning objectives, or non-matching tags.

  1. Plan how the activities will be used in Activity Bank Selectors.
  2. Identify the objectives, tags, item types, and images needed for selection.
  3. Review the Activity Bank Selector criteria in the article on adding activities from the Activity Bank.
  4. Create all learning objectives under Objectives.
  5. Create an activity or activities with all tags needed for the import.
  6. Prepare the CSV file using the sample CSV as a guide.
  7. Check that objectives and tags in the CSV exactly match the existing objectives and tags.
  8. Save the CSV as UTF-8.
  9. Import a small test file first.
  10. Review the imported activities.
  11. Import the remaining activities in manageable chunks.
  12. Add any required images manually.
  13. Add Activity Bank Selectors to the pages where the activities should appear.
  14. Configure each selector by number of activities, points, and selection criteria.