n8n-nodes-yourang 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.md +19 -0
- package/README.md +86 -0
- package/dist/credentials/YourangApi.credentials.d.ts +9 -0
- package/dist/credentials/YourangApi.credentials.js +47 -0
- package/dist/credentials/YourangApi.credentials.js.map +1 -0
- package/dist/nodes/Yourang/Yourang.node.d.ts +5 -0
- package/dist/nodes/Yourang/Yourang.node.js +297 -0
- package/dist/nodes/Yourang/Yourang.node.js.map +1 -0
- package/dist/nodes/Yourang/YourangDescription.d.ts +3 -0
- package/dist/nodes/Yourang/YourangDescription.js +623 -0
- package/dist/nodes/Yourang/YourangDescription.js.map +1 -0
- package/dist/nodes/Yourang/yourang.svg +43 -0
- package/dist/package.json +54 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.js +3 -0
- package/package.json +54 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Copyright 2025 Reddoak SRL
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
5
|
+
the Software without restriction, including without limitation the rights to
|
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
8
|
+
so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# n8n-nodes-yourang
|
|
2
|
+
|
|
3
|
+
This is an n8n community node. It lets you use Yourang.ai in your n8n workflows.
|
|
4
|
+
|
|
5
|
+
Yourang.ai is a 24/7 AI phone assistant that handles calls, appointments, and customer interactions automatically. It provides intelligent call routing, appointment scheduling, transcription services, and customer data collection.
|
|
6
|
+
|
|
7
|
+
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
8
|
+
|
|
9
|
+
[Installation](#installation)
|
|
10
|
+
[Operations](#operations)
|
|
11
|
+
[Credentials](#credentials)
|
|
12
|
+
[Compatibility](#compatibility)
|
|
13
|
+
[Usage](#usage)
|
|
14
|
+
[Resources](#resources)
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
19
|
+
|
|
20
|
+
## Operations
|
|
21
|
+
|
|
22
|
+
This node supports the following operations:
|
|
23
|
+
|
|
24
|
+
### Call Operations
|
|
25
|
+
- **Get Call**: Retrieve details of a specific call by ID
|
|
26
|
+
- **Get All Calls**: Retrieve all calls with optional filtering by date range and status
|
|
27
|
+
- **Get Call Transcript**: Get the transcript of a specific call
|
|
28
|
+
|
|
29
|
+
### Appointment Operations
|
|
30
|
+
- **Create**: Schedule a new appointment with customer details
|
|
31
|
+
- **Update**: Modify an existing appointment
|
|
32
|
+
- **Get**: Retrieve details of a specific appointment
|
|
33
|
+
- **Get All**: List all appointments
|
|
34
|
+
- **Cancel**: Cancel an existing appointment
|
|
35
|
+
|
|
36
|
+
### Contact Operations
|
|
37
|
+
- **Create**: Add a new customer contact
|
|
38
|
+
- **Update**: Modify existing contact information
|
|
39
|
+
- **Get**: Retrieve details of a specific contact
|
|
40
|
+
- **Get All**: List all contacts
|
|
41
|
+
|
|
42
|
+
### Analytics Operations
|
|
43
|
+
- **Get Call Statistics**: Retrieve call metrics and performance data
|
|
44
|
+
- **Get Performance Report**: Generate performance reports for specified time periods
|
|
45
|
+
|
|
46
|
+
## Credentials
|
|
47
|
+
|
|
48
|
+
To use this node, you need to set up authentication with Yourang.ai:
|
|
49
|
+
|
|
50
|
+
1. Sign up for a Yourang.ai account at [yourang.ai](https://yourang.ai/)
|
|
51
|
+
2. Access your dashboard to generate an API key
|
|
52
|
+
3. In n8n, create new credentials for "Yourang API"
|
|
53
|
+
4. Enter your API key and base URL (default: https://api.yourang.ai/v1)
|
|
54
|
+
|
|
55
|
+
The node uses Bearer token authentication for all API requests.
|
|
56
|
+
|
|
57
|
+
## Compatibility
|
|
58
|
+
|
|
59
|
+
- **Minimum n8n version**: 0.87.0
|
|
60
|
+
- **Tested with**: n8n 1.105.4
|
|
61
|
+
|
|
62
|
+
## Usage
|
|
63
|
+
|
|
64
|
+
### Basic Workflow Examples
|
|
65
|
+
|
|
66
|
+
1. **Call Monitoring**: Set up automated workflows to process completed calls and sync data to your CRM
|
|
67
|
+
2. **Appointment Management**: Automatically create calendar events when new appointments are scheduled
|
|
68
|
+
3. **Customer Data Sync**: Keep customer information synchronized between Yourang.ai and other systems
|
|
69
|
+
4. **Analytics Reports**: Generate daily/weekly reports on call performance and metrics
|
|
70
|
+
|
|
71
|
+
### Common Use Cases
|
|
72
|
+
|
|
73
|
+
- Sync call data to external CRM systems
|
|
74
|
+
- Send notifications when important calls are completed
|
|
75
|
+
- Automatically schedule follow-up tasks based on call outcomes
|
|
76
|
+
- Generate performance dashboards from analytics data
|
|
77
|
+
|
|
78
|
+
## Resources
|
|
79
|
+
|
|
80
|
+
* [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
|
|
81
|
+
* [Yourang.ai website](https://yourang.ai/)
|
|
82
|
+
* [Yourang.ai Developer Documentation](https://developers.yourang.ai/)
|
|
83
|
+
|
|
84
|
+
## License
|
|
85
|
+
|
|
86
|
+
[MIT](LICENSE.md)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class YourangApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.YourangApi = void 0;
|
|
4
|
+
class YourangApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'yourangApi';
|
|
7
|
+
this.displayName = 'Yourang API';
|
|
8
|
+
this.documentationUrl = 'https://developers.yourang.ai/';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'API Key',
|
|
12
|
+
name: 'apiKey',
|
|
13
|
+
type: 'string',
|
|
14
|
+
typeOptions: {
|
|
15
|
+
password: true,
|
|
16
|
+
},
|
|
17
|
+
default: '',
|
|
18
|
+
description: 'Your Yourang API key. Get it from your Yourang dashboard.',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
displayName: 'API Base URL',
|
|
22
|
+
name: 'baseUrl',
|
|
23
|
+
type: 'string',
|
|
24
|
+
default: 'https://api.yourang.ai/v1',
|
|
25
|
+
description: 'The base URL for the Yourang API',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
this.authenticate = {
|
|
29
|
+
type: 'generic',
|
|
30
|
+
properties: {
|
|
31
|
+
headers: {
|
|
32
|
+
Authorization: '={{"Bearer " + $credentials.apiKey}}',
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
this.test = {
|
|
38
|
+
request: {
|
|
39
|
+
baseURL: '={{$credentials?.baseUrl}}',
|
|
40
|
+
url: '/status',
|
|
41
|
+
method: 'GET',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.YourangApi = YourangApi;
|
|
47
|
+
//# sourceMappingURL=YourangApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YourangApi.credentials.js","sourceRoot":"","sources":["../../credentials/YourangApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAU;IAAvB;QACC,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,aAAa,CAAC;QAC5B,qBAAgB,GAAG,gCAAgC,CAAC;QACpD,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,2DAA2D;aACxE;YACD;gBACC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,kCAAkC;aAC/C;SACD,CAAC;QAIF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,sCAAsC;oBACrD,cAAc,EAAE,kBAAkB;iBAClC;aACD;SACD,CAAC;QAGF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,4BAA4B;gBACrC,GAAG,EAAE,SAAS;gBACd,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AA5CD,gCA4CC"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Yourang = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const YourangDescription_1 = require("./YourangDescription");
|
|
6
|
+
class Yourang {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'Yourang',
|
|
10
|
+
name: 'yourang',
|
|
11
|
+
icon: { light: 'file:yourang.svg', dark: 'file:yourang.svg' },
|
|
12
|
+
group: ['transform'],
|
|
13
|
+
version: 1,
|
|
14
|
+
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
|
|
15
|
+
description: 'Interact with Yourang.ai - 24/7 AI phone assistant',
|
|
16
|
+
defaults: {
|
|
17
|
+
name: 'Yourang',
|
|
18
|
+
},
|
|
19
|
+
inputs: ["main"],
|
|
20
|
+
outputs: ["main"],
|
|
21
|
+
usableAsTool: true,
|
|
22
|
+
credentials: [
|
|
23
|
+
{
|
|
24
|
+
name: 'yourangApi',
|
|
25
|
+
required: true,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
requestDefaults: {
|
|
29
|
+
baseURL: '={{$credentials.baseUrl}}',
|
|
30
|
+
headers: {
|
|
31
|
+
Accept: 'application/json',
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
properties: [
|
|
36
|
+
{
|
|
37
|
+
displayName: 'Resource',
|
|
38
|
+
name: 'resource',
|
|
39
|
+
type: 'options',
|
|
40
|
+
noDataExpression: true,
|
|
41
|
+
options: [
|
|
42
|
+
{
|
|
43
|
+
name: 'Call History',
|
|
44
|
+
value: 'callHistory',
|
|
45
|
+
description: 'Retrieve and manage call history records',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Contact',
|
|
49
|
+
value: 'contact',
|
|
50
|
+
description: 'Manage customer contacts and information',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'Action',
|
|
54
|
+
value: 'action',
|
|
55
|
+
description: 'Execute actions and manage action configurations',
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
default: 'callHistory',
|
|
59
|
+
},
|
|
60
|
+
...YourangDescription_1.yourangOperations,
|
|
61
|
+
...YourangDescription_1.yourangFields,
|
|
62
|
+
],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async execute() {
|
|
66
|
+
const items = this.getInputData();
|
|
67
|
+
const returnData = [];
|
|
68
|
+
const resource = this.getNodeParameter('resource', 0);
|
|
69
|
+
const operation = this.getNodeParameter('operation', 0);
|
|
70
|
+
const credentials = await this.getCredentials('yourangApi');
|
|
71
|
+
const baseUrl = credentials.baseUrl;
|
|
72
|
+
for (let i = 0; i < items.length; i++) {
|
|
73
|
+
try {
|
|
74
|
+
let responseData;
|
|
75
|
+
if (resource === 'callHistory') {
|
|
76
|
+
if (operation === 'get') {
|
|
77
|
+
const callId = this.getNodeParameter('callId', i);
|
|
78
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
79
|
+
method: 'GET',
|
|
80
|
+
url: `${baseUrl}/call-history/${callId}`,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (operation === 'getAll') {
|
|
84
|
+
const returnAll = this.getNodeParameter('returnAll', i);
|
|
85
|
+
const filters = this.getNodeParameter('filters', i);
|
|
86
|
+
let qs = {};
|
|
87
|
+
if (!returnAll) {
|
|
88
|
+
const limit = this.getNodeParameter('limit', i);
|
|
89
|
+
qs.limit = limit;
|
|
90
|
+
}
|
|
91
|
+
if (filters.sort)
|
|
92
|
+
qs.sort = filters.sort;
|
|
93
|
+
if (filters.call_type)
|
|
94
|
+
qs.call_type = filters.call_type;
|
|
95
|
+
if (filters.call_status)
|
|
96
|
+
qs.call_status = filters.call_status;
|
|
97
|
+
if (typeof filters.is_outbound === 'boolean')
|
|
98
|
+
qs.is_outbound = filters.is_outbound;
|
|
99
|
+
if (filters.phone_number)
|
|
100
|
+
qs.phone_number = filters.phone_number;
|
|
101
|
+
if (filters.contact_id)
|
|
102
|
+
qs.contact_id = filters.contact_id;
|
|
103
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
104
|
+
method: 'GET',
|
|
105
|
+
url: `${baseUrl}/call-history`,
|
|
106
|
+
qs,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (resource === 'contact') {
|
|
111
|
+
if (operation === 'create') {
|
|
112
|
+
const body = {
|
|
113
|
+
first_name: this.getNodeParameter('first_name', i),
|
|
114
|
+
phone_number: this.getNodeParameter('phone_number', i),
|
|
115
|
+
};
|
|
116
|
+
const lastName = this.getNodeParameter('last_name', i);
|
|
117
|
+
const email = this.getNodeParameter('email', i);
|
|
118
|
+
const address = this.getNodeParameter('address', i);
|
|
119
|
+
if (lastName)
|
|
120
|
+
body.last_name = lastName;
|
|
121
|
+
if (email)
|
|
122
|
+
body.email = email;
|
|
123
|
+
if (address)
|
|
124
|
+
body.address = address;
|
|
125
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
126
|
+
method: 'POST',
|
|
127
|
+
url: `${baseUrl}/contacts`,
|
|
128
|
+
body,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
if (operation === 'update') {
|
|
132
|
+
const contactId = this.getNodeParameter('contactId', i);
|
|
133
|
+
const body = {};
|
|
134
|
+
const firstName = this.getNodeParameter('first_name', i);
|
|
135
|
+
const lastName = this.getNodeParameter('last_name', i);
|
|
136
|
+
const phoneNumber = this.getNodeParameter('phone_number', i);
|
|
137
|
+
const email = this.getNodeParameter('email', i);
|
|
138
|
+
const address = this.getNodeParameter('address', i);
|
|
139
|
+
if (firstName)
|
|
140
|
+
body.first_name = firstName;
|
|
141
|
+
if (lastName)
|
|
142
|
+
body.last_name = lastName;
|
|
143
|
+
if (phoneNumber)
|
|
144
|
+
body.phone_number = phoneNumber;
|
|
145
|
+
if (email)
|
|
146
|
+
body.email = email;
|
|
147
|
+
if (address)
|
|
148
|
+
body.address = address;
|
|
149
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
150
|
+
method: 'PUT',
|
|
151
|
+
url: `${baseUrl}/contacts/${contactId}`,
|
|
152
|
+
body,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if (operation === 'get') {
|
|
156
|
+
const contactId = this.getNodeParameter('contactId', i);
|
|
157
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
158
|
+
method: 'GET',
|
|
159
|
+
url: `${baseUrl}/contacts/${contactId}`,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
if (operation === 'delete') {
|
|
163
|
+
const contactId = this.getNodeParameter('contactId', i);
|
|
164
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
165
|
+
method: 'DELETE',
|
|
166
|
+
url: `${baseUrl}/contacts/${contactId}`,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
if (operation === 'getAll') {
|
|
170
|
+
const returnAll = this.getNodeParameter('returnAll', i);
|
|
171
|
+
const filters = this.getNodeParameter('filters', i);
|
|
172
|
+
let qs = {};
|
|
173
|
+
if (!returnAll) {
|
|
174
|
+
const limit = this.getNodeParameter('limit', i);
|
|
175
|
+
qs.limit = limit;
|
|
176
|
+
}
|
|
177
|
+
if (filters.search)
|
|
178
|
+
qs.search = filters.search;
|
|
179
|
+
if (filters.sort)
|
|
180
|
+
qs.sort = filters.sort;
|
|
181
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
182
|
+
method: 'GET',
|
|
183
|
+
url: `${baseUrl}/contacts`,
|
|
184
|
+
qs,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (resource === 'action') {
|
|
189
|
+
if (operation === 'listActions') {
|
|
190
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
191
|
+
method: 'GET',
|
|
192
|
+
url: `${baseUrl}/actions/`,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
if (operation === 'executeSingle') {
|
|
196
|
+
const configurationId = this.getNodeParameter('configurationId', i);
|
|
197
|
+
const toNumber = this.getNodeParameter('to_number', i);
|
|
198
|
+
const body = {
|
|
199
|
+
to_number: toNumber,
|
|
200
|
+
};
|
|
201
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
202
|
+
method: 'POST',
|
|
203
|
+
url: `${baseUrl}/actions/${configurationId}/execute`,
|
|
204
|
+
body,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
if (operation === 'executeBatchNumbers') {
|
|
208
|
+
const configurationId = this.getNodeParameter('configurationId', i);
|
|
209
|
+
const toNumbersString = this.getNodeParameter('to_numbers', i);
|
|
210
|
+
const toNumbers = toNumbersString.split('\n').map(num => num.trim()).filter(num => num);
|
|
211
|
+
const body = {
|
|
212
|
+
to_numbers: toNumbers,
|
|
213
|
+
};
|
|
214
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
215
|
+
method: 'POST',
|
|
216
|
+
url: `${baseUrl}/actions/${configurationId}/batch/numbers`,
|
|
217
|
+
body,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
if (operation === 'executeBatchContacts') {
|
|
221
|
+
const configurationId = this.getNodeParameter('configurationId', i);
|
|
222
|
+
const contactIdsString = this.getNodeParameter('contact_ids', i);
|
|
223
|
+
const contactIds = contactIdsString.split('\n').map(id => id.trim()).filter(id => id);
|
|
224
|
+
const body = {
|
|
225
|
+
contact_ids: contactIds,
|
|
226
|
+
};
|
|
227
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
228
|
+
method: 'POST',
|
|
229
|
+
url: `${baseUrl}/actions/${configurationId}/batch/contacts`,
|
|
230
|
+
body,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
if (operation === 'getActionHistory') {
|
|
234
|
+
const returnAll = this.getNodeParameter('returnAll', i);
|
|
235
|
+
const filters = this.getNodeParameter('filters', i);
|
|
236
|
+
let qs = {};
|
|
237
|
+
if (!returnAll) {
|
|
238
|
+
const limit = this.getNodeParameter('limit', i);
|
|
239
|
+
qs.limit = limit;
|
|
240
|
+
}
|
|
241
|
+
if (filters.configuration_id)
|
|
242
|
+
qs.configuration_id = filters.configuration_id;
|
|
243
|
+
if (filters.batch_id)
|
|
244
|
+
qs.batch_id = filters.batch_id;
|
|
245
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
246
|
+
method: 'GET',
|
|
247
|
+
url: `${baseUrl}/actions/history`,
|
|
248
|
+
qs,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
if (operation === 'getActionHistoryDetails') {
|
|
252
|
+
const actionHistoryId = this.getNodeParameter('actionHistoryId', i);
|
|
253
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
254
|
+
method: 'GET',
|
|
255
|
+
url: `${baseUrl}/actions/history/${actionHistoryId}`,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
if (operation === 'getBatchHistory') {
|
|
259
|
+
const returnAll = this.getNodeParameter('returnAll', i);
|
|
260
|
+
let qs = {};
|
|
261
|
+
if (!returnAll) {
|
|
262
|
+
const limit = this.getNodeParameter('limit', i);
|
|
263
|
+
qs.limit = limit;
|
|
264
|
+
}
|
|
265
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
266
|
+
method: 'GET',
|
|
267
|
+
url: `${baseUrl}/actions/batch-history`,
|
|
268
|
+
qs,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
if (operation === 'getBatchHistoryDetails') {
|
|
272
|
+
const batchExecuteId = this.getNodeParameter('batchExecuteId', i);
|
|
273
|
+
responseData = await this.helpers.httpRequestWithAuthentication.call(this, 'yourangApi', {
|
|
274
|
+
method: 'GET',
|
|
275
|
+
url: `${baseUrl}/actions/batch-history/${batchExecuteId}`,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const executionData = this.helpers.constructExecutionMetaData([{ json: responseData }], { itemData: { item: i } });
|
|
280
|
+
returnData.push(...executionData);
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
if (this.continueOnFail()) {
|
|
284
|
+
const executionErrorData = this.helpers.constructExecutionMetaData([{ json: { error: error.message } }], { itemData: { item: i } });
|
|
285
|
+
returnData.push(...executionErrorData);
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
|
|
289
|
+
itemIndex: i,
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return [returnData];
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
exports.Yourang = Yourang;
|
|
297
|
+
//# sourceMappingURL=Yourang.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Yourang.node.js","sourceRoot":"","sources":["../../../nodes/Yourang/Yourang.node.ts"],"names":[],"mappings":"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"}
|