n8n community node for the Leadtime ERP Public API - Project management, time tracking, billing, and more for digital service companies
npm install n8n-nodes-leadtimen8n community node for Leadtime ERP - Project management, time tracking, billing, and more for digital service companies.
``bash`
npm install n8n-nodes-leadtime
After installation, restart n8n. The node will appear in the node palette under Leadtime.
The node uses API key authentication. To get your API key:
1. Log in to your Leadtime workspace
2. Go to Settings → API Keys
3. Create a new API key
4. Copy the key and paste it into the node credentials
The node provides access to 200+ operations across all Leadtime ERP modules:
Project (12 operations)
* Get Many, Get, Create, Update (Full/Partial), Delete
* Upload File, Get File URL
* Get Team Members, Get Statistics
Task (18 operations)
* Get Many (with filters), Get, Create, Update (Full/Partial), Delete
* Bulk Create, Bulk Update, Bulk Delete
* Add Comment, Get Comments
* Get File URL, Upload File
* Get Time Bookings, Get Statistics
Task Comment (4 operations)
* Get Many, Get, Create, Update, Delete
Task Template (5 operations)
* Get Many, Get, Create, Update, Delete
Sprint (6 operations)
* Get Many, Get, Create, Update, Delete
Project Template (5 operations)
* Get Many, Get, Create, Update, Delete
Contact (1 operation)
* Get Many (with filters)
Organizations (16 operations)
Organization - Customer/partner management
* Get Many, Get, Create, Update (Full/Partial), Delete
Organization Member - External contacts
* Get Many, Get, Create, Update, Delete
Organization Member Journal - Member journal
* Get Many, Get, Create, Update, Delete
Time Tracking (22 operations)
Time Booking - Log working hours
* Get Many, Create, Update, Delete
Timetable - Unified calendar view
* Get (employee schedule)
Attendance - Clock in/out
* Create/Update, Delete
Vacation Management:
* Request, Update, Cancel
* Approve, Decline
* Get (Pending/Upcoming/History)
* Stats & Compensation
Sick Days:
* Request, Update, Delete
* History
Overtime:
* Get Stats
* Get Compensation History
Analytics (5 operations)
Insight - Business intelligence
* Project Chart (working hours analysis)
* Staff Chart (employee time analysis)
* Turnover Chart (revenue analysis & forecast)
* Goal Chart (employee goal progress)
* Workload Chart (open tasks analysis)
Settings & Configuration (29 operations)
Workspace:
* Details, Upload File
* List Users, Quick Search
* Product List, Manual Position Categories
Product Management:
* Product Catalog (CRUD with variants)
* Product Categories (Get/Delete)
Settings:
* Subscription Status
* Basic Settings (localization, attendance, sprints)
* Company Settings (master data)
* Permissions List
Roles:
* Get Many, Get (with permissions)
VAT Rates:
* Get Many
Task Settings:
* Custom Fields, Activities, Statuses, Types
Project Settings:
* Categories, Statuses, Phases
* Custom Fields
* Support Contingents
Personal Tools (13 operations)
Account:
* Get Info
* Get/Update Employee Data
Journal:
* Get Many, Create, Update (Full/Partial), Delete
Notification:
* Get Many (with unread filter)
Sales Tools (2 operations)
Sales:
* Get Estimates
* Get Opportunities
` Detailed task descriptionjson`
{
"resource": "task",
"operation": "create",
"projectId": "{{ $json.projectId }}",
"title": "Implement new feature",
"typeId": "{{ $json.typeId }}",
"statusId": "{{ $json.statusId }}",
"priority": "High",
"estimatedTime": 8,
"assignedToId": "{{ $json.userId }}",
"description": "
}
`json`
{
"resource": "taskComment",
"operation": "create",
"taskIdentifier": "{{ $json.taskId }}",
"comment": "Completed implementation",
"statusId": "{{ $json.doneStatusId }}",
"timeBookingHours": 2,
"timeBookingActivityId": "{{ $json.activityId }}"
}
`json`
{
"resource": "invoice",
"operation": "getFileUrl",
"invoiceId": "{{ $json.invoiceId }}",
"fileType": "pdf",
"documentType": "invoice"
}
`json`
{
"resource": "workspace",
"operation": "uploadFile",
"file": "{{ $binary.file }}"
}
`json`
{
"resource": "insight",
"operation": "getProjectChart",
"projectIds": "{{ $json.projectIds }}",
"model": "timeSeries",
"period": "weeks",
"breakdown": "byUser",
"startDate": "2024-01-01",
"endDate": "2024-12-31"
}
`json`
{
"resource": "task",
"operation": "bulkCreate",
"tasksJson": JSON.stringify([
{
"title": "Task 1",
"projectId": "...",
"typeId": "...",
"statusId": "..."
},
{
"title": "Task 2",
"projectId": "...",
"typeId": "...",
"statusId": "..."
}
])
}
The node provides 12 intelligent dropdown methods that automatically populate with data from your Leadtime workspace:
| Dropdown | Purpose | Depends On |
| --------------------- | ------------------------- | ---------- |
| loadProjects | Select projects | - |
| loadEmployees | Select employees | - |
| loadTeams | Select teams | - |
| loadTaskStatuses | Select task statuses | - |
| loadTaskTypes | Select task types | - |
| loadActivities | Select work activities | - |
| loadProjectCategories | Select project categories | - |
| loadProjectStatuses | Select project statuses | - |
| loadProjectPhases | Select project phases | - |
| loadProjectTaskTypes | Task types for project | Project |
| loadTypeStatuses | Statuses for task type | Task Type |
| loadProjectUsers | Team members | Project |
When creating a task, dropdowns cascade intelligently:
``
1. Select Project → loads project-specific task types
2. Select Task Type → loads allowed statuses for that type
3. Select Status → ready to assign
4. Select Assignee → loads only team members from selected project
* Node.js >= 18
* n8n >= 1.0.0
* TypeScript >= 5.x
`bash
git clone https://github.com/workcio/workc.git
cd workc
npm install
nx build n8n-nodes-leadtime
📖 Documentation
* Leadtime API Documentation - Official API reference
* n8n Community Nodes - n8n developer docs
🐛 Known Limitations
* ⚠️ No webhook/trigger support (would require separate trigger node)
* ⚠️ Batch file upload not implemented (single file upload works)
* ⚠️ Some complex nested data structures require JSON input
🤝 Contributing
Contributions are welcome! Please:
1. Fork the repository
2. Create a feature branch (
git checkout -b feature/amazing-feature)
3. Commit your changes (git commit -m 'Add amazing feature')
4. Push to the branch (git push origin feature/amazing-feature)
5. Open a Pull Request$3
* ✅ TypeScript strict mode
* ✅ Consistent error handling (try/catch with type guards)
* ✅ Use
i === 0 pattern for array responses to avoid duplicates
* ✅ Full URLs for all API calls
* ✅ Conditional fields with displayOptions.show`MIT License - see LICENSE file
Copyright (c) 2024 Lukas Ebner / Leadtime Labs GmbH
Lukas Ebner
Leadtime Labs GmbH
* 🐛 GitHub Issues
* 💬 n8n Community Forum
* 📧 Email: support@leadtime.de
* 📚 Leadtime Help Center
* n8n - Workflow automation platform
* Leadtime - ERP for digital service companies
---
Made with ❤️ for the n8n Community