Admin Tutorial · Timesheets & Invoicing

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

The outcome
What you will achieve

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.

Before you start

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
Step-by-step
1
Step 1

Configure hourly rates

Navigate toSettings → Time Tracking → Rate Configuration
  1. 1

    Set up your rate hierarchy. CrmLeaf applies rates in priority order (most specific wins):

    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. 2

    Navigate to Settings → Roles and assign a billing rate to each role in your agency:

    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. 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.

Pro Tip

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.

2
Step 2

Configure billing rules per project type

Navigate toProject → [Select Project] → Billing Settings
  1. 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. 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.

Common Mistake

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.

3
Step 3

Set up the time tracking interface for team members

Navigate toSettings → Time Tracking → Team Interface
  1. 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. 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. 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. 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. 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.

4
Step 4

Configure weekly timesheet approval

Navigate toSettings → Time Tracking → Approval Workflow
  1. 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. 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. 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. 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.

Pro Tip

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.

5
Step 5

Configure retainer cap dashboard

Navigate toReports → Billing → Retainer Dashboard
  1. 1

    Enable the Retainer Cap Dashboard. This shows, for every active retainer client:

    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. 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. 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.

6
Step 6

Validate time tracking configuration

  1. 1

    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

The outcome
What you will achieve

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.

Step-by-step
1
Step 1

Configure invoice templates by client

Navigate toSettings → Billing → Invoice Templates
  1. 1

    Create invoice templates for the three billing formats your clients expect:

    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. 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. 3

    Configure the Invoice Header: add your agency logo, company registration details, bank details, and payment terms to the global invoice settings.

  4. 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. 5

    Configure Invoice Numbering: set your preferred format (e.g. INV-2026-0001, or client-code format APEX-0142). Sequential numbering is automatic.

Pro Tip

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.

2
Step 2

Set up the invoice generation workflow

Navigate toBilling → Invoice Management → Generate Invoices
  1. 1

    The Generate Invoices workflow runs at the end of each billing period. Here is the standard month-end process:

    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. 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.

3
Step 3

Configure accounting platform integration

Navigate toSettings → Integrations → Accounting
  1. 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. 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. 3

    Test the integration: generate a test invoice in CrmLeaf → approve it → verify it appears in your accounting platform within 5 minutes.

Common Mistake

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.

4
Step 4

Configure the project profitability dashboard

Navigate toReports → Project Management → Profitability Dashboard
  1. 1

    Enable the Project Profitability Dashboard. Configure the metrics to display per project:

    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. 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. 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.

5
Step 5

Set up recurring invoice schedules

Navigate toBilling → Recurring Invoices
  1. 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. 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. 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.

Pre-flight check

Validation checklist

  1. 01.All timesheets approved for test period

    Check Time Tracking → Approval → verify zero pending timesheets

  2. 02.Generate draft invoice for T&M project

    Generate test T&M invoice; verify correct hours, rates, and total

  3. 03.Generate milestone invoice for fixed-fee project

    Mark a test milestone complete; verify draft invoice created automatically

  4. 04.Generate retainer invoice with overage

    Set up test retainer with overage hours; verify both fee and overage lines appear

  5. 05.Invoice template applied correctly

    Verify correct template (itemised vs. summary) applied to each test client

  6. 06.Accounting integration sync

    Approve a test invoice; verify it appears in Xero/QuickBooks within 5 minutes

  7. 07.Payment terms printed on invoice

    Check payment terms and due date appear correctly on test invoice

  8. 08.Profitability dashboard shows correct margin

    Verify test project margin calculation matches manual calculation

  9. 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

FAQ

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.

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