n8n-nodes-leadtime 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +363 -3
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1,7 +1,367 @@
|
|
|
1
1
|
# n8n-nodes-leadtime
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
n8n community node for Leadtime ERP - Project management, time tracking, billing, and more for digital service companies.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 📦 Installation
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
npm install n8n-nodes-leadtime
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
After installation, restart n8n. The node will appear in the node palette under **Leadtime**.
|
|
12
|
+
|
|
13
|
+
## 🔑 Authentication
|
|
14
|
+
|
|
15
|
+
The node uses API key authentication. To get your API key:
|
|
16
|
+
|
|
17
|
+
1. Log in to your Leadtime workspace
|
|
18
|
+
2. Go to **Settings** → **API Keys**
|
|
19
|
+
3. Create a new API key
|
|
20
|
+
4. Copy the key and paste it into the node credentials
|
|
21
|
+
|
|
22
|
+
## 🎯 Features
|
|
23
|
+
|
|
24
|
+
### Comprehensive API Coverage
|
|
25
|
+
|
|
26
|
+
The node provides access to **200+ operations** across all Leadtime ERP modules:
|
|
27
|
+
|
|
28
|
+
### Project Management
|
|
29
|
+
|
|
30
|
+
**Project** (12 operations)
|
|
31
|
+
* Get Many, Get, Create, Update (Full/Partial), Delete
|
|
32
|
+
* Upload File, Get File URL
|
|
33
|
+
* Get Team Members, Get Statistics
|
|
34
|
+
|
|
35
|
+
**Task** (18 operations)
|
|
36
|
+
* Get Many (with filters), Get, Create, Update (Full/Partial), Delete
|
|
37
|
+
* Bulk Create, Bulk Update, Bulk Delete
|
|
38
|
+
* Add Comment, Get Comments
|
|
39
|
+
* Get File URL, Upload File
|
|
40
|
+
* Get Time Bookings, Get Statistics
|
|
41
|
+
|
|
42
|
+
**Task Comment** (4 operations)
|
|
43
|
+
* Get Many, Get, Create, Update, Delete
|
|
44
|
+
|
|
45
|
+
**Task Template** (5 operations)
|
|
46
|
+
* Get Many, Get, Create, Update, Delete
|
|
47
|
+
|
|
48
|
+
**Sprint** (6 operations)
|
|
49
|
+
* Get Many, Get, Create, Update, Delete
|
|
50
|
+
|
|
51
|
+
**Project Template** (5 operations)
|
|
52
|
+
* Get Many, Get, Create, Update, Delete
|
|
53
|
+
|
|
54
|
+
### CRM & Contacts
|
|
55
|
+
|
|
56
|
+
**Contact** (1 operation)
|
|
57
|
+
* Get Many (with filters)
|
|
58
|
+
|
|
59
|
+
**Organizations** (16 operations)
|
|
60
|
+
|
|
61
|
+
**Organization** - Customer/partner management
|
|
62
|
+
* Get Many, Get, Create, Update (Full/Partial), Delete
|
|
63
|
+
|
|
64
|
+
**Organization Member** - External contacts
|
|
65
|
+
* Get Many, Get, Create, Update, Delete
|
|
66
|
+
|
|
67
|
+
**Organization Member Journal** - Member journal
|
|
68
|
+
* Get Many, Get, Create, Update, Delete
|
|
69
|
+
|
|
70
|
+
### Time & Attendance
|
|
71
|
+
|
|
72
|
+
**Time Tracking** (22 operations)
|
|
73
|
+
|
|
74
|
+
**Time Booking** - Log working hours
|
|
75
|
+
* Get Many, Create, Update, Delete
|
|
76
|
+
|
|
77
|
+
**Timetable** - Unified calendar view
|
|
78
|
+
* Get (employee schedule)
|
|
79
|
+
|
|
80
|
+
**Attendance** - Clock in/out
|
|
81
|
+
* Create/Update, Delete
|
|
82
|
+
|
|
83
|
+
**Vacation Management:**
|
|
84
|
+
* Request, Update, Cancel
|
|
85
|
+
* Approve, Decline
|
|
86
|
+
* Get (Pending/Upcoming/History)
|
|
87
|
+
* Stats & Compensation
|
|
88
|
+
|
|
89
|
+
**Sick Days:**
|
|
90
|
+
* Request, Update, Delete
|
|
91
|
+
* History
|
|
92
|
+
|
|
93
|
+
**Overtime:**
|
|
94
|
+
* Get Stats
|
|
95
|
+
* Get Compensation History
|
|
96
|
+
|
|
97
|
+
### Analytics & Insights
|
|
98
|
+
|
|
99
|
+
**Analytics** (5 operations)
|
|
100
|
+
|
|
101
|
+
**Insight** - Business intelligence
|
|
102
|
+
* Project Chart (working hours analysis)
|
|
103
|
+
* Staff Chart (employee time analysis)
|
|
104
|
+
* Turnover Chart (revenue analysis & forecast)
|
|
105
|
+
* Goal Chart (employee goal progress)
|
|
106
|
+
* Workload Chart (open tasks analysis)
|
|
107
|
+
|
|
108
|
+
### Administration
|
|
109
|
+
|
|
110
|
+
**Settings & Configuration** (29 operations)
|
|
111
|
+
|
|
112
|
+
**Workspace:**
|
|
113
|
+
* Details, Upload File
|
|
114
|
+
* List Users, Quick Search
|
|
115
|
+
* Product List, Manual Position Categories
|
|
116
|
+
|
|
117
|
+
**Product Management:**
|
|
118
|
+
* Product Catalog (CRUD with variants)
|
|
119
|
+
* Product Categories (Get/Delete)
|
|
120
|
+
|
|
121
|
+
**Settings:**
|
|
122
|
+
* Subscription Status
|
|
123
|
+
* Basic Settings (localization, attendance, sprints)
|
|
124
|
+
* Company Settings (master data)
|
|
125
|
+
* Permissions List
|
|
126
|
+
|
|
127
|
+
**Roles:**
|
|
128
|
+
* Get Many, Get (with permissions)
|
|
129
|
+
|
|
130
|
+
**VAT Rates:**
|
|
131
|
+
* Get Many
|
|
132
|
+
|
|
133
|
+
**Task Settings:**
|
|
134
|
+
* Custom Fields, Activities, Statuses, Types
|
|
135
|
+
|
|
136
|
+
**Project Settings:**
|
|
137
|
+
* Categories, Statuses, Phases
|
|
138
|
+
* Custom Fields
|
|
139
|
+
* Support Contingents
|
|
140
|
+
|
|
141
|
+
### Personal
|
|
142
|
+
|
|
143
|
+
**Personal Tools** (13 operations)
|
|
144
|
+
|
|
145
|
+
**Account:**
|
|
146
|
+
* Get Info
|
|
147
|
+
* Get/Update Employee Data
|
|
148
|
+
|
|
149
|
+
**Journal:**
|
|
150
|
+
* Get Many, Create, Update (Full/Partial), Delete
|
|
151
|
+
|
|
152
|
+
**Notification:**
|
|
153
|
+
* Get Many (with unread filter)
|
|
154
|
+
|
|
155
|
+
### Sales
|
|
156
|
+
|
|
157
|
+
**Sales Tools** (2 operations)
|
|
158
|
+
|
|
159
|
+
**Sales:**
|
|
160
|
+
* Get Estimates
|
|
161
|
+
* Get Opportunities
|
|
162
|
+
|
|
163
|
+
## 💡 Usage Examples
|
|
164
|
+
|
|
165
|
+
### Create a Task with Time Tracking
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"resource": "task",
|
|
170
|
+
"operation": "create",
|
|
171
|
+
"projectId": "{{ $json.projectId }}",
|
|
172
|
+
"title": "Implement new feature",
|
|
173
|
+
"typeId": "{{ $json.typeId }}",
|
|
174
|
+
"statusId": "{{ $json.statusId }}",
|
|
175
|
+
"priority": "High",
|
|
176
|
+
"estimatedTime": 8,
|
|
177
|
+
"assignedToId": "{{ $json.userId }}",
|
|
178
|
+
"description": "<p>Detailed task description</p>"
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Add Comment with Time Booking
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"resource": "taskComment",
|
|
187
|
+
"operation": "create",
|
|
188
|
+
"taskIdentifier": "{{ $json.taskId }}",
|
|
189
|
+
"comment": "Completed implementation",
|
|
190
|
+
"statusId": "{{ $json.doneStatusId }}",
|
|
191
|
+
"timeBookingHours": 2,
|
|
192
|
+
"timeBookingActivityId": "{{ $json.activityId }}"
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Get Invoice PDF
|
|
197
|
+
|
|
198
|
+
```json
|
|
199
|
+
{
|
|
200
|
+
"resource": "invoice",
|
|
201
|
+
"operation": "getFileUrl",
|
|
202
|
+
"invoiceId": "{{ $json.invoiceId }}",
|
|
203
|
+
"fileType": "pdf",
|
|
204
|
+
"documentType": "invoice"
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Upload File to Workspace
|
|
209
|
+
|
|
210
|
+
```json
|
|
211
|
+
{
|
|
212
|
+
"resource": "workspace",
|
|
213
|
+
"operation": "uploadFile",
|
|
214
|
+
"file": "{{ $binary.file }}"
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Get Project Analytics
|
|
219
|
+
|
|
220
|
+
```json
|
|
221
|
+
{
|
|
222
|
+
"resource": "insight",
|
|
223
|
+
"operation": "getProjectChart",
|
|
224
|
+
"projectIds": "{{ $json.projectIds }}",
|
|
225
|
+
"model": "timeSeries",
|
|
226
|
+
"period": "weeks",
|
|
227
|
+
"breakdown": "byUser",
|
|
228
|
+
"startDate": "2024-01-01",
|
|
229
|
+
"endDate": "2024-12-31"
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Bulk Create Tasks
|
|
234
|
+
|
|
235
|
+
```json
|
|
236
|
+
{
|
|
237
|
+
"resource": "task",
|
|
238
|
+
"operation": "bulkCreate",
|
|
239
|
+
"tasksJson": JSON.stringify([
|
|
240
|
+
{
|
|
241
|
+
"title": "Task 1",
|
|
242
|
+
"projectId": "...",
|
|
243
|
+
"typeId": "...",
|
|
244
|
+
"statusId": "..."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"title": "Task 2",
|
|
248
|
+
"projectId": "...",
|
|
249
|
+
"typeId": "...",
|
|
250
|
+
"statusId": "..."
|
|
251
|
+
}
|
|
252
|
+
])
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## 🎨 Dynamic Dropdowns
|
|
257
|
+
|
|
258
|
+
The node provides **12 intelligent dropdown methods** that automatically populate with data from your Leadtime workspace:
|
|
259
|
+
|
|
260
|
+
| Dropdown | Purpose | Depends On |
|
|
261
|
+
| --------------------- | ------------------------- | ---------- |
|
|
262
|
+
| loadProjects | Select projects | - |
|
|
263
|
+
| loadEmployees | Select employees | - |
|
|
264
|
+
| loadTeams | Select teams | - |
|
|
265
|
+
| loadTaskStatuses | Select task statuses | - |
|
|
266
|
+
| loadTaskTypes | Select task types | - |
|
|
267
|
+
| loadActivities | Select work activities | - |
|
|
268
|
+
| loadProjectCategories | Select project categories | - |
|
|
269
|
+
| loadProjectStatuses | Select project statuses | - |
|
|
270
|
+
| loadProjectPhases | Select project phases | - |
|
|
271
|
+
| loadProjectTaskTypes | Task types for project | Project |
|
|
272
|
+
| loadTypeStatuses | Statuses for task type | Task Type |
|
|
273
|
+
| loadProjectUsers | Team members | Project |
|
|
274
|
+
|
|
275
|
+
### Cascading Dropdowns Example
|
|
276
|
+
|
|
277
|
+
When creating a task, dropdowns cascade intelligently:
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
1. Select Project → loads project-specific task types
|
|
281
|
+
2. Select Task Type → loads allowed statuses for that type
|
|
282
|
+
3. Select Status → ready to assign
|
|
283
|
+
4. Select Assignee → loads only team members from selected project
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## 🔧 Development
|
|
287
|
+
|
|
288
|
+
### Prerequisites
|
|
289
|
+
|
|
290
|
+
* Node.js >= 18
|
|
291
|
+
* n8n >= 1.0.0
|
|
292
|
+
* TypeScript >= 5.x
|
|
293
|
+
|
|
294
|
+
### Local Development
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
git clone https://github.com/workcio/workc.git
|
|
298
|
+
cd workc
|
|
299
|
+
npm install
|
|
300
|
+
nx build n8n-nodes-leadtime
|
|
301
|
+
|
|
302
|
+
# Link for local testing
|
|
303
|
+
cd dist/libs/integrations/n8n-nodes-leadtime
|
|
304
|
+
npm link
|
|
305
|
+
cd ~/.n8n/custom
|
|
306
|
+
npm link n8n-nodes-leadtime
|
|
307
|
+
|
|
308
|
+
# Start n8n
|
|
309
|
+
n8n start
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
## 📖 Documentation
|
|
313
|
+
|
|
314
|
+
* **Leadtime API Documentation** - Official API reference
|
|
315
|
+
* **n8n Community Nodes** - n8n developer docs
|
|
316
|
+
|
|
317
|
+
## 🐛 Known Limitations
|
|
318
|
+
|
|
319
|
+
* ⚠️ No webhook/trigger support (would require separate trigger node)
|
|
320
|
+
* ⚠️ Batch file upload not implemented (single file upload works)
|
|
321
|
+
* ⚠️ Some complex nested data structures require JSON input
|
|
322
|
+
|
|
323
|
+
## 🤝 Contributing
|
|
324
|
+
|
|
325
|
+
Contributions are welcome! Please:
|
|
326
|
+
|
|
327
|
+
1. Fork the repository
|
|
328
|
+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
329
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
330
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
331
|
+
5. Open a Pull Request
|
|
332
|
+
|
|
333
|
+
### Coding Guidelines
|
|
334
|
+
|
|
335
|
+
* ✅ TypeScript strict mode
|
|
336
|
+
* ✅ Consistent error handling (try/catch with type guards)
|
|
337
|
+
* ✅ Use `i === 0` pattern for array responses to avoid duplicates
|
|
338
|
+
* ✅ Full URLs for all API calls
|
|
339
|
+
* ✅ Conditional fields with `displayOptions.show`
|
|
340
|
+
|
|
341
|
+
## 📝 License
|
|
342
|
+
|
|
343
|
+
MIT License - see LICENSE file
|
|
344
|
+
|
|
345
|
+
Copyright (c) 2024 Lukas Ebner / Leadtime Labs GmbH
|
|
346
|
+
|
|
347
|
+
## 👤 Author
|
|
348
|
+
|
|
349
|
+
**Lukas Ebner**
|
|
350
|
+
Leadtime Labs GmbH
|
|
351
|
+
<https://leadtime.de>
|
|
352
|
+
|
|
353
|
+
## 📮 Support
|
|
354
|
+
|
|
355
|
+
* 🐛 GitHub Issues
|
|
356
|
+
* 💬 n8n Community Forum
|
|
357
|
+
* 📧 Email: support@leadtime.de
|
|
358
|
+
* 📚 Leadtime Help Center
|
|
359
|
+
|
|
360
|
+
## 🙏 Acknowledgments
|
|
361
|
+
|
|
362
|
+
* n8n - Workflow automation platform
|
|
363
|
+
* Leadtime - ERP for digital service companies
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
**Made with ❤️ for the n8n Community**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-leadtime",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "n8n community node for the Leadtime ERP Public API - Project management, time tracking, billing, and more for digital service companies",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"type": "git",
|
|
20
20
|
"url": "https://github.com/workcio/workc.git"
|
|
21
21
|
},
|
|
22
|
+
"homepage": "https://leadtime.de",
|
|
22
23
|
"type": "commonjs",
|
|
23
24
|
"main": "./src/index.js",
|
|
24
25
|
"types": "./src/index.d.ts",
|