@joshuanode/n8n-nodes-scalepad 0.0.4 → 0.0.6

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.
Files changed (43) hide show
  1. package/README.md +73 -131
  2. package/dist/nodes/ScalePadCore/ScalePadCore.node.js +798 -11
  3. package/dist/nodes/ScalePadCore/descriptions/ActionItemDescription.d.ts +3 -0
  4. package/dist/nodes/ScalePadCore/descriptions/ActionItemDescription.js +306 -0
  5. package/dist/nodes/ScalePadCore/descriptions/AssessmentDescription.d.ts +3 -0
  6. package/dist/nodes/ScalePadCore/descriptions/AssessmentDescription.js +291 -0
  7. package/dist/nodes/ScalePadCore/descriptions/AssessmentTemplateDescription.d.ts +3 -0
  8. package/dist/nodes/ScalePadCore/descriptions/AssessmentTemplateDescription.js +59 -0
  9. package/dist/nodes/ScalePadCore/descriptions/ContractDescription.js +242 -21
  10. package/dist/nodes/ScalePadCore/descriptions/GoalDescription.d.ts +3 -0
  11. package/dist/nodes/ScalePadCore/descriptions/GoalDescription.js +468 -0
  12. package/dist/nodes/ScalePadCore/descriptions/HardwareLifecycleDescription.d.ts +3 -0
  13. package/dist/nodes/ScalePadCore/descriptions/HardwareLifecycleDescription.js +81 -0
  14. package/dist/nodes/ScalePadCore/descriptions/InitiativeDescription.d.ts +3 -0
  15. package/dist/nodes/ScalePadCore/descriptions/InitiativeDescription.js +565 -0
  16. package/dist/nodes/ScalePadCore/descriptions/LmContractDescription.d.ts +3 -0
  17. package/dist/nodes/ScalePadCore/descriptions/LmContractDescription.js +342 -0
  18. package/dist/nodes/ScalePadCore/descriptions/MeetingDescription.d.ts +3 -0
  19. package/dist/nodes/ScalePadCore/descriptions/MeetingDescription.js +501 -0
  20. package/dist/nodes/ScalePadCore/descriptions/NoteDescription.d.ts +3 -0
  21. package/dist/nodes/ScalePadCore/descriptions/NoteDescription.js +289 -0
  22. package/dist/nodes/ScalePadLifecycleManager/ScalePadLifecycleManager.node.d.ts +6 -0
  23. package/dist/nodes/ScalePadLifecycleManager/ScalePadLifecycleManager.node.js +837 -0
  24. package/dist/nodes/ScalePadLifecycleManager/descriptions/ActionItemDescription.d.ts +3 -0
  25. package/dist/nodes/ScalePadLifecycleManager/descriptions/ActionItemDescription.js +306 -0
  26. package/dist/nodes/ScalePadLifecycleManager/descriptions/AssessmentDescription.d.ts +3 -0
  27. package/dist/nodes/ScalePadLifecycleManager/descriptions/AssessmentDescription.js +291 -0
  28. package/dist/nodes/ScalePadLifecycleManager/descriptions/AssessmentTemplateDescription.d.ts +3 -0
  29. package/dist/nodes/ScalePadLifecycleManager/descriptions/AssessmentTemplateDescription.js +59 -0
  30. package/dist/nodes/ScalePadLifecycleManager/descriptions/ContractDescription.d.ts +3 -0
  31. package/dist/nodes/ScalePadLifecycleManager/descriptions/ContractDescription.js +342 -0
  32. package/dist/nodes/ScalePadLifecycleManager/descriptions/GoalDescription.d.ts +3 -0
  33. package/dist/nodes/ScalePadLifecycleManager/descriptions/GoalDescription.js +468 -0
  34. package/dist/nodes/ScalePadLifecycleManager/descriptions/HardwareLifecycleDescription.d.ts +3 -0
  35. package/dist/nodes/ScalePadLifecycleManager/descriptions/HardwareLifecycleDescription.js +81 -0
  36. package/dist/nodes/ScalePadLifecycleManager/descriptions/InitiativeDescription.d.ts +3 -0
  37. package/dist/nodes/ScalePadLifecycleManager/descriptions/InitiativeDescription.js +565 -0
  38. package/dist/nodes/ScalePadLifecycleManager/descriptions/MeetingDescription.d.ts +3 -0
  39. package/dist/nodes/ScalePadLifecycleManager/descriptions/MeetingDescription.js +501 -0
  40. package/dist/nodes/ScalePadLifecycleManager/descriptions/NoteDescription.d.ts +3 -0
  41. package/dist/nodes/ScalePadLifecycleManager/descriptions/NoteDescription.js +289 -0
  42. package/dist/nodes/ScalePadLifecycleManager/scalepad.svg +17 -0
  43. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # n8n-nodes-scalepad
