Time tracking integration
See which Harvest hours the contract actually pays for.
Pulls Harvest time entries by project and task, splits hours into contracted and uncontracted work, and syncs approved change orders back as billable budget.
- Vendor
- Harvest (Iridesco LLC)
- Plan
- Agency and Scale plans
- Authentication
- Harvest OAuth 2.0 (Harvest ID)
- Setup time
- About 4 minutes
- Sync
- Every 15 minutes (Harvest has no time entry webhooks), plus on demand from the dashboard
Overview
How TWINJAM works with Harvest
Harvest tells you how many hours went into a project. It cannot tell you how many of those hours were for work the client agreed to pay for. TWINJAM reads Harvest time entries for the projects you connect and attributes each entry to a contracted deliverable or to a flagged scope item, using the task, the notes and the linked ticket where there is one.
The result is the split finance teams ask for: contracted hours, uncontracted hours already spent, and hours recovered through approved change orders. Margin telemetry uses this split to forecast project margin and realization rate week by week, and the client creep scorecard uses it to show which clients consistently ask for unbilled work.
When a change order is signed, TWINJAM can add the approved hours and fee to the Harvest project budget, so the project manager's budget view and the contract stay in step. That write-back is optional and scoped to budgets only.
In practice
Thirty-one hours, named and dated
In week 44, Harvest shows 213.5 hours on the Halvorsen app. TWINJAM splits them: 182.5 contracted, 31 uncontracted, 18 already recovered through a signed change order. Finance sees the gap before month-end close, not at the project post-mortem.
The payload on the right is the event TWINJAM emits to your triage feed and to outbound webhooks, so you can route it into your own reporting.
{
"type": "margin.uncontracted_hours.updated",
"id": "mgn_H6q9Le2B",
"workspace": "HFX-APP",
"source": {
"tool": "harvest",
"project": "Halvorsen Freight App",
"period": "2026-W44"
},
"hours": {
"contracted": 182.5,
"uncontracted": 31,
"recovered_by_change_orders": 18
},
"realization_rate": 0.91,
"top_unbilled_item": {
"flag": "flg_8Q2mHX41",
"hours": 9.5,
"label": "CSV export with custom columns"
}
}Permissions
Scopes requested, and why.
| Scope | Why TWINJAM needs it |
|---|---|
| harvest:{account_id} | Access the single Harvest account you choose. Harvest scopes access per account. |
Events
What triggers a check.
Poll: GET /v2/time_entries?updated_since=
Fetches new and edited time entries for connected projects.
Poll: GET /v2/projects/{id}/task_assignments
Keeps task-to-deliverable mapping current.
PATCH /v2/projects/{id} (optional)
Adds approved change order hours and fees to the project budget.
Setup
Connect Harvest in about 4 minutes.
An admin connects once. PMs never need to re-authenticate, and you can revoke access from TWINJAM or the vendor's admin console at any time.
- 1Choose Connect Harvest and sign in with a Harvest administrator or project manager.
- 2Pick the Harvest account and map projects to contract workspaces.
- 3Map Harvest tasks to SOW deliverables. TWINJAM proposes a mapping from task names.
- 4Decide whether signed change orders should update Harvest budgets automatically.
FAQ
Harvest integration questions
Time entries for connected projects: hours, task, notes, date, billable flag. Project budgets and task assignments. Linked external references (Jira, Asana) where present. It never reads: projects not mapped to a contract; expenses, receipts and invoices; personal timesheet approvals or capacity data.
Optional: updates project budget hours and fee after a change order is signed. Every action that could reach a client requires a PM to approve it first.
Agency and Scale plans: Agency ($899/mo billed annually), Scale (from $1,800/mo billed annually). Every plan starts with a 14-day free production trial.
Every 15 minutes (Harvest has no time entry webhooks), plus on demand from the dashboard. Setup takes about 4 minutes.
Related integrations
All integrationsToggl TrackTime tracking
Reads Toggl Track time entries for client projects and attributes them to contracted deliverables or flagged scope, feeding margin and realization reporting.
ClockifyTime tracking
Syncs Clockify time entries for client projects and splits them into contracted, uncontracted and recovered hours for margin telemetry.
QuickBooks OnlineFinance & ERP
Turns signed change orders into QuickBooks Online estimates or invoice lines, and reads invoice status so realization reporting reflects cash, not intent.
Put Harvest on the same page as your SOW.
Connect it during a 14-day free production trial and see the first flags from your live projects within days.