Core Concepts
Clients & Projects
Set up clients, contacts, projects, rates, budgets, documents and client links
A client is the company or person you consult for. A project is one engagement for a client, with its own team, bill rates and billing type. Time, tasks, milestones and expenses all hang off a project; invoices go to a client.
Anyone in your organization can create and edit clients and projects. Deleting them, managing a project's team and bill rates, and a few other things are for owners and admins only, and are marked below.
How to add a client
- Go to Clients and click Add client (or Import to bring in a CSV of clients and projects — see Importing).
- Fill in Company name. Everything else is optional:
- Contact — the company's general email, phone and address.
- Billing — Billing email and Billing address, if invoices go somewhere other than the contact details. Leave them blank to use the contact details.
- Payment terms — leave it on Organization default unless this client has its own terms. See Payment terms.
- Email overdue reminders — on by default. Untick it to never send this client overdue reminders.
- Require start and end times — off by default. Tick it to make every time entry on this client's projects say when it was worked. See Requiring start and end times.
- Include a timesheet on invoices — off by default. Tick it to add a page to this client's invoices listing each entry's date, start and end times, hours and description. Each invoice can still turn it on or off. See Timesheets on invoices.
- Attach the PDF to invoice emails — off by default. Tick it to send the PDF with every invoice email and reminder, as well as the link. See Email it from Consultainer.
- Click Create client. You land on the client page, with a prompt to add the people you work with there.
If you gave a Website, its icon becomes the client's logo a moment later.
Client logos
A client's logo shows on the client list, the client page, the client's share link and the Bill To block of their invoice PDFs. Without one, their initials are shown.
- From their website: when a client is saved with a new website,
Consultainer fetches the icon the site advertises (its
apple-touch-icon,<link rel="icon">, or/favicon.ico), preferring the largest. To fetch it again, open Edit and click Fetch again (or Use website icon) in the Logo card. - Uploaded: in the Logo card, choose a PNG, JPEG, WebP, GIF, SVG or ICO image up to 1MB and click Upload. An uploaded logo is never replaced by the website's icon, even if the website changes.
- Remove goes back to initials.
Logos are only visible to people in your organization and on the client's
own links. Websites on private network addresses (localhost, 10.x,
192.168.x, …) aren't fetched unless the server sets
ALLOW_PRIVATE_FETCH=true. Only PDFs show PNG or
JPEG logos; other formats are left out of the PDF.
Who gets invoice emails
The Billing card on the client page lists who Invoices are emailed to:
- the contacts marked Send invoices to this person (with an email address), or, if there are none,
- the client's Billing email, or, if that's blank,
- the client's main Email (shown with (client email)).
A contact marked Send invoices to this person but with no email address is called out on the card, since they won't get anything.
To change any of this later, click Edit on the client page. Set Status to Inactive for a client you no longer work with.
Delete on a client page (owners and admins) removes the client together with all of its projects, time entries and invoices, including paid ones. It can't be undone. To retire a client, set its status to Inactive instead.
Draft clients
When someone you don't know yet books a call through Cal.com or Calendly, Consultainer adds them as a draft client: a client page named after their company, with them as the contact and their booking-form answers in the notes. Drafts are listed under Clients → Drafts (with a count), not with your clients, and owners and admins get the A new client books a call alert.
A draft client:
- can have contacts, links, documents, credentials, agreements, bookings and estimates;
- can't have projects, invoices, retainers, billing cycles, payments, credit or a client link, isn't offered in the invoice or project client pickers, isn't counted as a client, and never goes to QuickBooks.
Who can do this: owners and admins. Members see drafts and their page, but not the buttons.
Open the draft from Clients → Drafts. The banner says where it came from and when they booked, with:
| Button | What it does |
|---|---|
| Make client | Turns it into an active client. Everything stays. |
| Create estimate | Opens a new estimate for it. When the estimate is accepted and you click Create project, the draft becomes an active client automatically. |
| Merge into… | Pick an existing client: the draft's contacts, bookings, links, documents, credentials, agreements and estimates move there (a contact whose email the client already has isn't copied), the notes too if the client has none, and the draft is deleted. Use it when someone from a client books through your intake page. |
| Discard | Hides it from Drafts and moves it to Clients → Discarded. Open it there and click Restore to bring it back. 30 days after it was discarded, it's deleted (unless it has an estimate or agreement). |
If someone whose draft you discarded books again, the draft comes back to Drafts and you get the alert again.
Check it worked: after Make client, the client shows under Clients with status Active, and New project appears on its page.
You can also make a draft a client with Edit → Status → Active (owners and admins), and importing projects for a client whose name matches a draft makes it a client too. A client can't be turned back into a draft.
How to add contacts
Contacts are the people you work with at the client.
- On the client page, click Add contact (in Points of contact).
- Enter Name and, optionally, Title, Role, Email and Phone.
- Tick Primary contact for your main contact. Only one contact can be primary; ticking it on someone else moves it.
- Tick Send invoices to this person for everyone who should get invoices.
- Click Add contact.
Who gets invoice emails (including ones sent automatically by a billing cycle or retainer) and overdue reminders:
- Every contact with Send invoices to this person ticked (and an email).
- If there are none, the client's Billing email.
- If that's blank too, the client's main Email.
The invoice's Bill To names one person as Attn: name, title: the first contact with Send invoices to this person ticked, or else the primary contact. Their email shows under it when the client has no billing email or main email.
The client page's Billing card shows who that is right now. The primary contact is also who gets the email asking them to approve a contractor (see Team & bill rates).
How to add a project
- Click New project on the client page (the client is picked for you) or under Projects.
- Fill in Project name and Client.
- Pick a Billing type (see Billing types). For Flat fee, enter the Flat fee amount.
- Optionally set Budget (hours), Payment terms, Start date and End date, and tick Confidential (see Confidential projects).
- Click Create project.
Status (Active, On hold, Completed, Archived) is for your own tracking; it doesn't stop anyone logging time.
Delete on a project page (owners and admins) removes the project and all of its time entries, tasks, milestones and expenses. Set the status to Completed or Archived instead if you might need the history.
Billing types
| Type | How it gets invoiced |
|---|---|
| Hourly | From logged, billable time at each person's rate on the project. |
| Milestone-based | Each milestone is billed for its amount once it's marked complete. Time is still tracked, and billable time can still be invoiced. |
| Flat fee | The amount is shown on the project's Billing card and client link. It is not added to invoices for you: bill it by adding a line to a draft invoice (see Editing a draft) or with a retainer. |
Every project can also have expenses, whatever its billing type.
How to add people and set bill rates
Who can do this: owners and admins. Members see the project's team and rates but can't change them.
Each person on a project has their own hourly rate there, independent of any other project. Billable time is invoiced at that rate unless an owner or admin sets a Rate override on the entry.
The rate someone starts at comes from their default rate:
- Their own Rate on Settings → Members, if set.
- Otherwise the organization's Default bill rate on Settings → General.
- Otherwise 0.
Changing a default never changes rates on projects people are already on.
To add someone:
- On the project page, click Add team member (in Team & bill rates).
- Pick the Team member. Their Hourly rate is filled in from their default rate; change it for this project if you need to, and check the Currency.
- If they're a contractor, you can tick Email the client to approve this contractor before they start. The client's primary contact is emailed a link to approve or reject them, and the person shows as Pending until they answer. Owners and admins can also copy that link with Review link. Approval is a record for you and the client; it doesn't block anyone from logging time.
- Click Add to project. They're notified that they were added.
To change a rate, click the pencil next to it (Edit rate). Rate changes apply to time not yet invoiced. To take someone off, click the bin icon.
If anyone on an hourly project is at $0/hr, owners and admins see a note under the team list: their billable time would invoice at zero. Fix it with the pencil, and set default rates so new projects don't start at zero.
Tasks can only be added once someone is on the project. In a one-person organization you're added to every project automatically, at your default rate. The same happens when a member creates a confidential project (so they can still see it).
Invoices are always in your organization's Default currency (Settings → General). The currency next to a rate is a label; amounts aren't converted.
Budgets
A project can have a Budget (hours): a not-to-exceed cap on hours.
- The project's Billing card shows hours logged against the budget, and changes color at 80% (showing hours remaining) and again once it's over (showing hours over). The project's client link shows the same bar.
- Every hour logged on the project counts, billable or not.
- Owners and admins get a budget alert the first time the project reaches 80% and again at 100%, through whatever channels are on for A project nears its budget or a task passes its estimate under Settings → Alerts.
- A task with Estimated hours works the same way: the first time its logged hours pass the estimate, owners, admins and the task's assignee are alerted.
- An alert can fire again if hours drop back under (an entry is deleted) or the budget or estimate is raised and then reached again.
To set or change a budget, click Edit on the project page and fill in Budget (hours).
Payment terms
Payment terms decide an invoice's due date: Due on receipt, Net 15, Net 30, Net 45, Net 60 or Net 90. You can set a default at three levels; the most specific one wins:
- Project — Payment terms on the project's edit page. Used only when every item on the invoice comes from that one project.
- Client — Payment terms on the client's edit page.
- Organization — Default payment terms under Settings → General (Net 30 unless you change it).
Each level shows what it falls back to: a client's form says Organization default (Net 30), a project's says Same as client (Net 30).
On New invoice, the terms start from that default and the due date follows. You can still pick other terms, or Custom to type a due date yourself, for that one invoice. The REST API and MCP server use the same defaults when you don't pass terms or a due date. A billing cycle has its own terms, which start from the client's.
Confidential projects
Tick Confidential on a project to make it need-to-know, for example under an NDA.
- Who can see it: owners, admins, and the people on its Team & bill rates list. Everyone else doesn't see it anywhere: not in project lists, the client page, tasks, time or invoice generation. Its tasks can only be assigned to people who can see it.
- Invoices: a member who isn't on the project doesn't see any invoice with a line for it either (not in Invoices, on the dashboard or the client page, and its page and PDF read as not found), because the invoice's lines and total would show the project's work.
- If a member (not an admin) creates or marks a project confidential, they're added to its team automatically so they don't lock themselves out.
- @mentions on its tasks only reach people who can see it.
- Its documents are hidden from people who can't see the project.
- The client's all-projects client link leaves it out entirely, along with any invoice that includes its work.
Documents
Clients and projects each have a Documents card for contracts, SOWs, proposals, reports, W-9s and reference docs. A client's card also lists its projects' documents, labelled with the project.
How to add a document
- On the client or project page, click Add on the Documents card.
- Choose Link or Upload:
- Link — paste a Google Drive, Dropbox, OneDrive / SharePoint, Notion
or Box link, or any
https://URL. The file stays where it is and opens there, under that service's own sharing. If you've connected an account under Profile, you can browse and pick instead of pasting. Setting up those connections is covered in Documents & files. - Upload — choose a PDF, PNG, JPEG, WebP, Word (
.docx), Excel (.xlsx), PowerPoint (.pptx), text or CSV file to keep in Consultainer. The file picker only offers those types. Files must be under 5 MB, or 25 MB when the instance stores uploads in S3-compatible storage.
- Link — paste a Google Drive, Dropbox, OneDrive / SharePoint, Notion
or Box link, or any
- Optionally give it a Title and a Type. On a client, pick a Project, or leave Whole client.
- Choose Client can see it (see below).
- Choose Who on your team can see it (see below).
- Click Add link or Upload.
Who can see a document
Client can see it
- No — internal only (the default). Never shown to the client.
- Yes — on their client links. Listed on the client's share pages, badged Client can see in the app. An uploaded file can be opened from the share page. A linked file opens where it lives, so the client also needs access there.
Who on your team can see it
- Everyone in the organization (the default).
- Owners & admins.
- Specific people — tick who.
Owners and whoever added the document can always see it. For everyone else, a document they're not allowed to see doesn't appear and can't be opened.
To change either setting later, click the shield icon next to the document. Owners, whoever added it, and admins who can see it can change these settings or remove the document. Removing a link never touches the file itself.
Viewing documents
Click an uploaded document to open its page in Consultainer. PDFs and images are shown right there; other file types can't be previewed, so use Download. Linked documents open in a new tab at the provider. Every open and download, of uploads and links alike, is recorded in the audit log.
Client links
A client link is a read-only web page you send the client. It needs no login and never shows internal rates, costs or comments. Only owners and admins can create, regenerate or revoke one. You can make a link expire, and you can require visitors to prove they're one of the client's contacts with a code sent by email (see Email verification).
There are two kinds:
| Project link | Client link (all projects) | |
|---|---|---|
| Where | Links card on the project page | Client link (all projects) card on the client page |
| Covers | One project | Every non-confidential project for the client |
| Shows | Hours logged (against the budget, if set), billed to date, flat fee, milestones, invoices, documents marked for the client, how to pay | Hours logged and billed to date across projects, each project and its status, invoices, documents marked for the client, how to pay |
| Tasks | Optional: turn on Show tasks | No |
On both, the invoice list only has sent and paid invoices (never drafts), each with its PDF and, when online payments are set up, a Pay now button. Opening an invoice PDF from a client link counts as the client opening that invoice (see tracking opens). An invoice that includes any confidential project's work is never listed.
While a client's bank payment is clearing, the invoice shows Bank payment processing instead of Pay now. After paying, the client comes back to the same page with a confirmation for that invoice at the top. Amounts on both pages are in your organization's Default currency.
How to share a project with the client
- Open the project and find the Links card.
- Optional: under Expires, pick In 7 days, In 30 days, In 90 days or On a date… (the link works through the end of that day, UTC). The default is Never.
- Click Generate client link.
- Optional: turn on Show tasks to list task titles and their status. Task comments stay hidden unless you mark one Share with client (see Tasks).
- Click Copy link and send the link to the client.
To check it worked, open the link in a private browser window: you should see the project without signing in (or, with email verification on, the Verify your email page). Under the link, the card shows Never expires or Expires and the date.
To cut off access, click Revoke (the link stops working at once) or Regenerate (the old link stops working and you get a new one to send; pick a new Expires next to the button first).
How to share all of a client's projects
- Open the client and find Client link (all projects).
- Optional: pick when it Expires.
- Click Generate client link, then Copy link.
Regenerate and Revoke work the same as for a project link. They also sign out everyone who verified their email on this client's links.
Book a meeting link
A client link can show a Book a meeting button that opens your booking
page (Cal.com, Calendly or any https:// link). Set a default for every
client under Settings → Scheduling → Default booking link, or a link
just for one client in the Booking link card on its page (owners and
admins). The client's own link wins; leave it empty to use the default.
Nothing is shown when neither is set.
Link expiry
An expired link shows This link has expired. Ask (your organization) for a new one. and nothing else: no client name, invoices or files, and its PDF and document links stop working too. To send a working link again, pick a new Expires and click Regenerate. Links made before expiry existed, and links set to Never, don't expire.
Email verification
With email verification on, a client or project link first asks the visitor for their email address. If it matches one of the client's contacts (ignoring upper/lower case; contacts without an email can't get in), Consultainer emails them a 6-digit code. Once they enter it, that browser stays verified for 30 days, on the client link and on all of the client's project links.
It needs email set up, so the settings below only appear once it is.
Turn it on for every client (owners and admins):
Open the security settings
Go to Settings → Security and find Client link verification.
Turn it on
Tick Require email verification on client links and click Save.
Turn it on or off for one client (owners and admins):
Open the client
On the client page, find Client link (all projects).
Pick a setting
Under Require email verification, choose Organization default (follows Settings → Security), On or Off, and click Save. It covers the client link and the client's project links; a project card shows Email verification on when it applies.
What your client sees:
- Verify your email, with only your organization's name or logo. Nothing about the client, projects or invoices is shown before they verify.
- They enter their email and click Send code. Whatever they type, the page says If that address is on file, we've sent a code to it., so nobody can use it to find out which addresses you have.
- They enter the code from the email (subject Your code for (your organization)) and click Verify. The code lasts 10 minutes and works once. After 5 wrong tries it stops working and they need a new one (Use a different email or send a new code).
- The page opens, with Verified as (their name) at the bottom. PDFs, document downloads and Pay now on the page need the same verification.
Invoice links (/i/…) and estimate links (/e/…) in your emails are never
gated, so the client can always pay an invoice or accept an estimate. They
don't link to the client or project pages.
Who has verified: with verification on, the client's Client link (all projects) card lists Verified visitors: contact name, email and when they last opened a page. Click Sign out next to one, or Sign out everyone. A visitor is also signed out when you:
- delete their contact, or change the contact's email;
- regenerate or revoke the client link;
- turn verification off for the client (turning it back on asks everyone again).
Each verification and sign-out is recorded in the audit log (actions Verified on a client link and Signed out client link visitors; a verification shows Client contact as who did it).
Check it worked: open the link in a private browser window. You should see Verify your email. Enter one of the client's contacts' email addresses, then the code from the email; the page opens and the visitor appears under Verified visitors.
Troubleshooting
- The client sees This page needs email verification, which isn't available right now. Contact (your organization). Verification is on but email isn't set up (or was removed), so nobody new can get a code. People who already verified still get in. Set up email under Settings → Integrations, or turn verification off.
- Saving says Set up email first (Settings → Integrations): verification sends a code by email. Set up email before turning verification on.
- No code arrives. Check that the address is on one of the client's contacts, exactly (case doesn't matter). Look in spam. Codes are limited to 5 per address per client and 20 per network per hour; after that the page says Too many requests. Wait a while and try again.
- That code is wrong or has expired. The code was mistyped, is older than 10 minutes, or a newer code was sent (only the newest works). Click Use a different email or send a new code.
- Too many wrong codes. Ask for a new code. Five wrong tries; click Use a different email or send a new code.
- A verified client is asked again. Their 30 days ran out, they use a different browser, or they were signed out (see above).
How to import clients and projects
- Go to Clients and click Import.
- Click Download CSV template and fill it in, one row per project (leave the project name blank for a client with no projects yet).
- Choose the file under CSV file and click Import.
A client name that already exists is matched rather than duplicated, so running the same file again is safe. Rows with problems are listed after the import so you can fix and re-run them.
Moving from Harvest, Toggl Track or Clockify? Settings → Import brings over their time entries along with the clients and projects; see Import and export.