2
2
 
3
- This is an n8n community node for **ScalePad Core API** and **Lifecycle Manager**. It provides comprehensive integration with ScalePad's operational and financial insights platform for MSPs.
3
+ This is an n8n community node for **ScalePad**. It provides integration with both the **Core API** and **Lifecycle Manager API** for MSPs.
4
4
 
5
5
  [Installation](#installation) | [Operations](#operations) | [Credentials](#credentials) | [Usage](#usage) | [Resources](#resources)
6
6
 
@@ -26,188 +26,130 @@ npm install @joshuanode/n8n-nodes-scalepad
26
26
 
27
27
  ## Operations
28
28
 
29
- This node provides access to the following ScalePad resources:
30
-
31
- ### Resources Available
32
-
33
- | Resource | Description | Operations |
34
- |----------|-------------|------------|
35
- | **Clients** | Client/customer information | Get, Get Many |
36
- | **Contacts** | Contact details | Get, Get Many |
37
- | **Contracts** | Contract records | Get, Get Many |
38
- | **Hardware Assets** | Hardware asset data | Get, Get Many |
39
- | **Hardware Lifecycle** | Lifecycle tracking, warranties, EOL status | Get, Get Many |
40
- | **Members** | Team member information | Get, Get Many |
41
- | **Opportunities** | Sales opportunities | Get, Get Many |
42
- | **SaaS** | SaaS subscription data | Get, Get Many |
43
- | **Tickets** | Support ticket records | Get, Get Many |
44
-
45
- ### Operations
46
-
47
- - **Get** - Retrieve a single record by ID
48
- - **Get Many** - Retrieve multiple records with filtering, sorting, and pagination
29
+ This node provides access to both ScalePad Core API and Lifecycle Manager API resources.
30
+
31
+ ### Core API Resources
32
+
33
+ | Resource | Operations |
34
+ |----------|------------|
35
+ | **Client** | Get, Get Many |
36
+ | **Contact** | Get, Get Many |
37
+ | **Contract (Core)** | Get, Get Many |
38
+ | **Hardware Asset** | Get, Get Many |
39
+ | **Member** | Get, Get Many |
40
+ | **Opportunity** | Get, Get Many |
41
+ | **SaaS** | Get, Get Many |
42
+ | **Ticket** | Get, Get Many |
43
+
44
+ ### Lifecycle Manager Resources
45
+
46
+ | Resource | Operations |
47
+ |----------|------------|
48
+ | **Action Item** | Create, Get, Get Many, Update, Delete, Toggle Completion |
49
+ | **Assessment** | Create, Get, Get Many, Update, Delete, Update Completion, Evaluate |
50
+ | **Assessment Template** | Get Many |
51
+ | **Contract (Lifecycle)** | Create, Get, Get Many, Update, Delete |
52
+ | **Goal** | Create, Get, Get Many, Update, Delete, Update Status, Update Schedule, Link/Unlink Meetings, Link/Unlink Initiatives |
53
+ | **Hardware Lifecycle** | Get Many |
54
+ | **Initiative** | Create, Get, Get Many, Update, Delete, Update Status/Schedule/Priority/Budget, Link/Unlink Meetings, Link/Unlink Goals, Link/Unlink Action Items |
55
+ | **Meeting** | Create, Get, Get Many, Update, Delete, Update Completion, Add/Remove Attendees, Link/Unlink Initiatives, Link/Unlink Goals, Link/Unlink Action Items |
56
+ | **Note** | Create, Get, Get Many, Update, Toggle Archive |
49
57
 
50
58
  ### Features
51
59
 
52
- ✅ **Automatic Pagination** - Handles up to 200 records per request with cursor-based pagination
53
- **Advanced Filtering** - Filter with operators (eq, ne, contains, gt, lt)
54
- ✅ **Sorting** - Sort results ascending or descending
55
- ✅ **Rate Limit Handling** - Automatic handling of 50 req/5sec limit
56
- **Comprehensive Error Messages** - Detailed error descriptions and resolutions
60
+ - Full CRUD operations for Lifecycle Manager resources
61
+ - Automatic cursor-based pagination (up to 200 records per page)
62
+ - Filtering support per resource
63
+ - Sorting support (clients)
64
+ - Rate limit error handling (50 req/5sec)
65
+ - Production and Sandbox environment support
66
+ - Link/unlink relationships between meetings, initiatives, goals, and action items
57
67
 
58
68
  ## Credentials
59
69
 
60
- ### Authentication: API Key
70
+ ### API Key Authentication
61
71
 
62
72
  **Requirements:**
63
73
  - ScalePad Partner account
64
74
  - Administrator permissions
65
75
 
66
- **Setup Steps:**
76
+ **Setup:**
67
77
 
68
78
  1. Sign in to [ScalePad Hub](https://hub.scalepad.com)
69
79
  2. Navigate to **API (BETA)** in the top menu
70
80
  3. Click **+ Generate** to create a new API key
71
- 4. Enter a descriptive name
72
- 5. Set expiry (default: 2 years)
73
- 6. Copy the API key immediately (won't be shown again)
81
+ 4. Copy the API key immediately (it won't be shown again)
74
82
 
75
- **Configuration in n8n:**
83
+ **In n8n:**
76
84
 
77
85
  - **API Key**: Your generated API key
78
- - **Environment**:
79
- - `Production` - https://api.scalepad.com
80
- - `Sandbox` - https://api-sandbox.scalepad.com
86
+ - **Environment**: `Production` or `Sandbox`
87
+
88
+ The same API key provides access to both Core API and Lifecycle Manager API.
81
89
 
82
90
  ## Usage
83
91
 
84
- ### Example 1: Get All Active Clients
92
+ ### Get All Clients
85
93
 
86
94
  ```
87
95
  Resource: Client
88
96
  Operation: Get Many
89
97
  Return All: true
90
- Additional Fields:
91
- Filter:
92
- - Field: status
93
- - Operator: eq
94
- - Value: active
95
98
  ```
96
99
 
97
- ### Example 2: Monitor Hardware Approaching End of Life
100
+ ### Create a Meeting
98
101
 
99
102
  ```
100
- Resource: Hardware Lifecycle
101
- Operation: Get Many
102
- Return All: true
103
- Additional Fields:
104
- EOL Status: approaching_eol
103
+ Resource: Meeting
104
+ Operation: Create
105
+ Client ID: <client-uuid>
106
+ Title: Quarterly Business Review
107
+ Scheduled At: 2024-03-15T10:00:00Z
105
108
  ```
106
109
 
107
- ### Example 3: Get Client's Open Tickets
110
+ ### Get Action Items for a Client
108
111
 
109
112
  ```
110
- Resource: Ticket
113
+ Resource: Action Item
111
114
  Operation: Get Many
112
- Return All: false
113
- Limit: 50
114
- Additional Fields:
115
- Client ID: {{$json["client_id"]}}
116
- Status: open
117
- Priority: high
115
+ Filters:
116
+ Client ID: <client-uuid>
117
+ Is Completed: false
118
118
  ```
119
119
 
120
- ### Example 4: List Expiring Warranties
120
+ ### Link an Initiative to a Meeting
121
121
 
122
122
  ```
123
- Resource: Hardware Lifecycle
124
- Operation: Get Many
125
- Return All: true
126
- Additional Fields:
127
- Warranty Status: expiring_soon
123
+ Resource: Meeting
124
+ Operation: Link Initiative
125
+ Meeting ID: <meeting-uuid>
126
+ Initiative ID: <initiative-uuid>
128
127
  ```
129
128
 
130
129
  ## API Limits
131
130
 
132
- ### Rate Limits
133
-
134
- - **Limit**: 50 requests per 5 seconds
135
- - **Automatic Handling**: The node handles rate limit errors with descriptive messages
136
- - **Best Practice**: Use filters to reduce the number of requests needed
137
-
138
- ### Pagination
139
-
140
- - **Maximum**: 200 records per request
141
- - **Type**: Cursor-based pagination
142
- - **Auto-pagination**: Enable "Return All" to automatically fetch all pages
143
-
144
- ### Performance Tips
145
-
146
- 1. **Use filters** to reduce data transfer
147
- ```
148
- Additional Fields > Client ID: specific-client-id
149
- ```
150
-
151
- 2. **Limit results** for large datasets
152
- ```
153
- Return All: false
154
- Limit: 100
155
- ```
156
-
157
- 3. **Apply sorting** for ordered results
158
- ```
159
- Sort Field: created_at
160
- Sort Direction: DESC
161
- ```
131
+ | Limit | Value |
132
+ |-------|-------|
133
+ | Rate limit | 50 requests per 5 seconds |
134
+ | Page size | Up to 200 records per request |
135
+ | Pagination | Cursor-based (automatic with "Return All") |
162
136
 
163
137
  ## Error Handling
164
138
 
165
- The node provides comprehensive error handling:
166
-
167
- | Error Code | Meaning | Resolution |
168
- |------------|---------|------------|
169
- | **401** | Authentication failed | Check API key validity and expiration |
170
- | **404** | Resource not found | Verify resource ID and access permissions |
171
- | **429** | Rate limit exceeded | Reduce request frequency or add delays |
172
- | **500** | Server error | Retry request or contact ScalePad support |
173
-
174
- All errors include:
175
- - HTTP status code
176
- - Error message
177
- - Detailed description
178
- - Suggested resolution
179
-
180
- ## API Status
181
-
182
- **Current Status**: Beta (Read-Only)
183
-
184
- The ScalePad Core API is currently in beta with read-only access (GET operations only). Full CRUD operations (POST, PATCH, DELETE) will be available in future releases based on partner feedback.
139
+ | Code | Meaning | Resolution |
140
+ |------|---------|------------|
141
+ | **401** | Authentication failed | Check API key validity |
142
+ | **404** | Resource not found | Verify resource ID |
143
+ | **429** | Rate limit exceeded | Reduce request frequency |
185
144
 
186
145
  ## Resources
187
146
 
188
- - [ScalePad Core API Documentation](https://developer.scalepad.com/)
189
- - [ScalePad Community](https://community.scalepad.com/)
190
- - [n8n Documentation](https://docs.n8n.io/)
191
-
192
- ## Version History
193
-
194
- ### 0.0.1
195
- - Initial release
196
- - ScalePad Core API support (read-only)
197
- - Lifecycle Manager integration
198
- - 9 resources with Get and Get Many operations
199
- - Automatic pagination
200
- - Advanced filtering and sorting
201
- - Comprehensive error handling
202
-
203
- ## Support
204
-
205
- - **GitHub Issues**: [Report a bug](https://github.com/ajoshuasmith/n8n-nodes-scalepad/issues)
206
- - **ScalePad Community**: [community.scalepad.com](https://community.scalepad.com/)
147
+ - [ScalePad API Documentation](https://developer.scalepad.com/)
148
+ - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
207
149
 
208
150
  ## Contributing
209
151
 
210
- Contributions are welcome! If you'd like to help improve this node for the MSP community, feel free to open an issue or submit a pull request on [GitHub](https://github.com/ajoshuasmith/n8n-nodes-scalepad).
152
+ Contributions welcome. Open an issue or submit a pull request on [GitHub](https://github.com/ajoshuasmith/n8n-nodes-scalepad).
211
153
 
212
154
  ## License
213
155