Project & Client Codes

In our we used to have links for each project to the corresponding Hubspot sale, Basecamp project, etc. The goal was to associate the correct entity in each separate platform with the same project, so it would be easy to see which Basecamp project went with which Google Drive folder and so on. However, the link method broke down and did not work well. The links got outdated very easily and could cause confusion.

Therefore we have added the notion of a “Project ID”, and along with that, a “Client ID”.

These are IDs which go with each project and client, and them will be used in all the different platforms we have. For example, the same ID will be attached to the project in Notion, Basecamp, Harvest, HubSpot etc.

The Client IDs are three-character codes, for example, XYZ. The project ID is a numeral that we add to the end of the client ID. So the first project we do for client XYZ is XYZ-1, the second project is XYZ-2, etc.

What constitutes a project? Most of the time a project is a single scope of work. But sometimes a project could include multiple scopes of work, such as with a phased website build, and sometimes a scope could lead to multiple projects. For example, under a single retainer SOW we might add on large initiatives charging hourly, which could be considered a separate project but not a separate SOW. Split out projects based on what is intuitive for the client and yourself, and not necessarily based on the SOW structure.

For internal projects, the client code is CAN. Right now we don’t have a consistent system for numbering internal projects, so you may see a lot of them only show the client code.

Creating a Code

When we onboard a new client, the PM should create a new entry in the that corresponds to that client. When creating this entry, the PM should create a Client ID that has not been used yet. Typically this will be a shortening of the client’s name, though it’s fine also to have fun with it – for example, UEFA is FUT to reference football.


The PM should also be creating a project database entry for each project. When starting a new project, the PM should establish the correct project ID based on the last project completed for the client.


Add the correct IDs in the database:



Then when you create the Harvest, Asana, etc for the project, make sure to add the code in the title or directly as a project code if the platform supports that functionality. Harvest supports project codes formally.