Coursedog

Submit a Ticket My Tickets
Welcome
Login  Sign up

Creating a CSV Upload

Table of Contents

Overview
In Scope vs Out of Scope
Submitting a CSV for Import
Best Practices
CSV-Only Scheduling Process
Timeline
Related Articles


Overview

  • During your initial Coursedog implementation, you might be asked to submit a CSV. For those imports, directions will be provided via your project plan in Rocketlane.

  • For CSV-only customers post-implementation:

    • We recommend all of your data be managed in Coursedog. 

    • However, if you need to update your data via CSV at some point in the future, we will allow one (1) upload per term / per entity (course, section) for CSV-only customers, up to four terms per year. Note, parsing does not support monthly terms. 

    • Additional or non-standard uploads will need to follow our Change Request Process.

    • The steps to do that are outlined in this article.

  • User CSV imports are self-service and can be done directly in Coursedog; for other CSV imports, you will need to work with Coursedog as outlined below. 


In Scope vs Out of Scope

Overview

  • If data is in the CSV template, it's in scope. If it's not in the template it's not something we support. 

    • That includes Custom Fields – unless the template includes Custom Fields, Custom Fields are not supported for that import.

  • Out-of-scope CSV imports are considered to be custom tasks and fall under our Change Request process

  • Examples of out-of-scope / custom tasks include (but are not limited to): 

    • Importing, Modifying or Filtering Data Not From a CSV - If the task requires us to import, modify or filter data, but we do not have a CSV with the exact data, this is a custom task. For example, if the task is to change the status of a subset of sections in Fall 2020 to Inactive, and there is no CSV list of that data, that would be custom. 

    • Importing Data From an Unknown CSV Template Provided By Client - If you provide a CSV template but your data cannot be easily mapped to our existing CSV templates, we have to do custom scripting to import this data. This custom scripting can be time-intensive and must be considered a custom request. This is commonly seen with requisites, degree maps, and home pages but can occur for other entities. 

    • Giving Users Access To Multiple Instances - This is a custom task due to how users are stored and the impact. Such tasks will need to be reviewed and approved.

    • Deleting Data - Deleting data is not something that is typically done as part of the CSV or parsing work. Most data in the application can and should be deleted by users. If there is data (such as a catalog), that does not support deletion, users can always rename it with “DEPRECATED” or “DO NOT USE” in the title. 

    • Recurring Data Imports 

      • CSV imports are intended to be one-off tasks to get data into your system.

      • Any recurring task that requires more than 2 uploads per entity within a single upload task is therefore a custom process, even if the clone or import itself is standard.

      • We also won't support any recurring uploads of a given entity UNLESS you are a Scheduling CSV customer that gets recurring term-based uploads. Examples:

        • If you wish to upload custom, non-integrated data to your sections at the end of each term, that would be a custom process.

        • If you want to update your room approvers every year via CSV, that's considered to be a recurring import and is not supported.


For Non-CSV Customers

  • We provide one CSV upload per entity per product throughout implementation, excluding data that is in scope of the integration.

  • Uploads must make use of a Coursedog-provided template.

  • Additional or non-standard uploads fall under our Change Request process


For CSV Customers

During Implementation

  • We provide one CSV upload per entity throughout implementation.

  • Uploads must make use of a Coursedog-provided template.


Post-Implementation

  • You’re allowed one upload per term for each of the following entities:

    • Terms

    • Instructors

    • Meeting Patterns (Optional)

    • Curriculum Courses (these need to exist in the Curriculum inventory in order to be used in Scheduling)

    • Scheduling Courses

    • Sections

    • Relationships (Optional)

  • For all other products/entities post-implementation, any additional CSV uploads are considered out of scope and would require a Change Request to complete.

    • This includes entities such as: 

      • Buildings

      • Rooms

      • Curriculum Courses (beyond what is included in the Coursedog template provided for new term scheduling as noted above)

      • Curriculum Programs


