n8n-nodes-harmony 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +103 -2
- package/dist/credentials/HarmonyApi.credentials.d.ts +13 -0
- package/dist/credentials/HarmonyApi.credentials.js +41 -0
- package/dist/credentials/HarmonyApi.credentials.js.map +1 -0
- package/dist/nodes/Harmony/Harmony.node.d.ts +11 -0
- package/dist/nodes/Harmony/Harmony.node.js +88 -0
- package/dist/nodes/Harmony/Harmony.node.js.map +1 -0
- package/dist/nodes/Harmony/Harmony.node.json +18 -0
- package/dist/nodes/Harmony/harmonyLogo.dark.svg +1 -0
- package/dist/nodes/Harmony/harmonyLogo.svg +1 -0
- package/dist/nodes/Harmony/resources/application.d.ts +3 -0
- package/dist/nodes/Harmony/resources/application.js +477 -0
- package/dist/nodes/Harmony/resources/application.js.map +1 -0
- package/dist/nodes/Harmony/resources/asset.d.ts +2 -0
- package/dist/nodes/Harmony/resources/asset.js +560 -0
- package/dist/nodes/Harmony/resources/asset.js.map +1 -0
- package/dist/nodes/Harmony/resources/catalogAndRequest.d.ts +4 -0
- package/dist/nodes/Harmony/resources/catalogAndRequest.js +293 -0
- package/dist/nodes/Harmony/resources/catalogAndRequest.js.map +1 -0
- package/dist/nodes/Harmony/resources/desk.d.ts +2 -0
- package/dist/nodes/Harmony/resources/desk.js +137 -0
- package/dist/nodes/Harmony/resources/desk.js.map +1 -0
- package/dist/nodes/Harmony/resources/employee.d.ts +2 -0
- package/dist/nodes/Harmony/resources/employee.js +330 -0
- package/dist/nodes/Harmony/resources/employee.js.map +1 -0
- package/dist/nodes/Harmony/resources/ticket.d.ts +2 -0
- package/dist/nodes/Harmony/resources/ticket.js +790 -0
- package/dist/nodes/Harmony/resources/ticket.js.map +1 -0
- package/dist/nodes/Harmony/resources/ticketChildren.d.ts +4 -0
- package/dist/nodes/Harmony/resources/ticketChildren.js +310 -0
- package/dist/nodes/Harmony/resources/ticketChildren.js.map +1 -0
- package/dist/nodes/Harmony/shared/descriptions.d.ts +15 -0
- package/dist/nodes/Harmony/shared/descriptions.js +120 -0
- package/dist/nodes/Harmony/shared/descriptions.js.map +1 -0
- package/dist/nodes/Harmony/shared/methods.d.ts +3 -0
- package/dist/nodes/Harmony/shared/methods.js +50 -0
- package/dist/nodes/Harmony/shared/methods.js.map +1 -0
- package/dist/nodes/Harmony/shared/options.d.ts +15 -0
- package/dist/nodes/Harmony/shared/options.js +129 -0
- package/dist/nodes/Harmony/shared/options.js.map +1 -0
- package/dist/nodes/Harmony/shared/transport.d.ts +15 -0
- package/dist/nodes/Harmony/shared/transport.js +50 -0
- package/dist/nodes/Harmony/shared/transport.js.map +1 -0
- package/dist/package.json +59 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +57 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Harmony
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,104 @@
|
|
|
1
|
-
#
|
|
1
|
+
# n8n-nodes-harmony
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
This is an n8n community node for [Harmony](https://harmony.io), the AI-native IT service desk.
|
|
4
|
+
Use it to create and update tickets, reply to employees, manage assets and applications, and
|
|
5
|
+
read the requests the Harmony AI agent handled, all from your n8n workflows.
|
|
6
|
+
|
|
7
|
+
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-license/)
|
|
8
|
+
workflow automation platform.
|
|
9
|
+
|
|
10
|
+
- [Installation](#installation)
|
|
11
|
+
- [Credentials](#credentials)
|
|
12
|
+
- [Operations](#operations)
|
|
13
|
+
- [Usage](#usage)
|
|
14
|
+
- [Compatibility](#compatibility)
|
|
15
|
+
- [Resources](#resources)
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/)
|
|
20
|
+
in the n8n community nodes documentation, and install the `n8n-nodes-harmony` package.
|
|
21
|
+
|
|
22
|
+
## Credentials
|
|
23
|
+
|
|
24
|
+
The node authenticates with a Harmony **access key**.
|
|
25
|
+
|
|
26
|
+
1. In Harmony, go to **Settings > Access Keys** and create a key.
|
|
27
|
+
([Managing API access keys](https://docs.harmony.io/settings/managing-api-access-keys))
|
|
28
|
+
2. Pick the key's role:
|
|
29
|
+
- **Read**: get and list operations only.
|
|
30
|
+
- **Read + Write**: also create, update, add and remove operations.
|
|
31
|
+
3. In n8n, create a **Harmony API** credential and paste the key into **Access Key**.
|
|
32
|
+
|
|
33
|
+
The key decides which Harmony organization the node works in. Requests run as the user who
|
|
34
|
+
created the key, so changes (for example, assigning an application owner) are attributed to
|
|
35
|
+
that user in Harmony's activity history. Create the key from an account that should appear as
|
|
36
|
+
the author.
|
|
37
|
+
|
|
38
|
+
## Operations
|
|
39
|
+
|
|
40
|
+
| Resource | Operations |
|
|
41
|
+
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| **Ticket** | Create, Get, Get Many, Search (adds ticket metadata filters), Update, Update Many, Get Activity, Get Custom Fields, Set Custom Fields |
|
|
43
|
+
| **Ticket Message** | Create (reply or internal note), Get Many |
|
|
44
|
+
| **Ticket Watcher** | Add (employee or any email address), Remove |
|
|
45
|
+
| **Ticket Link** | Add, Get Many, Remove |
|
|
46
|
+
| **Desk** | Get, Get Many, Get Subdesks, Get Tags, Get Custom Field Definitions |
|
|
47
|
+
| **Employee** | Get, Get Many, Batch Get (by ID or work email) |
|
|
48
|
+
| **Asset** | Create, Get, Get Many, Update (including assignment), Get Activity |
|
|
49
|
+
| **Application** | Get, Get Many, Update |
|
|
50
|
+
| **Application Stakeholder** | Add, Get Many, Remove (app owners, IT approvers, budget approvers) |
|
|
51
|
+
| **Catalog Category** | Get Many (with their items) |
|
|
52
|
+
| **Catalog Item** | Get (with its form fields) |
|
|
53
|
+
| **Request** | Get, Get Many, Get Messages: conversations handled by the Harmony AI agent |
|
|
54
|
+
|
|
55
|
+
Every list operation supports **Return All** and **Limit**. Operations that return large
|
|
56
|
+
records (tickets, employees, assets, applications and requests) have a **Simplify** option,
|
|
57
|
+
on by default, that returns the 10 most useful fields. Turn it off to get the full record.
|
|
58
|
+
|
|
59
|
+
The node can also be used as a tool by n8n AI agents.
|
|
60
|
+
|
|
61
|
+
## Usage
|
|
62
|
+
|
|
63
|
+
**IDs.** Tickets use their display ID, for example `INC-7814` (case-insensitive). Desks use the
|
|
64
|
+
slug from their URL in Harmony (`/tickets/desk/<desk-id>`), such as `it-desk`. Desk and employee
|
|
65
|
+
parameters let you pick from a searchable list instead. Assets use their readable ID, such as
|
|
66
|
+
`LP-DL-6sNdq`.
|
|
67
|
+
|
|
68
|
+
**Lists in text fields.** Filters that take several values, such as **Desk IDs** or **Work
|
|
69
|
+
Emails**, accept a comma-separated list: `it-desk, hr`.
|
|
70
|
+
|
|
71
|
+
**Avoiding duplicates on retries.** **Ticket > Create** and **Ticket Message > Create** accept an
|
|
72
|
+
**Idempotency Key**. Retrying with the same key returns the original result instead of creating
|
|
73
|
+
a second ticket or message. Use a value that identifies the source event, for example
|
|
74
|
+
`{{ $json.orderId }}-ticket`.
|
|
75
|
+
|
|
76
|
+
**Custom fields** are JSON objects. Use **Desk > Get Custom Field Definitions** to find the field
|
|
77
|
+
IDs for a desk, then pass values keyed by those IDs, for example `{"laptop_model": "MacBook Pro"}`.
|
|
78
|
+
|
|
79
|
+
**Unassigning.** To unassign a ticket or an asset, set the assignee to `_UNASSIGN_`.
|
|
80
|
+
|
|
81
|
+
### Example: open a ticket from a form and post an internal note
|
|
82
|
+
|
|
83
|
+
1. **n8n Form Trigger** collects a title, description and the requester's work email.
|
|
84
|
+
2. **Harmony > Employee > Batch Get** with **Look Up By** set to _Work Email_ finds the employee.
|
|
85
|
+
3. **Harmony > Ticket > Create** opens the ticket in your desk, with **Reporter** set to
|
|
86
|
+
`{{ $json.id }}` (ID mode).
|
|
87
|
+
4. **Harmony > Ticket Message > Create** adds an internal note with the form's extra details,
|
|
88
|
+
with **Internal Note** turned on.
|
|
89
|
+
|
|
90
|
+
## Compatibility
|
|
91
|
+
|
|
92
|
+
Requires n8n 2.46.1 or later. Tested with n8n 2.47.7.
|
|
93
|
+
|
|
94
|
+
## Resources
|
|
95
|
+
|
|
96
|
+
- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
|
97
|
+
- [Harmony API reference](https://docs.harmony.io/api-reference/introduction)
|
|
98
|
+
- [Managing Harmony API access keys](https://docs.harmony.io/settings/managing-api-access-keys)
|
|
99
|
+
|
|
100
|
+
## Version history
|
|
101
|
+
|
|
102
|
+
### 0.1.0
|
|
103
|
+
|
|
104
|
+
First release. Covers every operation of the Harmony public API.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class HarmonyApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
icon: {
|
|
6
|
+
readonly light: "file:../nodes/Harmony/harmonyLogo.svg";
|
|
7
|
+
readonly dark: "file:../nodes/Harmony/harmonyLogo.dark.svg";
|
|
8
|
+
};
|
|
9
|
+
documentationUrl: string;
|
|
10
|
+
properties: INodeProperties[];
|
|
11
|
+
authenticate: IAuthenticateGeneric;
|
|
12
|
+
test: ICredentialTestRequest;
|
|
13
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HarmonyApi = void 0;
|
|
4
|
+
class HarmonyApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'harmonyApi';
|
|
7
|
+
this.displayName = 'Harmony API';
|
|
8
|
+
this.icon = {
|
|
9
|
+
light: 'file:../nodes/Harmony/harmonyLogo.svg',
|
|
10
|
+
dark: 'file:../nodes/Harmony/harmonyLogo.dark.svg',
|
|
11
|
+
};
|
|
12
|
+
this.documentationUrl = 'https://docs.harmony.io/settings/managing-api-access-keys';
|
|
13
|
+
this.properties = [
|
|
14
|
+
{
|
|
15
|
+
displayName: 'Access Key',
|
|
16
|
+
name: 'accessKey',
|
|
17
|
+
type: 'string',
|
|
18
|
+
typeOptions: { password: true },
|
|
19
|
+
required: true,
|
|
20
|
+
default: '',
|
|
21
|
+
description: 'Create one in Harmony under Settings > Access Keys. Choose Read + Write to create and update records.',
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
this.authenticate = {
|
|
25
|
+
type: 'generic',
|
|
26
|
+
properties: {
|
|
27
|
+
headers: {
|
|
28
|
+
Authorization: '=AccessKey {{$credentials.accessKey}}',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
this.test = {
|
|
33
|
+
request: {
|
|
34
|
+
baseURL: 'https://api.harmony.io',
|
|
35
|
+
url: '/service-desk/api/v1/desks/',
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.HarmonyApi = HarmonyApi;
|
|
41
|
+
//# sourceMappingURL=HarmonyApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HarmonyApi.credentials.js","sourceRoot":"","sources":["../../credentials/HarmonyApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAU;IAAvB;QACC,SAAI,GAAG,YAAY,CAAC;QAEpB,gBAAW,GAAG,aAAa,CAAC;QAE5B,SAAI,GAAG;YACN,KAAK,EAAE,uCAAuC;YAC9C,IAAI,EAAE,4CAA4C;SACzC,CAAC;QAEX,qBAAgB,GAAG,2DAA2D,CAAC;QAE/E,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EACV,uGAAuG;aACxG;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,uCAAuC;iBACtD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,wBAAwB;gBACjC,GAAG,EAAE,6BAA6B;aAClC;SACD,CAAC;IACH,CAAC;CAAA;AAxCD,gCAwCC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
import { searchDesks, searchEmployees } from './shared/methods';
|
|
3
|
+
export declare class Harmony implements INodeType {
|
|
4
|
+
description: INodeTypeDescription;
|
|
5
|
+
methods: {
|
|
6
|
+
listSearch: {
|
|
7
|
+
searchDesks: typeof searchDesks;
|
|
8
|
+
searchEmployees: typeof searchEmployees;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Harmony = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const application_1 = require("./resources/application");
|
|
6
|
+
const asset_1 = require("./resources/asset");
|
|
7
|
+
const catalogAndRequest_1 = require("./resources/catalogAndRequest");
|
|
8
|
+
const desk_1 = require("./resources/desk");
|
|
9
|
+
const employee_1 = require("./resources/employee");
|
|
10
|
+
const ticket_1 = require("./resources/ticket");
|
|
11
|
+
const ticketChildren_1 = require("./resources/ticketChildren");
|
|
12
|
+
const methods_1 = require("./shared/methods");
|
|
13
|
+
const transport_1 = require("./shared/transport");
|
|
14
|
+
class Harmony {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.description = {
|
|
17
|
+
displayName: 'Harmony',
|
|
18
|
+
name: 'harmony',
|
|
19
|
+
icon: { light: 'file:harmonyLogo.svg', dark: 'file:harmonyLogo.dark.svg' },
|
|
20
|
+
group: ['transform'],
|
|
21
|
+
version: 1,
|
|
22
|
+
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
23
|
+
description: 'Manage tickets, employees, assets, applications and AI requests in Harmony',
|
|
24
|
+
defaults: {
|
|
25
|
+
name: 'Harmony',
|
|
26
|
+
},
|
|
27
|
+
usableAsTool: true,
|
|
28
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
29
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
30
|
+
credentials: [{ name: 'harmonyApi', required: true }],
|
|
31
|
+
requestDefaults: {
|
|
32
|
+
baseURL: transport_1.BASE_URL,
|
|
33
|
+
arrayFormat: 'repeat',
|
|
34
|
+
headers: {
|
|
35
|
+
Accept: 'application/json',
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
properties: [
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Resource',
|
|
42
|
+
name: 'resource',
|
|
43
|
+
type: 'options',
|
|
44
|
+
noDataExpression: true,
|
|
45
|
+
options: [
|
|
46
|
+
{ name: 'Application', value: 'application' },
|
|
47
|
+
{ name: 'Application Stakeholder', value: 'applicationStakeholder' },
|
|
48
|
+
{ name: 'Asset', value: 'asset' },
|
|
49
|
+
{ name: 'Catalog Category', value: 'catalogCategory' },
|
|
50
|
+
{ name: 'Catalog Item', value: 'catalogItem' },
|
|
51
|
+
{ name: 'Desk', value: 'desk' },
|
|
52
|
+
{ name: 'Employee', value: 'employee' },
|
|
53
|
+
{
|
|
54
|
+
name: 'Request',
|
|
55
|
+
value: 'request',
|
|
56
|
+
description: 'A conversation handled by the Harmony AI agent',
|
|
57
|
+
},
|
|
58
|
+
{ name: 'Ticket', value: 'ticket' },
|
|
59
|
+
{ name: 'Ticket Link', value: 'ticketLink' },
|
|
60
|
+
{ name: 'Ticket Message', value: 'ticketMessage' },
|
|
61
|
+
{ name: 'Ticket Watcher', value: 'ticketWatcher' },
|
|
62
|
+
],
|
|
63
|
+
default: 'ticket',
|
|
64
|
+
},
|
|
65
|
+
...application_1.applicationDescription,
|
|
66
|
+
...application_1.applicationStakeholderDescription,
|
|
67
|
+
...asset_1.assetDescription,
|
|
68
|
+
...catalogAndRequest_1.catalogCategoryDescription,
|
|
69
|
+
...catalogAndRequest_1.catalogItemDescription,
|
|
70
|
+
...desk_1.deskDescription,
|
|
71
|
+
...employee_1.employeeDescription,
|
|
72
|
+
...catalogAndRequest_1.requestDescription,
|
|
73
|
+
...ticket_1.ticketDescription,
|
|
74
|
+
...ticketChildren_1.ticketLinkDescription,
|
|
75
|
+
...ticketChildren_1.ticketMessageDescription,
|
|
76
|
+
...ticketChildren_1.ticketWatcherDescription,
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
this.methods = {
|
|
80
|
+
listSearch: {
|
|
81
|
+
searchDesks: methods_1.searchDesks,
|
|
82
|
+
searchEmployees: methods_1.searchEmployees,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.Harmony = Harmony;
|
|
88
|
+
//# sourceMappingURL=Harmony.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Harmony.node.js","sourceRoot":"","sources":["../../../nodes/Harmony/Harmony.node.ts"],"names":[],"mappings":";;;AAAA,+CAA8F;AAC9F,yDAAoG;AACpG,6CAAqD;AACrD,qEAIuC;AACvC,2CAAmD;AACnD,mDAA2D;AAC3D,+CAAuD;AACvD,+DAIoC;AACpC,8CAAgE;AAChE,kDAA8C;AAE9C,MAAa,OAAO;IAApB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,2BAA2B,EAAE;YAC1E,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4EAA4E;YACzF,QAAQ,EAAE;gBACT,IAAI,EAAE,SAAS;aACf;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACrD,eAAe,EAAE;gBAChB,OAAO,EAAE,oBAAQ;gBACjB,WAAW,EAAE,QAAQ;gBACrB,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,wBAAwB,EAAE;wBACpE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;wBACjC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,iBAAiB,EAAE;wBACtD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC;4BACC,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,SAAS;4BAChB,WAAW,EAAE,gDAAgD;yBAC7D;wBACD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACnC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE;wBAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;wBAClD,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE;qBAClD;oBACD,OAAO,EAAE,QAAQ;iBACjB;gBACD,GAAG,oCAAsB;gBACzB,GAAG,+CAAiC;gBACpC,GAAG,wBAAgB;gBACnB,GAAG,8CAA0B;gBAC7B,GAAG,0CAAsB;gBACzB,GAAG,sBAAe;gBAClB,GAAG,8BAAmB;gBACtB,GAAG,sCAAkB;gBACrB,GAAG,0BAAiB;gBACpB,GAAG,sCAAqB;gBACxB,GAAG,yCAAwB;gBAC3B,GAAG,yCAAwB;aAC3B;SACD,CAAC;QAEF,YAAO,GAAG;YACT,UAAU,EAAE;gBACX,WAAW,EAAX,qBAAW;gBACX,eAAe,EAAf,yBAAe;aACf;SACD,CAAC;IACH,CAAC;CAAA;AAvED,0BAuEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-harmony.harmony",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Productivity"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [
|
|
8
|
+
{
|
|
9
|
+
"url": "https://github.com/harmonyso/n8n-nodes-harmony?tab=readme-ov-file#credentials"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"primaryDocumentation": [
|
|
13
|
+
{
|
|
14
|
+
"url": "https://github.com/harmonyso/n8n-nodes-harmony?tab=readme-ov-file"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect width="100" height="100" fill="#6662FF"/><g transform="translate(12 12) scale(3.8)"><path d="M4.22852 11.4824C4.70889 11.5072 5.09082 11.9118 5.09082 12.4072C5.09079 12.9026 4.70887 13.3073 4.22852 13.332L4.18164 13.333L4.12109 13.334C2.84399 13.367 1.81847 14.4316 1.81836 15.7402C1.81836 17.0697 2.87632 18.1474 4.18164 18.1475C5.48704 18.1475 6.5459 17.0698 6.5459 15.7402C6.54601 15.2291 6.9523 14.8147 7.4541 14.8145C7.95611 14.8145 8.36317 15.229 8.36328 15.7402C8.36328 18.0925 6.4912 20 4.18164 20C1.87217 19.9999 0 18.0925 0 15.7402C0.000111019 13.4248 1.81463 11.5407 4.07422 11.4824L4.18164 11.4814L4.22852 11.4824Z" fill="#FFFFFF"/><path d="M4.18164 0C6.49854 0 8.36308 1.92748 8.36328 4.28809V9.07422H11.6367V7.59277C11.6367 7.08141 12.0438 6.66699 12.5459 6.66699C13.0478 6.66724 13.4541 7.08156 13.4541 7.59277V9.07422H14C14.5021 9.07422 14.9092 9.48863 14.9092 10C14.9091 10.5113 14.502 10.9258 14 10.9258H13.4541V15.7109C13.4541 17.0643 14.5204 18.1475 15.8184 18.1475C17.1162 18.1474 18.1816 17.0642 18.1816 15.7109C18.1815 14.3578 17.1161 13.2745 15.8184 13.2744C15.3163 13.2744 14.9092 12.86 14.9092 12.3486C14.9092 11.8373 15.3163 11.4229 15.8184 11.4229C18.1352 11.4229 19.9999 13.3503 20 15.7109C20 18.0717 18.1353 19.9999 15.8184 20C13.5013 20 11.6367 18.0717 11.6367 15.7109V10.9258H8.36328V12.4072C8.36325 12.9186 7.95616 13.333 7.4541 13.333C6.95225 13.3328 6.54593 12.9184 6.5459 12.4072V10.9258H6C5.49799 10.9258 5.09092 10.5113 5.09082 10C5.09082 9.48863 5.49792 9.07422 6 9.07422H6.5459V4.28809C6.54569 2.93493 5.47945 1.85156 4.18164 1.85156C2.88391 1.85166 1.81856 2.93499 1.81836 4.28809C1.81839 5.64134 2.88381 6.72451 4.18164 6.72461C4.68354 6.72461 5.09054 7.13927 5.09082 7.65039C5.09082 8.16176 4.68372 8.57715 4.18164 8.57715C1.86472 8.57705 3.01308e-05 6.64879 0 4.28809C0.000204809 1.92754 1.86483 9.8542e-05 4.18164 0Z" fill="#FFFFFF"/><path d="M15.8184 0C18.1277 9.81717e-05 19.9998 1.90675 20 4.25879C20 6.57431 18.1854 8.45828 15.9258 8.5166L15.8184 8.51855L15.7715 8.51758C15.2912 8.49283 14.9093 8.08804 14.9092 7.59277C14.9092 7.09736 15.2911 6.69273 15.7715 6.66797L15.8184 6.66699L15.8789 6.66602C17.1561 6.63302 18.1816 5.56754 18.1816 4.25879C18.1814 2.92948 17.1236 1.85166 15.8184 1.85156C14.5131 1.85156 13.4543 2.92942 13.4541 4.25879C13.4541 4.77 13.0478 5.1853 12.5459 5.18555C12.0438 5.18555 11.6367 4.77015 11.6367 4.25879C11.6369 1.90669 13.5089 1.78959e-08 15.8184 0Z" fill="#FFFFFF"/></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><rect width="100" height="100" fill="#6662FF"/><g transform="translate(12 12) scale(3.8)"><path d="M4.22852 11.4824C4.70889 11.5072 5.09082 11.9118 5.09082 12.4072C5.09079 12.9026 4.70887 13.3073 4.22852 13.332L4.18164 13.333L4.12109 13.334C2.84399 13.367 1.81847 14.4316 1.81836 15.7402C1.81836 17.0697 2.87632 18.1474 4.18164 18.1475C5.48704 18.1475 6.5459 17.0698 6.5459 15.7402C6.54601 15.2291 6.9523 14.8147 7.4541 14.8145C7.95611 14.8145 8.36317 15.229 8.36328 15.7402C8.36328 18.0925 6.4912 20 4.18164 20C1.87217 19.9999 0 18.0925 0 15.7402C0.000111019 13.4248 1.81463 11.5407 4.07422 11.4824L4.18164 11.4814L4.22852 11.4824Z" fill="#FFFFFF"/><path d="M4.18164 0C6.49854 0 8.36308 1.92748 8.36328 4.28809V9.07422H11.6367V7.59277C11.6367 7.08141 12.0438 6.66699 12.5459 6.66699C13.0478 6.66724 13.4541 7.08156 13.4541 7.59277V9.07422H14C14.5021 9.07422 14.9092 9.48863 14.9092 10C14.9091 10.5113 14.502 10.9258 14 10.9258H13.4541V15.7109C13.4541 17.0643 14.5204 18.1475 15.8184 18.1475C17.1162 18.1474 18.1816 17.0642 18.1816 15.7109C18.1815 14.3578 17.1161 13.2745 15.8184 13.2744C15.3163 13.2744 14.9092 12.86 14.9092 12.3486C14.9092 11.8373 15.3163 11.4229 15.8184 11.4229C18.1352 11.4229 19.9999 13.3503 20 15.7109C20 18.0717 18.1353 19.9999 15.8184 20C13.5013 20 11.6367 18.0717 11.6367 15.7109V10.9258H8.36328V12.4072C8.36325 12.9186 7.95616 13.333 7.4541 13.333C6.95225 13.3328 6.54593 12.9184 6.5459 12.4072V10.9258H6C5.49799 10.9258 5.09092 10.5113 5.09082 10C5.09082 9.48863 5.49792 9.07422 6 9.07422H6.5459V4.28809C6.54569 2.93493 5.47945 1.85156 4.18164 1.85156C2.88391 1.85166 1.81856 2.93499 1.81836 4.28809C1.81839 5.64134 2.88381 6.72451 4.18164 6.72461C4.68354 6.72461 5.09054 7.13927 5.09082 7.65039C5.09082 8.16176 4.68372 8.57715 4.18164 8.57715C1.86472 8.57705 3.01308e-05 6.64879 0 4.28809C0.000204809 1.92754 1.86483 9.8542e-05 4.18164 0Z" fill="#FFFFFF"/><path d="M15.8184 0C18.1277 9.81717e-05 19.9998 1.90675 20 4.25879C20 6.57431 18.1854 8.45828 15.9258 8.5166L15.8184 8.51855L15.7715 8.51758C15.2912 8.49283 14.9093 8.08804 14.9092 7.59277C14.9092 7.09736 15.2911 6.69273 15.7715 6.66797L15.8184 6.66699L15.8789 6.66602C17.1561 6.63302 18.1816 5.56754 18.1816 4.25879C18.1814 2.92948 17.1236 1.85166 15.8184 1.85156C14.5131 1.85156 13.4543 2.92942 13.4541 4.25879C13.4541 4.77 13.0478 5.1853 12.5459 5.18555C12.0438 5.18555 11.6367 4.77015 11.6367 4.25879C11.6369 1.90669 13.5089 1.78959e-08 15.8184 0Z" fill="#FFFFFF"/></g></svg>
|