n8n-nodes-leadtime
v0.1.11
Published
n8n community node for the Leadtime ERP Public API - Project management, time tracking, billing, and more for digital service companies
Readme
n8n-nodes-leadtime
n8n community node for Leadtime ERP - Project management, time tracking, billing, and more for digital service companies.
📦 Installation
npm install n8n-nodes-leadtimeAfter installation, restart n8n. The node will appear in the node palette under Leadtime.
🔑 Authentication
The node uses API key authentication. To get your API key:
- Log in to your Leadtime workspace
- Go to Settings → API Keys
- Create a new API key
- Copy the key and paste it into the node credentials
🎯 Features
Comprehensive API Coverage
The node provides access to 200+ operations across all Leadtime ERP modules:
Project Management
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
CRM & Contacts
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 & Attendance
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 & Insights
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)
Administration
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
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
Sales Tools (2 operations)
Sales:
- Get Estimates
- Get Opportunities
💡 Usage Examples
Create a Task with Time Tracking
{
"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": "<p>Detailed task description</p>"
}Add Comment with Time Booking
{
"resource": "taskComment",
"operation": "create",
"taskIdentifier": "{{ $json.taskId }}",
"comment": "Completed implementation",
"statusId": "{{ $json.doneStatusId }}",
"timeBookingHours": 2,
"timeBookingActivityId": "{{ $json.activityId }}"
}Get Invoice PDF
{
"resource": "invoice",
"operation": "getFileUrl",
"invoiceId": "{{ $json.invoiceId }}",
"fileType": "pdf",
"documentType": "invoice"
}Upload File to Workspace
{
"resource": "workspace",
"operation": "uploadFile",
"file": "{{ $binary.file }}"
}Get Project Analytics
{
"resource": "insight",
"operation": "getProjectChart",
"projectIds": "{{ $json.projectIds }}",
"model": "timeSeries",
"period": "weeks",
"breakdown": "byUser",
"startDate": "2024-01-01",
"endDate": "2024-12-31"
}Bulk Create Tasks
{
"resource": "task",
"operation": "bulkCreate",
"tasksJson": JSON.stringify([
{
"title": "Task 1",
"projectId": "...",
"typeId": "...",
"statusId": "..."
},
{
"title": "Task 2",
"projectId": "...",
"typeId": "...",
"statusId": "..."
}
])
}🎨 Dynamic Dropdowns
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 |
Cascading Dropdowns Example
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🔧 Development
Prerequisites
- Node.js >= 18
- n8n >= 1.0.0
- TypeScript >= 5.x
Local Development
git clone https://github.com/workcio/workc.git
cd workc
npm install
nx build n8n-nodes-leadtime
# Link for local testing
cd dist/libs/integrations/n8n-nodes-leadtime
npm link
cd ~/.n8n/custom
npm link n8n-nodes-leadtime
# Start n8n
n8n start📖 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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Coding Guidelines
- ✅ TypeScript strict mode
- ✅ Consistent error handling (try/catch with type guards)
- ✅ Use
i === 0pattern for array responses to avoid duplicates - ✅ Full URLs for all API calls
- ✅ Conditional fields with
displayOptions.show
📝 License
MIT License - see LICENSE file
Copyright (c) 2024 Lukas Ebner / Leadtime Labs GmbH
👤 Author
Lukas Ebner
Leadtime Labs GmbH
https://leadtime.de
📮 Support
- 🐛 GitHub Issues
- 💬 n8n Community Forum
- 📧 Email: [email protected]
- 📚 Leadtime Help Center
🙏 Acknowledgments
- n8n - Workflow automation platform
- Leadtime - ERP for digital service companies
Made with ❤️ for the n8n Community
