skip to Main Content

THIS IS A BETA FEATURE. WE ARE STILL DEVELOPING IT, AND THIS DOCUMENTATION IS PRELIMINARY. PLEASE USE CAREFULLY ON A NON-PRODUCTION SERVER

UpStream allows you to import your data from almost any major project management software using a CSV file. In this article we will look at how to use the UpStream import tool in order to import your data.

Importing Data From Monday, Asana, or Wrike

If you use a common project management tool, you can follow our software specific guides here:

Importing Data From Other Project Management Tools

If you are not using one of the above tools, you can probably still import your data into UpStream, but you will have to tell UpStream which columns in the CSV map to which fields in UpStream.

Preparing Your CSV

When importing data, UpStream looks at the first line of the CSV in order to determine where each column goes.

In order to tell UpStream how to import the data, you will have to add or change the header field in your CSV so that it contains the proper field information for UpStream.

Here is an example CSV:

project.id project.status project.endDate task.title task.endDate
1 In Progress 2020-12-22 Task A 2020-12-25
2 Overdue 2020-12-26 Task B 2020-12-29

You will notice that there is a header for each column in the first row. Each column header has the form object.field

The options for column headers are below.

Using CSV to Create or Edit

The CSV can be used either to create or edit projects, files, bugs, tasks, or milestones.

If the importer finds a header with an ID (like project.id in the example above), it will try to load the project for editing. If it can’t find the project with the given ID, it will stop and show an error message.

If the importer finds no header with an ID for an object, but does find a title, it will try to load the object by that title. If the object with that title doesn’t exist, it will create the object. You can see this in the example below:

task.title task.endDate task.assignedTo:byEmail
Task A 2020-02-03 123456 davis@abcdefg.com

The example above will look for a task with the title “Task A”. If it finds the task, it will load it for editing. If it doesn’t find it, it will create a task with the title “Task A”, and set the end date and assigned to fields.

You will notice that there’s a column with no header. UpStream will ignore columns with no headers, so in the above example, “123456” won’t be imported.

Project Fields

Field Description Data Type
project.id This is the ID of the project (if this is included in the CSV, the ID must already have been entered in UpStream, otherwise you will receive an error). Use this in order to tell UpStream to update or add to an already existing project. Integer. You can find this in the WordPress admin dashboard in the table under Projects.
project.title The title of the project. If this exact title was already entered into UpStream, the importer will modify the existing project. If the project with this title is not already in UpStream, a new project will be created. Text
project.description The description of the project. Text
project.status The status of the project. Instructions on how to find this are below. Text
project.categoryIds The IDs of the categories of this project.
project.assignedTo The WordPress user ID of the owner of the project. Integer
project.assignedTo:byUsername The WordPress username of the owner of the project. Text
project.assignedTo:byEmail The email of the WordPress user to set as the owner of the project. Text
project.startDate The start date of the project. Date formatted as YYYY-MM-DD
project.endDate The end date of the project. Date formatted as YYYY-MM-DD
project.clientId The client ID of the client to attach this project to. Integer

Task Fields

Field Description Required Data Type
task.id This is the ID of the task (if this is included in the CSV, the ID must already have been entered in UpStream, otherwise you will receive an error). Use this in order to tell UpStream to update or add to an already existing task.

If you use this field, you don’t have to have a project.id or project.title column in your CSV. UpStream will find the task by ID.

Alphanumeric ID
task.title The title of the task. Text
task.notes The notes for the task. Text
task.status The status of the task. You can find instructions below. Text
task.assignedTo The WordPress user ID of the owner of the task. Integer
task.assignedTo:byUsername The WordPress username of the owner of the task. Text
task.assignedTo:byEmail The email of the WordPress user to set as the owner of the task. Text
task.milestoneId The ID of the milestone this task is attached to. Integer
task.startDate The start date of the task. Date formatted as YYYY-MM-DD
task.endDate The end date of the task. Date formatted as YYYY-MM-DD
task.progress The numerical progress percentage. UpStream only accepts integer multiples of 5 between 0 and 100. (Example: 0, 5, 10, 15, …) Integer

Milestone Fields

Field Description Required Data Type
milestone.id The ID of the milestone. You can find this next to the milestone in UpStream -> Milestones. Integer
milestone.title The title of the milestone. Text
milestone.notes The notes for the milestone. Text
milestone.color The color of the milestone. Hexadecimal Color Value
milestone.categoryIds The category IDs of the milestone.
milestone.assignedTo The WordPress user ID of the owner of the milestone. Integer
milestone.assignedTo:byUsername The WordPress username of the owner of the milestone. Text
milestone.assignedTo:byEmail The email of the WordPress user to set as the owner of the milestone. Text
milestone.startDate The start date of the milestone. Date formatted as YYYY-MM-DD
milestone.endDate The end date of the milestone. Date formatted as YYYY-MM-DD

File Fields

Field Description Required Data Type
file.id This is the ID of the file (if this is included in the CSV, the ID must already have been entered in UpStream, otherwise you will receive an error). Use this in order to tell UpStream to update or add to an already existing file.

If you use this field, you don’t have to have a project.id or project.title column in your CSV. UpStream will find the file by ID.

Alphanumeric ID
file.title The title of the file. Text
file.description The description of the file. Text
file.assignedTo The WordPress user ID of the owner of the file. Integer
file.assignedTo:byUsername The WordPress username of the owner of the file. Text
file.assignedTo:byEmail The email of the WordPress user to set as the owner of the file. Text
file.fileId The WordPress media ID of the file. You will need to upload the file separately. Integer

Bug Fields

Field Description Required Data Type
bug.id This is the ID of the bug (if this is included in the CSV, the ID must already have been entered in UpStream, otherwise you will receive an error). Use this in order to tell UpStream to update or add to an already existing bug.

If you use this field, you don’t have to have a project.id or project.title column in your CSV. UpStream will find the bug by ID.

Alphanumeric ID
bug.title The title of the bug. Text
bug.description The description of the bug. Text
bug.dueDate The due date of the bug. Date formatted as YYYY-MM-DD
bug.severity The severity of the bug. Follow the instructions for statuses. Text
bug.status The status of the bug. You can find the status using the instructions below. Text
bug.assignedTo The WordPress user ID of the owner of the bug. Integer
bug.assignedTo:byUsername The WordPress username of the owner of the bug. Text
bug.assignedTo:byEmail The email of the WordPress user to set as the owner of the bug. Text
fileId The WordPress media ID of the attached file. Integer

Custom Fields

To reference custom fields in your CSV, you will need to supply the slug for each field as the field name in the CSV header. You can find the slug in the custom fields list under Projects -> Custom Fields in your WordPress admin dashboard.

Use the slug for a custom field as its field name in your XML

In the screenshot above, to reference the first field (“Country check”) for a task, you would enter task.country-check as the header of a column in your CSV.

Dropdown

For dropdown custom fields, you must enter the value in your CSV, as opposed to the label. You can see the correct field in the image below.

Note that you can set the label and value to the same thing when you create your dropdown Custom Field to help with importing.

Country Fields

When you create a country field in WPForms, you will need to provide the 3 letter country code as the value for the form — not the country name. You can find the 3 letter country code here.

User Fields

User custom fields work a lot like assignedTo above, but you can only use user IDs — not emails or user logins.

Field Specific Notes

Statuses

The statuses you enter in your CSV must match the ones entered in your settings exactly. Otherwise, you will receive an error.

To change the status options for projects, go to your WordPress admin dashboard, and click UpStream -> Projects (for projects), UpStream -> Tasks (for tasks), or UpStream -> Bugs for bugs.

Related Articles