Submitting a CSV for Import

  1. Open a support ticket to get the process started.

    1. Be sure you select “CSV Upload Request” as the Case Type. 

    2. Once submitted, your CSM will review the request and will confirm whether or not your request is a custom task. 

    3. Your CSM will then send you the applicable template(s). 

  2. Populate the template following the “Best Practices” captured below. 

    1. For tasks with Custom Questions, replace “Custom Field #” with the Question/Field ID. 

  1. If you aren’t sure how to find a field’s ID, there are directions below under “Best Practices”. 

  1. Check your CSV before submitting to ensure you’ve: 

    1. Populated all required fields (denoted either with the word “required”, an asterisk, or in red). 

    2. Removed all filtering. 

    3. Removed all calculations..

    4. Removed all example entries (i.e. rows we added to the template as a reference).

    5. Checked for and removed any duplicate entries

  2. Save in CSV format. 

  3. Reply to your original support ticket thread and attach the CSV. Be sure to include the following details in that email: 

    1. Confirm if the CSV is for creating new records, updating existing records, or both.

    2. Any other notes or things of importance that might be helpful. 

    3. The name and email address for the person who will be reviewing information once the parse is complete (just in case that person is someone other than you). 

  4. You’ll be notified once the upload is complete. 

    1. At that point, you (or the designated contact) will need to do a robust review/QA of the data in Coursedog within the next 1-2 weeks. 

    2. Report any issues by responding to your Freshdesk ticket. 

    3. After 2 weeks, your ticket will be fully closed and any corrections or additional updates will need to be submitted as a separate ticket.


Best Practices

Overview | Meeting Pattern CSVs | Course/Section Import
Program Learning Outcomes CSVs | Courses Learning Outcomes CSVs

Overview

Following the below tips will help ensure an error-free import. 


General Tips

  • When importing Data from CSV, the expectation is we are creating new data elements for each item in the CSV. 

    • If we need to instead merge with existing data, that MUST be specified in your request.

    • When merging with existing data, you MUST provide the relevant ID of the Coursedog object in the CSV. 

  • Ensure you use the Coursedog-provided template. If you do not use the Coursedog-provided template, that is considered to be a custom task. 

  • Ensure you read and follow all instructions included at the top of the template. 

  • Some column headers include formatting directions. Hover of the yellow tab to see formatting instructions for that field. 

  • Any cell that contains multiple values should always use a comma as the delimiter without the use of spaces (i.e. Department = “Biology,Math”). 

  • If a field’s ID isn’t surfaced on the record, you can generally locate that by:

    • Opening the corresponding template (e.g. open the Section Template to find the ID for a field that’s on a section record). 

    • Locate the field on the template

    • Click into it. 

    • Look for the “Question Id” under Question Settings. 

    • In the below example, the Field/Question ID is “24uFl”. 

  • Ensure your file name clearly indicates your school as well as the contents.

    • Suggested filename format is Institution Name - Content, e.g. “Coursedog University - Curriculum Program Learning Outcomes”. 

  • Save your work frequently if your spreadsheet program doesn’t auto-save. 

  • Coursedog creates IDs by default if one is not provided when creating documents (courses, programs, etc.). 

    • If you're integrated with an SIS, make sure the document ID is the default one created by Coursedog or identify the documents based on a special field where the SIS ID is stored, e.g. sisId, rawId, customFields, etc. 

    • If it is an SIS ID, the task may be considered custom depending on the field where the SIS ID is stored.

  • The Unique ID for all entities (e.g. Department, Rooms, Courses, Programs, etc.) is often the same as the entity name or code. We recommend exporting Coursedog reports to get the ID before proceeding with reformatting to our CSV format. 


Meeting Pattern CSVs

Overview | “Day” Column | Acceptable Date Formats

Overview

  • This first row indicates whether or not information is required. If it’s in red – as it is for Meeting Pattern Group Name, Days, Start Time, and End Time – then it’s required. 

  • Each individual meeting pattern should have its own row.

  • Multiple meeting patterns can belong to the same “Meeting Pattern Group”.

    • In the below example, we have three different meeting patterns – each with its own row – that all belong to a Meeting Pattern Group called “Seminar, 2 Day, 75-Minute Classes”.

    • In other words, all of the different meeting patterns listed under this group name can be used for seminars that meet twice a week, where each session lasts for 75 minutes. 

“Day” Column

  • For the "Day" column, we recommend using the full name whenever possible.

    • This isn’t case sensitive (i.e. your CSV could say “Sunday” or “sunday”). 

  • If you opt to use the 1-2 letter or 3-5 letter abbreviations, whichever one you choose is a matter of personal preference, but do not include commas between each short code permutation.

    • For example, if using 1-2 letters, example entries might be:

      • mtwth for “Mondays, Tuesdays, Wednesdays & Thursdays”

      • wf for “Wednesdays & Fridays”

      • twrf for “Tuesdays, Wednesdays, Thursdays & Fridays”

    • If using 3-5 letters, example entries might be:

      • montuewedthu for “Mondays, Tuesdays, Wednesdays, & Thursdays”

      • wedfri for “Wednesdays & Fridays””

      • tuewedthufri for “Tuesdays, Wednesdays, Thursdays & Fridays”

    • Reference the below table for acceptable abbreviations for each day. 

  • If a meeting occurs 7 days a week, use “daily” in your CSV. 

