Configure time tracking, billing rules and invoice generation in CrmLeaf
Two linked tutorials for agency administrators and billing admins configuring CrmLeaf for project-based billing - time tracking, billable hour rules, retainer caps, and automated invoice generation.
Time tracking & billable hour rules
A fully configured time tracking system where team members capture time at point of work, billing rules are applied automatically by project type, retainer caps are tracked in real time, and weekly timesheet approval ensures all billable hours are captured before invoice generation.
Prerequisites
- ·Admin access to CrmLeaf (Settings > System Admin)
- ·Active client and project records in CrmLeaf Project Management
- ·Billing model agreed per project: Fixed-Fee, T&M, Retainer, or Hybrid
- ·Hourly rates defined per role or team member
- ·Team members assigned to their active projects
Configure hourly rates
- 1
Set up your rate hierarchy. CrmLeaf applies rates in priority order (most specific wins):
Rate Level Where Configured Example Priority Project override Project → Billing Settings → Custom Rates Client X agreed rate: Design $135/hr 1st (highest) Role rate Settings → Roles → Billing Rate Senior Designer: $165/hr 2nd Team member rate Team Member Profile → Billing Rate Alex Chen: $155/hr (default) 3rd Global default Settings → Time Tracking → Default Rate $120/hr (fallback for all) 4th (lowest) Project override
- Where Configured
- Project → Billing Settings → Custom Rates
- Example
- Client X agreed rate: Design $135/hr
- Priority
- 1st (highest)
Role rate
- Where Configured
- Settings → Roles → Billing Rate
- Example
- Senior Designer: $165/hr
- Priority
- 2nd
Team member rate
- Where Configured
- Team Member Profile → Billing Rate
- Example
- Alex Chen: $155/hr (default)
- Priority
- 3rd
Global default
- Where Configured
- Settings → Time Tracking → Default Rate
- Example
- $120/hr (fallback for all)
- Priority
- 4th (lowest)
- 2
Navigate to Settings → Roles and assign a billing rate to each role in your agency:
Role Suggested Billing Rate Internal Cost Rate Target Margin Creative Director $220/hr $95/hr 57% Senior Designer $165/hr $75/hr 55% Mid Designer $130/hr $58/hr 55% Senior Developer $185/hr $85/hr 54% Mid Developer $145/hr $65/hr 55% Strategist $175/hr $80/hr 54% Copywriter $120/hr $55/hr 54% Project Manager $135/hr $62/hr 54% Creative Director
- Suggested Billing Rate
- $220/hr
- Internal Cost Rate
- $95/hr
- Target Margin
- 57%
Senior Designer
- Suggested Billing Rate
- $165/hr
- Internal Cost Rate
- $75/hr
- Target Margin
- 55%
Mid Designer
- Suggested Billing Rate
- $130/hr
- Internal Cost Rate
- $58/hr
- Target Margin
- 55%
Senior Developer
- Suggested Billing Rate
- $185/hr
- Internal Cost Rate
- $85/hr
- Target Margin
- 54%
Mid Developer
- Suggested Billing Rate
- $145/hr
- Internal Cost Rate
- $65/hr
- Target Margin
- 55%
Strategist
- Suggested Billing Rate
- $175/hr
- Internal Cost Rate
- $80/hr
- Target Margin
- 54%
Copywriter
- Suggested Billing Rate
- $120/hr
- Internal Cost Rate
- $55/hr
- Target Margin
- 54%
Project Manager
- Suggested Billing Rate
- $135/hr
- Internal Cost Rate
- $62/hr
- Target Margin
- 54%
- 3
For each role, also set the Internal Cost Rate. This is the fully-loaded cost of that team member per hour - used in the project profitability report to calculate gross margin. It is not visible to clients.
Set internal cost rates conservatively - include salary, employer taxes, benefits, and an allocation of overhead (office, software, management). Understating internal cost rates produces artificially optimistic margin data that will lead to systematic underpricing.
Configure billing rules per project type
- 1
For each active project, set the Billing Type and configure the corresponding rules:
- TIME & MATERIALS: Billing Type = Time & Materials; all logged hours default to Billable; Rate source = Role Rate (or project override); Minimum billing increment = 15 minutes; optional budget cap with 80% and 95% alerts.
- FIXED-FEE: Billing Type = Fixed Fee; all logged hours default to Non-Billable (fee covers everything); Internal margin tracking ON; Milestone schedule with billing milestones (e.g. 30% kickoff, 40% delivery, 30% sign-off).
- RETAINER: Billing Type = Retainer; Monthly contracted hours; Included rate; Overage rate (e.g. $155/hr); Cap behaviour (Soft Cap or Hard Cap); Rollover policy (None / Rollover up to X hours).
- 2
Enable Out-of-Scope Detection: when a task is created that is not linked to an approved scope item, it is flagged Out of Scope. The PM must classify it as in-scope, out-of-scope (raise change order), or internal/non-billable before time can be logged.
Setting retainer projects with a Soft Cap and no PM alert - overage accumulates silently until the client receives an invoice with unexpected additional charges. Always configure the 80% alert AND the PM notification for retainer cap approaches.
Set up the time tracking interface for team members
- 1
Enable the In-Task Timer. This places a Start/Stop timer button directly inside every task. The time entry is created automatically with the correct project, task, billing type, and rate applied.
- 2
Enable the Daily Timesheet View. Team members who prefer manual entry see a day grid showing all their assigned tasks with one-click entry fields.
- 3
Enable Mobile Time Tracking for remote and on-site team members. The CrmLeaf mobile app allows timer start/stop and manual time entry from any device.
- 4
Configure Timesheet Reminders:
- Daily reminder at 4pm if zero time logged with active tasks
- Week-end reminder Friday at 3pm for incomplete timesheets
- Submission deadline Sunday midnight - locks for regular edits (PMs can still correct with audit trail)
- 5
Under the Team Member Dashboard, each person sees their personal time health metrics: hours logged this week vs. target, utilisation rate, billable vs. non-billable split, and a task list with estimated hours remaining.
Configure weekly timesheet approval
- 1
Enable Weekly Timesheet Approval. Each team member's timesheet for the week is submitted to their line manager or project manager for approval every Monday morning.
- 2
Configure the approval workflow:
- Team member submits timesheet by Sunday midnight
- PM receives approval request Monday morning with a summary of hours by project
- PM reviews, queries missing time, approves or requests corrections
- Approved hours move to the Approved Billable Hours pool - available for invoice generation
- 3
Set Escalation Rules: if a timesheet is not approved within 48 hours of submission, escalate to the Head of Delivery. Unapproved timesheets cannot be included in invoices - this creates a strong operational incentive for timely approval.
- 4
Enable the Timesheet Health Report for admins: a weekly dashboard showing submission rate, approval rate, average hours logged per person, and any team members with consistently low submission rates.
In the first 4 weeks, have PMs review timesheets with their teams as a brief weekly touchpoint rather than processing silently. 10 minutes of 'let's review your time entries this week' builds the habit faster than any automated reminder.
Configure retainer cap dashboard
- 1
Enable the Retainer Cap Dashboard. This shows, for every active retainer client:
Metric Description Alert Threshold Monthly contracted hours Total hours included in the retainer Reference value Hours used (current period) Approved time entries logged this billing period - Hours remaining Contracted minus used Alert at 80% used Projected end date If burn rate continues, when will the cap be reached Alert if cap reached before month-end Overage hours (if any) Hours logged above the cap (at overage rate) Immediate notification to PM and Finance Overage revenue Overage hours × overage rate Visible on draft invoice Monthly contracted hours
- Description
- Total hours included in the retainer
- Alert Threshold
- Reference value
Hours used (current period)
- Description
- Approved time entries logged this billing period
- Alert Threshold
- -
Hours remaining
- Description
- Contracted minus used
- Alert Threshold
- Alert at 80% used
Projected end date
- Description
- If burn rate continues, when will the cap be reached
- Alert Threshold
- Alert if cap reached before month-end
Overage hours (if any)
- Description
- Hours logged above the cap (at overage rate)
- Alert Threshold
- Immediate notification to PM and Finance
Overage revenue
- Description
- Overage hours × overage rate
- Alert Threshold
- Visible on draft invoice
- 2
Configure Client Portal Visibility for retainer dashboards: clients can optionally see their own retainer usage in real time. Enable this for clients who prefer transparency - it reduces disputes about overage billing.
- 3
Set up the Retainer Renewal Reminder: 30 days before a retainer contract end date, CrmLeaf alerts the account manager and generates a retainer utilisation report for the contract period.
Validate time tracking configuration
- 1
Validation Check How to Test In-task timer creates entry with correct billing flag Start/stop timer on a T&M task; verify billable entry created Rate applied correctly by role Log time as Senior Designer on a T&M project; verify $165/hr rate applied Project rate override works Set a custom rate on a test project; log time; verify override rate used Fixed-fee project marks time non-billable Log time on a fixed-fee project; verify non-billable flag applied Retainer cap alert fires at 80% Set test retainer to 10 hours; log 8 hours; verify PM alert fires Overage rate auto-switches Log 11 hours on a 10-hour retainer; verify hour 11 shows overage rate Out-of-scope flag triggers on new task Create a task outside approved scope; verify flag and classification prompt Timesheet reminder fires Log no time as a test user by 4pm; verify reminder notification received In-task timer creates entry with correct billing flag
- How to Test
- Start/stop timer on a T&M task; verify billable entry created
Rate applied correctly by role
- How to Test
- Log time as Senior Designer on a T&M project; verify $165/hr rate applied
Project rate override works
- How to Test
- Set a custom rate on a test project; log time; verify override rate used
Fixed-fee project marks time non-billable
- How to Test
- Log time on a fixed-fee project; verify non-billable flag applied
Retainer cap alert fires at 80%
- How to Test
- Set test retainer to 10 hours; log 8 hours; verify PM alert fires
Overage rate auto-switches
- How to Test
- Log 11 hours on a 10-hour retainer; verify hour 11 shows overage rate
Out-of-scope flag triggers on new task
- How to Test
- Create a task outside approved scope; verify flag and classification prompt
Timesheet reminder fires
- How to Test
- Log no time as a test user by 4pm; verify reminder notification received
Generating invoices from timesheets
A configured invoice generation workflow where finance can produce accurate, client-ready invoices for all project types in under 3 hours - directly from approved timesheet data, with no manual reconciliation, no exports, and no spreadsheets.
Configure invoice templates by client
- 1
Create invoice templates for the three billing formats your clients expect:
Template Type When Used Contents Itemised Time & Materials T&M clients who require full time detail Date, team member, task description, hours, rate, line total - one row per time entry Summary T&M T&M clients who prefer category summary Hours by role category, blended rate per category, category total - concise format Fixed-Fee Milestone Fixed-fee projects Milestone description, contracted value, % invoiced to date, amount due Retainer Monthly Retainer clients Retainer fee, hours included, hours used, remaining; overage lines if applicable Hybrid Mixed billing project Retainer section + T&M section for out-of-retainer work Itemised Time & Materials
- When Used
- T&M clients who require full time detail
- Contents
- Date, team member, task description, hours, rate, line total - one row per time entry
Summary T&M
- When Used
- T&M clients who prefer category summary
- Contents
- Hours by role category, blended rate per category, category total - concise format
Fixed-Fee Milestone
- When Used
- Fixed-fee projects
- Contents
- Milestone description, contracted value, % invoiced to date, amount due
Retainer Monthly
- When Used
- Retainer clients
- Contents
- Retainer fee, hours included, hours used, remaining; overage lines if applicable
Hybrid
- When Used
- Mixed billing project
- Contents
- Retainer section + T&M section for out-of-retainer work
- 2
Assign the default template to each client: Client Profile → Billing Preferences → Invoice Template. This template is applied automatically every time an invoice is generated for this client.
- 3
Configure the Invoice Header: add your agency logo, company registration details, bank details, and payment terms to the global invoice settings.
- 4
Set Payment Terms per client: Net 14, Net 30, Net 45, or Due on Receipt. Payment due date is calculated and printed on the invoice automatically.
- 5
Configure Invoice Numbering: set your preferred format (e.g. INV-2026-0001, or client-code format APEX-0142). Sequential numbering is automatic.
For clients who require purchase order numbers on invoices - common with enterprise and government clients - enable the PO Reference field in the client's billing preferences. Invoices sent without a required PO number are frequently delayed in client accounts payable - a preventable cash flow friction.
Set up the invoice generation workflow
- 1
The Generate Invoices workflow runs at the end of each billing period. Here is the standard month-end process:
Step Action Detail 1 Confirm timesheet lock Verify all team timesheets for the period are submitted and approved. Any unapproved timesheets are flagged. 2 Select billing period Choose the billing period: calendar month, custom date range, or by project milestone. 3 Review billable summary CrmLeaf presents a summary of all projects with approved billable hours for the period. 4 Generate draft invoices Click Generate. CrmLeaf creates draft invoices applying the correct template and billing rules per client. 5 Review each draft Finance opens each draft invoice, reviews line items, and checks totals. 6 Apply adjustments Any manual adjustments (discounts, write-offs, corrections) are applied in the draft stage before finalising. 7 Approve and finalise Finance approves each invoice. Status changes from Draft to Approved - ready to send. 8 Send or export Send directly to the client via CrmLeaf email, or export to Xero/QuickBooks. 1
- Action
- Confirm timesheet lock
- Detail
- Verify all team timesheets for the period are submitted and approved. Any unapproved timesheets are flagged.
2
- Action
- Select billing period
- Detail
- Choose the billing period: calendar month, custom date range, or by project milestone.
3
- Action
- Review billable summary
- Detail
- CrmLeaf presents a summary of all projects with approved billable hours for the period.
4
- Action
- Generate draft invoices
- Detail
- Click Generate. CrmLeaf creates draft invoices applying the correct template and billing rules per client.
5
- Action
- Review each draft
- Detail
- Finance opens each draft invoice, reviews line items, and checks totals.
6
- Action
- Apply adjustments
- Detail
- Any manual adjustments (discounts, write-offs, corrections) are applied in the draft stage before finalising.
7
- Action
- Approve and finalise
- Detail
- Finance approves each invoice. Status changes from Draft to Approved - ready to send.
8
- Action
- Send or export
- Detail
- Send directly to the client via CrmLeaf email, or export to Xero/QuickBooks.
- 2
Configure Invoice Automation triggers for fixed-fee milestone invoices: when a PM marks a project milestone as Complete, CrmLeaf automatically creates a draft invoice for the milestone amount and notifies finance.
Configure accounting platform integration
- 1
Connect your accounting platform (Xero, QuickBooks, or Sage). The integration requires:
- API authorisation from your accounting platform - follow the on-screen OAuth flow
- Chart of accounts mapping: map CrmLeaf's billing categories to your accounting revenue codes
- Client mapping: match CrmLeaf client records to the corresponding records in your accounting platform
- 2
Once connected, finalised invoices in CrmLeaf sync to the accounting platform automatically:
- Invoice data pushed to accounting platform on approval
- Payment receipts pulled from accounting platform when client pays - CrmLeaf marks the invoice as Paid
- Aged receivables report in CrmLeaf reflects live payment status from accounting platform
- 3
Test the integration: generate a test invoice in CrmLeaf → approve it → verify it appears in your accounting platform within 5 minutes.
Mapping all CrmLeaf revenue to a single revenue code in the accounting platform. Take the time to map Design revenue, Development revenue, Strategy revenue, and Retainer revenue to separate codes. This gives your finance and leadership team the revenue-by-service-line data essential for margin analysis and pricing decisions.
Configure the project profitability dashboard
- 1
Enable the Project Profitability Dashboard. Configure the metrics to display per project:
Metric Source Used For Contracted value Project billing settings (fixed fee or T&M budget) Revenue ceiling / expected revenue Invoiced to date Sum of all approved invoices for this project Revenue recognised Logged hours (billable) Approved billable time entries Hours driving revenue Logged hours (non-billable) Approved non-billable time entries Overhead / investment hours Internal team cost Hours × internal cost rate per team member True cost of delivery Gross margin Invoiced revenue − internal team cost Profitability measure Margin % Gross margin ÷ invoiced revenue Comparative profitability across projects Budget burn rate Billable hours cost ÷ total budget (T&M) How fast budget is being consumed Estimated completion Current burn rate projected to budget cap Early warning for overrun risk Contracted value
- Source
- Project billing settings (fixed fee or T&M budget)
- Used For
- Revenue ceiling / expected revenue
Invoiced to date
- Source
- Sum of all approved invoices for this project
- Used For
- Revenue recognised
Logged hours (billable)
- Source
- Approved billable time entries
- Used For
- Hours driving revenue
Logged hours (non-billable)
- Source
- Approved non-billable time entries
- Used For
- Overhead / investment hours
Internal team cost
- Source
- Hours × internal cost rate per team member
- Used For
- True cost of delivery
Gross margin
- Source
- Invoiced revenue − internal team cost
- Used For
- Profitability measure
Margin %
- Source
- Gross margin ÷ invoiced revenue
- Used For
- Comparative profitability across projects
Budget burn rate
- Source
- Billable hours cost ÷ total budget (T&M)
- Used For
- How fast budget is being consumed
Estimated completion
- Source
- Current burn rate projected to budget cap
- Used For
- Early warning for overrun risk
- 2
Set Dashboard Alerts: receive a notification when any active project crosses these thresholds:
- Budget burn > 70% with < 50% of tasks completed: potential overrun risk
- Margin % dropping below 20%: investigate team allocation or rate pressure
- Billable hours significantly below estimate at project midpoint: team underutilisation or scope underdelivery
- 3
Share the dashboard with PMs (limited to their own projects) and with senior leadership and finance (full view across all projects). Access is controlled via RBAC.
Set up recurring invoice schedules
- 1
For retainer clients, configure Recurring Invoice Schedules. This automates the base retainer fee invoice so finance does not have to manually generate it each month:
- Select the client and the retainer project
- Set the billing date: 1st of each month (or agreed billing date)
- Set the invoice amount: the monthly retainer fee
- Enable: auto-add overage hours from the previous month to this invoice if applicable
- Set approval requirement: auto-approve and send, or route to finance for review before sending
- 2
For retainers with variable overage, set the schedule to generate a Draft on the billing date (not auto-send). Finance reviews the draft, confirming the retainer fee and any overage hours, then approves and sends.
- 3
Test the recurring schedule: set a test invoice for the next billing date, verify it appears in Draft status as expected, and confirm the overage calculation is correct before going live.
Validation checklist
01.All timesheets approved for test period
Check Time Tracking → Approval → verify zero pending timesheets
02.Generate draft invoice for T&M project
Generate test T&M invoice; verify correct hours, rates, and total
03.Generate milestone invoice for fixed-fee project
Mark a test milestone complete; verify draft invoice created automatically
04.Generate retainer invoice with overage
Set up test retainer with overage hours; verify both fee and overage lines appear
05.Invoice template applied correctly
Verify correct template (itemised vs. summary) applied to each test client
06.Accounting integration sync
Approve a test invoice; verify it appears in Xero/QuickBooks within 5 minutes
07.Payment terms printed on invoice
Check payment terms and due date appear correctly on test invoice
08.Profitability dashboard shows correct margin
Verify test project margin calculation matches manual calculation
09.Recurring invoice schedule creates draft
Set test recurring invoice for tomorrow; verify draft appears as expected
✓ Ready to launch when all items are checked
Time tracking & invoice setup - frequently asked questions
CrmLeaf's time entry lock prevents regular edits after the weekly submission deadline. However, admins can unlock a specific week for a specific team member with a reason logged in the audit trail. For time entries submitted after an invoice has been generated, they are flagged as Late Entries and queued for inclusion in the next billing cycle.
Yes. Timesheet approval is configured per project - each project manager approves timesheets for their own project team. If a team member works across multiple projects, each segment of their timesheet routes to the relevant project manager for approval independently.
The Hybrid billing type supports exactly this. Within a single project, scope items are tagged as Fixed-Fee or T&M. Time logged against fixed-fee scope items is tracked for margin analysis but not billed; time logged against T&M scope items generates billable line items. The invoice shows the fixed-fee amount and the T&M amount as separate sections.
CrmLeaf surfaces this in real time via the budget burn dashboard. When a project hits 80% of budget, the PM receives an alert and should initiate a conversation with the client about remaining scope vs. remaining budget. Options: reduce remaining scope, agree a budget increase, or convert remaining work to a separate follow-on engagement.
Yes. The client portal has configurable access levels for time data. You can share retainer hours used vs. remaining only, hours by project and task category without individual team member names, or full time detail if the client requires it. The default is retainer dashboard for retainer clients and no time detail for fixed-fee clients.
Time entries can only be created against projects and tasks that the team member is assigned to. Unassigned projects do not appear in their task list or time entry dropdown. If a team member needs to log time on a new project, the project manager must first assign them.
Related guides
Ready to put this tutorial into practice?
Start free, migrate from any tool, and configure your service-desk workflows in days, not weeks.
Free 14-day trial · Free onboarding · Free data migration · Cancel anytime
