Skip to content
English
  • There are no suggestions because the search field is empty.

Import Projects: Preparing Your Import File

Learn how to structure your project import file and understand each field before uploading to PSOhub

Published: 1 June 2026

Audience

  • Admin

Objective

This article describes every field in the PSOhub project import template. Use it to prepare your Excel file correctly before uploading, and to understand how each field is validated on import.

Prerequisites

You must have Admin access in PSOhub.

You should have downloaded the PSOhub Import Projects template file.

Download the Template

Before you can prepare your import file, you need the official PSOhub template. The template contains the correct column structure that PSOhub expects on import — using any other file format or column order will cause the import to fail.

👉 Download the PSOhub project import template

⚠️ Important: Always use the template downloaded from PSOhub. Do not rename, remove, or reorder any columns. If you need a fresh copy, download the template again rather than modifying an existing file.

Prepare Your File

Before uploading your file, set up the import template correctly.

The project import template is structured differently from the contacts and companies templates. Because a single project can have multiple contract lines and multiple team members, one project may span several rows.

One row per contract line or team member — not per project. If a project has two contract lines and three team members, you will need enough rows to cover all combinations. Repeat all project-level columns across each row.

Keep the following rules in mind as you fill in your file:

  • Multiple contract lines: For each contract line, repeat all project-level columns (everything before ContractLineCountID). Assign a unique number to each row in the ContractLineCountID column.

  • Multiple team members: Team members can be entered on any row within the same project. If you have more team members than contract lines, add extra rows and repeat all project-level data for each.

  • Contacts: If a project has multiple contacts and you have repeated project rows for contract lines, the same contact should carry the same ContactCountID number across all repeated rows.

  • Boolean fields: The InternalProject and ExpenseFixedFee columns must always contain true or false, even on rows that have nothing to do with an expense. This is a template requirement.

Understanding the Import Fields

The table below describes every column in the PSOhub project import template, including the expected format, accepted values, and any validation rules that apply on import.

Field Description Type / Value Notes
ProjectName The name of the project. Text Required.
CurrencyCode The currency used for the project. ISO 4217 code — e.g. EUR, USD, GBP Required. Must match a currency configured in your PSOhub organization.
ProjectDate The start date of the project. Date Required. Use a consistent date format throughout your file.
ProjectStage The current stage of the project. Text — e.g. Active, On Hold, Completed Required. Must match a project stage configured in PSOhub.
InternalProject Indicates whether this is an internal project (not billable to a customer). true or false (lowercase) Required on every row, including rows that relate only to contract lines or team members.
ProjectManagerEmail The email address of the project manager. Valid email format Required. Must match the email address of an existing PSOhub user.
CustomerName The name of the customer company. Text Required. Must match an existing company record in PSOhub exactly.
ContactCountID A unique identifier for each contact associated with the project. Integer (1, 2, 3…) Required if the project has contacts. If the same contact appears across multiple rows (due to repeated contract line data), use the same number for that contact on every row.
ContactName The full name of the project contact. Text Optional.
ContactEmail The email address of the project contact. Valid email format Optional. Used to link to an existing PSOhub contact record.
ContractTemplate The name of the contract template to apply to this contract line. Text Required for each contract line. Must match an existing contract template in PSOhub exactly.
ContractLineCountID A unique identifier for each contract line within the project. Integer (1, 2, 3…) Required for each row containing contract line data. Must be unique within the project.
ContractLineName The name of the contract line. Text Required for each contract line.
ExpenseFixedFee Indicates whether expenses on this contract line are billed as a fixed fee. true or false (lowercase) Required on every row.
Amount The contract line amount. Number Required for contract lines. Enter the value without currency symbols.
Budget The budgeted hours for the project or contract line. Number Optional.
BudgetCost The budgeted cost for the project or contract line. Number Optional.
ProjectMemberID A unique identifier for each team member on the project. Integer (1, 2, 3…) Required for each row containing a team member. Must be unique within the project.
UserEmail The email address of the team member. Valid email format Required for team member rows. Must match the email address of an existing PSOhub user with the relevant role assigned.
Role The role assigned to this team member on the project. Text Required for team member rows. Must match a role already assigned to the user in PSOhub.
Rate The billing rate for this team member on this project. Number Optional. Enter the value without currency symbols.
Tags Tags to apply to the project. Text Optional. Separate multiple tags with a comma.
BusinessUnit The business unit the project belongs to. Text Optional. Must match an existing business unit in PSOhub.
ProjectType The type of project. Text Optional. Must match an existing project type in PSOhub.
DealAmount The deal amount associated with the project. Number Optional.
InvoiceContact The email address of the contact to receive invoices for this project. Valid email format Optional.
Reference An external reference code or identifier for the project. Text Optional.
Description A description of the project. Text Optional.
DealID The ID of the deal in your connected CRM, if applicable. Text or number Optional. Used to link the imported project to a CRM deal.
HubSpotServiceProject Indicates whether this is a HubSpot Service project. true or false (lowercase) Required. Set to true only for HubSpot Service projects.
HSCompanyID The HubSpot company ID, found in the company record URL in HubSpot. Number Required if HubSpotServiceProject is true. Otherwise leave blank or enter 0.

FAQs and Troubleshooting

My project has three contract lines and two team members. How many rows do I need?
You need enough rows to cover all contract lines and all team members. In this case, three rows covers the contract lines. If you have more team members than contract lines, add extra rows — so three contract lines and two team members requires three rows, with team member data entered on two of them.

A contract line was not imported. What should I check?
Confirm that the ContractLineCountID is unique for that line within the project, and that the ContractTemplate value matches an existing contract template in PSOhub exactly.

The import failed after I uploaded my file. What should I check?
Confirm that the column headers in your file match the original template exactly. Adding, removing, or renaming columns will cause the import to fail. Re-download the template and copy your data into a fresh copy if needed.

Can I update an existing project using the import?
The import can update the Project Manager field on an existing project. Select Update existing projects at the confirmation step. It cannot update other project fields — for other changes, edit the project directly in PSOhub.

Related Articles