Day(s)

#

1-2  Letters

3-5 Letters

Special

Sunday

0

u, su

sun

Sundays

Monday

1

m, mo

mon

Mondays

Tuesday

2

t, tu

tue, tues

Tuesdays

Wednesday

3

w, we

wed,weds

Wednesdays

Thursday

4

r, h, th

thu, thurs

Thursdays

Friday

5

f, fr

fri

Fridays

Saturday

6

s, sa

sat

Saturdays

(Every Day)




daily


Acceptable Date Formats

Input Format in CSV

Example

YYYY

2020

YYYY-MM-DD

2020-01-02

M/D/YYYY

1/2/2020

MMM D YYYY

Jan 2 2020

MMMM D YYYY

January 2 2020

MMM Do YYYY

Jan 2nd 2020

MMMM Do YYYY

January 2nd 2020



Course/Section Import

  • The course.id and course.courseNumber are both required. 

  • If you’re a non-integrated (CSV-only) school, you likely provided us with uploads for the Courses, Departments, Instructors, Buildings, and Rooms during implementation and can reference your submitted uploads for those IDs. 

    • If you created the record in-app, then the Coursedog app would have generated the ID for you. 

  • The Department Unique ID is often the same as the department name or department code. 

    • This can be found one of two ways: 

      • If you have Academic Scheduling:

        • Navigate to Scheduling > Reports > Export.

        • Download the Departments List report.

        • The first column of this report contains the Department ID.

      • Navigate to the department in Coursedog. In the URL, the Department ID will be part of the slug. In the following URL, for example, the Department ID is “AEROASTRO”: https://staging.coursedog.com/#/sm/settings/departments/AEROASTRO/settings 

  • The Course Unique ID is a Unique Identifier for each course. 

    • The Course ID is often Course Code + Effective Start Date. 

    • This is often the same as Course Code.

    • This can be found one of two ways: 

      • If you have Academic Scheduling: 

        • Navigate to Scheduling > Reports > Export.

        • Download the Course List report. 

        • The first column of the file will be the Course ID. 

      • If you have Curriculum Management: 

        • Open the course record.

        • The URL slug will contain the Curriculum Course ID (which might not be the same as the Scheduling Course ID). 

        • In the following URL, the Curriculum Course ID is 2204041-2021-08-01: https://staging.coursedog.com/#/cm/course/2204041-2021-08-01?type=course

  • Each professor has a Unique ID. If a section has multiple professors, separate each by a  comma.

    • The Professor Unique ID can be found in Academic Scheduling in one of two ways: 

      • Via the Reports Dashboard:

        • Navigate to Scheduling > Reports > Export.

        • Download the Instructor’s List report. 

        • The first column of the file will be the Instructor/Professor ID. 

      • Via the Instructor Record:

        • Navigate to Academic Scheduling > Instructors.

        • Open the instructor’s record. 

        • The URL slug will contain their Instructor/Professor ID.

        • In the following URL, the Instructor ID is 06658200: https://staging.coursedog.com/#/sm/instructors/2025/8/06658200/

  • Each room has a Unique ID. 

    • This can be found  in one of two ways: 

      • Via the Reports Dashboard:

        • Navigate to Scheduling > Reports > Export.

        • Download the Rooms List report. 

        • The first column of the file will be the Room ID. 

      • Via the Room Record:

        • Navigate to Academic Scheduling > Rooms.

        • Open the room’s record. 

        • The URL slug will contain the room’s ID.

        • In the following URL, the Room ID is BANC-270: https://staging.coursedog.com/#/sm/rooms/BANC-270/setting?item=settings

Program Learning Outcomes CSVs

  • The first three columns are all required – that’s why they’re in red.  

  • Add a unique row for each learning outcome, and always indicate the Program ID and Program Code each learning outcome applies to, even if that means having the same Program ID and Program Code repeated in multiple rows.

    • In the below example, rows 6 & 7 are different learning outcomes for the same Program, whereas row 8 represents a different program.  

    • Ultimately when these are added to Coursedog, each row will be presented as a unique objective for that program. 

    • These will be added in the order in which they appear in the CSV. If you wish to number your learning outcomes, ensure they are in numerical order in the CSV so that they also appear in numerical order in the Coursedog UI. 

