leadtime

n8n community node for the Leadtime ERP Public API - Project management, time tracking, billing, and more for digital service companies

Package Information

Downloads: 0 weekly / 20 monthly
Latest Version: 0.1.11

Documentation

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

After 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:

  1. Log in to your Leadtime workspace
  2. Go to SettingsAPI Keys
  3. Create a new API key
  4. 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:

  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

Coding Guidelines

  • ✅ 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

📝 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: support@leadtime.de
  • 📚 Leadtime Help Center

🙏 Acknowledgments

  • n8n - Workflow automation platform
  • Leadtime - ERP for digital service companies

Made with ❤️ for the n8n Community

Discussion