Use this article before preparing a CSV file for bulk activity import, or when troubleshooting a CSV import that did not work as expected.
For step-by-step instructions, see:
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.
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.
Bulk import may not be the best choice when:
For a small number of activities, it may be faster to create the activities directly in Torus.
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 setting up the CSV import, review the following items:
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, MATHtitleobjectivestagsstemchoiceAchoiceBchoiceCchoiceDchoiceEchoiceFanswercorrect_feedbackincorrect_feedbackhint1hint2hint3explanationSome 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.
The following items are required for a successful import.
The CSV must use the required column headers and column order from the sample CSV.
Do not:
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:
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]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:
Example:
[accessibility],[image],[unit-2]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
1Instead, use clearly textual answer choices.
Instead of:
FALSEUse:
False.Or:
False - this statement is not accurate.The following recommendations are not always required, but they can make the import process easier to manage and troubleshoot.
Use unique activity titles whenever possible.
Unique titles make it easier to:
A title can include the unit, quiz, topic, and item number.
Example:
Unit 2 Quiz - Accessibility Barriers 4Images 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:
[image] tag to any activity that requires an image.[map-image-1] or [screen-reader-example].This makes it easier to locate image-based activities after import.
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.
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:
This is often faster than reviewing a large CSV line by line.
Before importing a large CSV, test the process with a small group of activities.
After the test import, confirm that:
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.
If punctuation imports as a question mark inside a black diamond, the file encoding is likely incorrect.
To prevent this issue:
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.
If the CSV does not import as expected, check for:
FALSEAuthors 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.