Courses Learning Outcomes CSVs

  • Not all institutions have learning outcomes for courses, but if yours does: The process for updating the Course Learning Outcomes CSV is the same as the Programs CSV.

  • The only difference is the first two columns are “Course ID” and “Course Code” instead of “Program ID” and “Program Code”. 


CSV-Only Scheduling Process

Overview | Best Practices | Order of Import During Implementation
Order of Operations for Upload Each Subsequent Term | Coursedog GUIDs vs Institution's GUIDs

Overview

  • This section applies to customers who are not integrated with an SIS. 

  • We can support term creation in a CSV upload but recommend this be submitted as a separate request. Any data that terms and courses reference must exist before you are able to create them. 


Best Practices

  • Follow the “Order of Import” outlined below.

  • When creating the sections and courses in the CSVs, any ID should match those in Coursedog (Coursedog GUIDs). For example, the professor ID should be the ID set in Coursedog ID rather than your institution’s ID.

  • In the Sections CSV, the professor ID will be used to link directly to the professor's profile as it exists in Coursedog, ensuring that any existing attributes associated with the professor are linked.

  • Standardize section Ids to Course Code - Section Number

  • Sections with multiple meeting patterns and instructors will need to be on separate rows of the file.

  • Consider whether your schedule will need to be exported from Coursedog to be imported into the SIS when setting IDs and custom field values. Often the SIS will need the code in the export vs. the human readable descriptions. 


Order of Import During Implementation

When importing CSVs to Coursedog for the first time, CSVs should be imported in the following order: 

  1. Terms

  2. Departments

  3. Users

  4. Instructors

  5. Buildings

  6. Rooms

  7. Meeting Patterns

    1. Meetings and sections are linked through the section.times[].timeBlockId, field so you can create the meetings while creating the sections but also link existing meetings to a section.

    2. If using an existing Meeting Pattern, be sure to include its ID

  8. Courses CM

    1. This should include the school’s FULL course inventory – even for classes that they are not actively scheduling in the given term. 

    2. This upload is required because Courses must be added to the Curriculum inventory for ALL customers (integrated and non-integrated). Section data that defaults from Course (reference values, credits, etc.) must be stored in Curriculum to populate on the section template correctly. 

  9. Courses

  10. Sections

  11. Relationships (optional)


Order of Operations for Upload Each Subsequent Term

  1. Terms

    1. If you want your terms in Coursedog to have backend IDs that align with your SIS, new terms will need to be created via CSV upload. 

  2. Instructors

  3. Meeting Patterns (optional) 

  4. Courses CM

  5. Courses

  6. Sections

  7. Relationships (optional)


Coursedog GUIDs vs Institution's GUIDs

  • As part of the implementation, you will provide us with uploads for the following entities:

  1. Terms

  2. Departments

  3. Instructors

  4. Buildings

  5. Rooms

  6. Courses CM

  7. Courses

  8. Sections

  • These upload templates have a column for the entity ID which can either be set by you or left blank. 

    • If left blank, Coursedog will generate a random entity ID for you upon upload.

    • While you can set the IDs upon initialization, new records created in-app will have Coursedog-generated IDs unless uploaded. 

  • It is best to set the ID on entities rather than letting the Coursedog system generate them as it allows you to:

    • Standardize IDs across entities

    • Match IDs to the SIS for export/import needs

    • Have reference files for entity IDs needed for other imports

  • It is best to use Coursedog GUIDs if:

    • You have no need to export and reimport the Coursedog built schedule into your SIS

    • You would prefer that Coursedog generate IDs on your behalf

  • Note that when you allow Coursedog to generate the GUIDs, you might need to use the UI to identify IDs if pre-built reports do not contain this information. 


Timeline

Scoped Imports | Out-Of-Scope Imports | All Imports

Scoped Imports

  • Once you’ve submitted a CSV for upload, it can take two weeks for it to be completed, though large uploads can take longer. 

  • If CSVs are incomplete or incorrectly filled out, that will delay the process. 


Out-Of-Scope Imports

  • Custom tasks must be reviewed and approved by the Integrations team before moving ahead.

  • An ETA will be provided after that review has been completed. 


All Imports

  • As noted above, once an upload is complete, you will have 2 weeks to review and report any issues. 

  • After 2 weeks, your ticket will be fully closed.


Related Articles

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.