Description
n8n-nodes-timesheet
This is an n8n community node that provides integration with Timesheet.io time tracking API.
Installation
Follow the installation guide in the n8n community nodes documentation.
Community Node Installation
In n8n UI
Settings → Community Nodes → Install
Enter: @timesheet/n8n-nodes-timesheet
Manual Installation (Development)
Clone and build
git clone https://github.com/timesheetIO/n8n-nodes-timesheet.git
cd n8n-nodes-timesheet
npm install
npm run buildLink to n8n
npm link
cd ~/.n8n/custom
npm link @timesheet/n8n-nodes-timesheetRestart n8n
n8n start
Prerequisites
- n8n version 1.0.0 or above
- Node.js 18.x or above
- timesheet.io account (sign up)
- API credentials (see Authentication below)
- Timer (start, stop, pause, resume, status, update)
- Project (plus member operations: get member, get many members, add, update, remove, batch add/remove, replace registrations)
- Task (plus statistics, update status, update times, and print PDF work record)
- Tag
- Rate
- Expense (plus update refunded status, upload receipt file, get file URL)
- Note (plus upload file, get file URL)
- Pause
- Todo
- Team (plus member operations: get member, get many members, add, update, remove, remove invited; colleagues and member status)
- Automation
- Webhook
- Organization (get, update, get many; plus member operations: get member, get many members, add, update, remove, remove invited)
- Absence Type
- Absence (create, get, update, delete, get many, approve, reject, cancel)
- Contract (create, get, update, delete, get many, activate, suspend, reactivate, terminate)
- Contract Template
- Document (invoices, timesheets and work records; core fields plus a Custom Fields (JSON) passthrough for the full document model)
- Profile (get, update)
- Settings (get, update)
- Export (generate, send, templates, fields, report types, custom export fields)
- Report (document, task, expense, and note reports as data or PDF/XML)
Credentials
Option 1: API Key (Recommended for Automation)
1. Generate an API key at: https://my.timesheet.io/development
2. In n8n, create a new “Timesheet API” credential
3. Enter your API key in format: ts_{prefix}.{secret}
4. Test the connection
Option 2: OAuth2 (For User-Authorized Apps)
1. Register your n8n instance as an OAuth2 application
2. Configure redirect URI: https://your-n8n-instance/rest/oauth2-credential/callback
3. In n8n, create a new “Timesheet OAuth2 API” credential
4. Enter client ID and client secret
5. Complete OAuth2 authorization flow
Operations
Supported resources
The Timesheet node supports the following resources. Each resource provides
create, get, update, delete, and get many operations unless noted otherwise.
Organization, Absence Type, Absence, Contract, and Contract Template are
organization-scoped. Pick the organization on each operation, then the
resource. Some operations (for example approving an absence, suspending a
contract, or managing members) require manager, owner, or admin permission; the
API enforces this and returns a clear error when an action is not allowed.
Absence responses include canApprove, canReject, canCancel, and canEdit
flags so a workflow can branch on what the current user may do.
The Timesheet Trigger node listens for webhook events (timer, task, project,
team, todo, tag, and rate events). The selectable events match everything the
Timesheet webhook API currently emits (create/update plus timer transitions;
the API does not emit delete events).
Deliveries are authenticated. When the trigger registers its webhooks it stores
the signing secret the API returns, then checks the HMAC signature on every
incoming request, so forged, tampered, or replayed deliveries never start a
workflow. This is automatic; there is nothing to configure. Triggers that were
activated before signing existed re-register themselves once on the next
activation to pick up a secret.
Not yet covered: documents (invoice generation) and team or organization member
management. These are planned for a later release.
Development
Install dependencies
npm installBuild
npm run buildDevelopment mode (watch)
npm run devLint
npm run lint
npm run lint:fixFormat
npm run format
npm run format:checkTest
npm test
npm run test:watch
npm run test:coverage
Resources
Support
License
Contributing
Contributions are welcome! Please read our Contributing Guide first.
Compatibility
| n8n-nodes-timesheet | n8n | Node.js |
|———————|—————-|———|
| 1.x.x | >= 1.0.0 | >= 18.x |