n8n-nodes-shortio 0.1.1 → 1.0.1
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 +104 -32
- package/dist/nodes/Shortio/Descriptions/LinkDescription.d.ts +1 -1
- package/dist/nodes/Shortio/Descriptions/LinkDescription.js +83 -121
- package/dist/nodes/Shortio/Descriptions/LinkDescription.js.map +1 -1
- package/dist/nodes/Shortio/Descriptions/LinkDescriptionV2.d.ts +3 -0
- package/dist/nodes/Shortio/Descriptions/LinkDescriptionV2.js +749 -0
- package/dist/nodes/Shortio/Descriptions/LinkDescriptionV2.js.map +1 -0
- package/dist/nodes/Shortio/Descriptions/StatisticsDescription.d.ts +3 -0
- package/dist/nodes/Shortio/Descriptions/StatisticsDescription.js +237 -0
- package/dist/nodes/Shortio/Descriptions/StatisticsDescription.js.map +1 -0
- package/dist/nodes/Shortio/GenericFunctions.d.ts +6 -1
- package/dist/nodes/Shortio/GenericFunctions.js +36 -4
- package/dist/nodes/Shortio/GenericFunctions.js.map +1 -1
- package/dist/nodes/Shortio/Interfaces.d.ts +46 -28
- package/dist/nodes/Shortio/Resources.js +0 -4
- package/dist/nodes/Shortio/Resources.js.map +1 -1
- package/dist/nodes/Shortio/Shortio.node.d.ts +3 -4
- package/dist/nodes/Shortio/Shortio.node.js +12 -309
- package/dist/nodes/Shortio/Shortio.node.js.map +1 -1
- package/dist/nodes/Shortio/Shortio.node.json +5 -4
- package/dist/nodes/Shortio/oldVersionNotice.d.ts +2 -0
- package/dist/nodes/Shortio/oldVersionNotice.js +10 -0
- package/dist/nodes/Shortio/oldVersionNotice.js.map +1 -0
- package/dist/nodes/Shortio/v1/ShortioV1.node.d.ts +6 -0
- package/dist/nodes/Shortio/v1/ShortioV1.node.js +325 -0
- package/dist/nodes/Shortio/v1/ShortioV1.node.js.map +1 -0
- package/dist/nodes/Shortio/v2/ShortioV2.node.d.ts +11 -0
- package/dist/nodes/Shortio/v2/ShortioV2.node.js +480 -0
- package/dist/nodes/Shortio/v2/ShortioV2.node.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +52 -52
package/README.md
CHANGED
|
@@ -1,78 +1,150 @@
|
|
|
1
1
|
# Table of Contents
|
|
2
|
+
|
|
2
3
|
- [Table of Contents](#table-of-contents)
|
|
3
4
|
- [Overview of Community Short.io n8n Node](#overview-of-community-shortio-n8n-node)
|
|
4
|
-
- [If you want a custom node](#if-you-want-a-custom-node)
|
|
5
5
|
- [Bugs/Contributing/Feature Request](#bugscontributingfeature-request)
|
|
6
6
|
- [Documentation](#documentation)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
- [Installation](#installation)
|
|
8
|
+
- [Credentials](#credentials)
|
|
9
|
+
- [Links](#links)
|
|
10
|
+
- [List Links](#list-links)
|
|
11
|
+
- [Get Link Info](#get-link-info)
|
|
12
|
+
- [Create Link](#create-link)
|
|
13
|
+
- [Update Existing Link](#update-existing-link)
|
|
14
|
+
- [Delete Link](#delete-link)
|
|
15
|
+
- [Generate QR For Link](#generate-qr-for-link)
|
|
16
|
+
- [Statistics](#statistics)
|
|
17
|
+
- [Get Link Statistics](#get-link-statistics)
|
|
18
|
+
- [Get Domain Statistics](#get-domain-statistics)
|
|
15
19
|
|
|
16
20
|
# Overview of Community Short.io n8n Node
|
|
17
|
-
I have no affiliation with short.io beyond being a user.
|
|
18
|
-
|
|
19
|
-
I created this node for use within my company as well as for our clients. I left out a few features, but I included the options for them so people can see what is possible. Feel free to submit a PR with the updated functionality, or get in touch to discuss us completing it.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
Please reach out to me using the info on [my GitHub page](https://github.com/liamdmcgarrigle). \
|
|
23
|
-
Nodes can be built for the community as well as privately just for one organization.
|
|
22
|
+
I have no affiliation with short.io beyond being a user. I work for n8n but this is not an official node.
|
|
24
23
|
|
|
25
24
|
# Bugs/Contributing/Feature Request
|
|
26
25
|
|
|
27
26
|
If you have a bug to report or a feature request, please [submit a GitHub issue](https://github.com/liamdmcgarrigle/n8n-nodes-shortio/issues/new) with as much detail as you're able to give.
|
|
28
27
|
|
|
29
|
-
Feel free to submit PRs, but please get in touch with me first to make sure I am willing to add the feature before you spend the time on it.
|
|
30
|
-
|
|
31
28
|
# Documentation
|
|
32
29
|
|
|
33
30
|
## Installation
|
|
34
31
|
|
|
35
|
-
This
|
|
32
|
+
This is now available on cloud as a verified community node. Simply search for shortio in the node panel.
|
|
36
33
|
|
|
37
|
-
|
|
34
|
+
Or follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
38
35
|
|
|
39
36
|
## Credentials
|
|
40
37
|
|
|
41
38
|
To use this node you will need to set up short.io credentials with a key from short.io. You also will need an account and may need a paid account.
|
|
42
39
|
|
|
43
40
|
1. Go to https://app.short.io/settings/integrations/api-key and click on "Create API Key"
|
|
44
|
-

|
|
41
|
+

|
|
45
42
|
|
|
46
43
|
2. Add a description, pick the domain to use, and press "Create"
|
|
47
|
-

|
|
44
|
+

|
|
48
45
|
|
|
49
46
|
3. Copy your new token. It will only be shown once
|
|
50
47
|
|
|
51
48
|
4. Go to the credential page in n8n, in add credentials add "Short.io API", then paste in your token. Then add the domain you chose in the previous step and press save
|
|
52
|
-

|
|
49
|
+

|
|
53
50
|
|
|
54
51
|
## Links
|
|
55
52
|
|
|
56
53
|
### List Links
|
|
57
|
-
Get a list of your short links. These will only be links from the domain in your credential.
|
|
58
54
|
|
|
59
|
-
|
|
55
|
+
Get a list of your short links. These will only be links from the domain in your credential.
|
|
56
|
+
|
|
57
|
+
You will need to choose how many results are returned. Anything over 150 is automatically paginationed.
|
|
60
58
|
|
|
61
59
|
You can filter the results by adding:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
|
|
61
|
+
- **Before date**: returns links before the listed date
|
|
62
|
+
- **After date**: returns links after the listed date
|
|
63
|
+
- **Date Sort Order**: changes the order the links are in based on the date
|
|
65
64
|
|
|
66
65
|
### Get Link Info
|
|
67
|
-
Get link details from the domain in your credential and the path.
|
|
68
66
|
|
|
67
|
+
Get link details from the domain in your credential and the path.
|
|
69
68
|
|
|
70
69
|
### Create Link
|
|
71
|
-
|
|
70
|
+
|
|
71
|
+
Create a link. There are many options available in the additional fields:
|
|
72
|
+
|
|
73
|
+
- **Path**: Custom path for the short link
|
|
74
|
+
- **Folder**: Assign the link to a folder (select from list or enter folder ID)
|
|
75
|
+
- **Allow Duplicates**: Allow multiple links with the same original URL
|
|
76
|
+
- **Title**: Title shown in the short.io admin panel
|
|
77
|
+
- **Expiration settings**: Set expiry date and redirect URL for expired links
|
|
78
|
+
- **Device-specific URLs**: Separate URLs for iPhone and Android users
|
|
79
|
+
- **Cloaking**: Hide the original URL in the browser address bar
|
|
80
|
+
- **Redirect Type**: Choose HTTP redirect code (301, 302, etc.)
|
|
81
|
+
- **Password**: Password-protect the link (requires Personal plan)
|
|
82
|
+
- **UTM Parameters**: Add tracking parameters (source, medium, campaign, term, content)
|
|
83
|
+
- **Tags**: Add tags to organize your links
|
|
72
84
|
|
|
73
85
|
### Update Existing Link
|
|
74
|
-
|
|
75
|
-
You can
|
|
86
|
+
|
|
87
|
+
You can update an existing short link by using the path or the link `idString`.
|
|
88
|
+
You can change anything about the link including the full long URL and folder assignment.
|
|
76
89
|
|
|
77
90
|
### Delete Link
|
|
78
|
-
|
|
91
|
+
|
|
92
|
+
You can delete an existing short link by using the path or the link `idString`.
|
|
93
|
+
|
|
94
|
+
### Generate QR For Link
|
|
95
|
+
|
|
96
|
+
Generate a QR code image for any short link. You can identify the link by path or `idString`.
|
|
97
|
+
|
|
98
|
+
Options available:
|
|
99
|
+
|
|
100
|
+
- **Color**: QR code foreground color
|
|
101
|
+
- **Background Color**: QR code background color
|
|
102
|
+
- **Size**: QR code size (1-99)
|
|
103
|
+
- **Type**: Image format (PNG or SVG)
|
|
104
|
+
|
|
105
|
+
The operation returns binary data that can be used with other n8n nodes (e.g., save to file, send via email, upload to cloud storage).
|
|
106
|
+
|
|
107
|
+
## Statistics
|
|
108
|
+
|
|
109
|
+
Get detailed analytics for your links and domain.
|
|
110
|
+
|
|
111
|
+
### Get Link Statistics
|
|
112
|
+
|
|
113
|
+
Get detailed statistics for a specific link. Identify the link by path or `idString`.
|
|
114
|
+
|
|
115
|
+
**Period options:**
|
|
116
|
+
|
|
117
|
+
- Today
|
|
118
|
+
- Yesterday
|
|
119
|
+
- Last 7 Days
|
|
120
|
+
- Last 30 Days
|
|
121
|
+
- Last Month
|
|
122
|
+
- All Time
|
|
123
|
+
- Custom (specify start and end dates)
|
|
124
|
+
|
|
125
|
+
**Additional options:**
|
|
126
|
+
|
|
127
|
+
- **Clicks Chart Interval**: Data granularity for the clicks chart (hour, day, week, month)
|
|
128
|
+
- **Skip Top Records**: Skip top records like referer, browser, and country breakdowns
|
|
129
|
+
|
|
130
|
+
Returns detailed statistics including total clicks, human clicks, click trends, and breakdowns by referer, browser, country, and more.
|
|
131
|
+
|
|
132
|
+
### Get Domain Statistics
|
|
133
|
+
|
|
134
|
+
Get detailed statistics for your entire domain (as configured in your credentials).
|
|
135
|
+
|
|
136
|
+
**Period options:**
|
|
137
|
+
|
|
138
|
+
- Today
|
|
139
|
+
- Yesterday
|
|
140
|
+
- Last 7 Days
|
|
141
|
+
- Last 30 Days
|
|
142
|
+
- Last Month
|
|
143
|
+
- All Time
|
|
144
|
+
- Custom (specify start and end dates)
|
|
145
|
+
|
|
146
|
+
**Additional options:**
|
|
147
|
+
|
|
148
|
+
- **Clicks Chart Interval**: Data granularity for the clicks chart (hour, day, week, month)
|
|
149
|
+
|
|
150
|
+
Returns domain-wide statistics including total clicks, link counts, clicks per link averages, and breakdowns by referer, browser, country, and more.
|
|
@@ -42,9 +42,7 @@ exports.linkOperations = [
|
|
|
42
42
|
default: 'getLinkList',
|
|
43
43
|
displayOptions: {
|
|
44
44
|
show: {
|
|
45
|
-
resource: [
|
|
46
|
-
'links',
|
|
47
|
-
]
|
|
45
|
+
resource: ['links'],
|
|
48
46
|
},
|
|
49
47
|
},
|
|
50
48
|
},
|
|
@@ -63,13 +61,9 @@ exports.linkFields = [
|
|
|
63
61
|
description: 'The number of domains that will be returned',
|
|
64
62
|
displayOptions: {
|
|
65
63
|
show: {
|
|
66
|
-
resource: [
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
operation: [
|
|
70
|
-
'getLinkList'
|
|
71
|
-
]
|
|
72
|
-
}
|
|
64
|
+
resource: ['links'],
|
|
65
|
+
operation: ['getLinkList'],
|
|
66
|
+
},
|
|
73
67
|
},
|
|
74
68
|
},
|
|
75
69
|
{
|
|
@@ -80,13 +74,9 @@ exports.linkFields = [
|
|
|
80
74
|
placeholder: 'Add Field',
|
|
81
75
|
displayOptions: {
|
|
82
76
|
show: {
|
|
83
|
-
resource: [
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
operation: [
|
|
87
|
-
'getLinkList'
|
|
88
|
-
]
|
|
89
|
-
}
|
|
77
|
+
resource: ['links'],
|
|
78
|
+
operation: ['getLinkList'],
|
|
79
|
+
},
|
|
90
80
|
},
|
|
91
81
|
options: [
|
|
92
82
|
{
|
|
@@ -118,26 +108,22 @@ exports.linkFields = [
|
|
|
118
108
|
},
|
|
119
109
|
],
|
|
120
110
|
default: 'asc',
|
|
121
|
-
}
|
|
111
|
+
},
|
|
122
112
|
],
|
|
123
113
|
},
|
|
124
114
|
{
|
|
125
115
|
displayName: 'Path',
|
|
126
116
|
name: 'path',
|
|
127
|
-
description:
|
|
117
|
+
description: 'The path of the link',
|
|
128
118
|
type: 'string',
|
|
129
119
|
required: true,
|
|
130
120
|
default: '',
|
|
131
|
-
placeholder:
|
|
121
|
+
placeholder: '6fzQYy',
|
|
132
122
|
displayOptions: {
|
|
133
123
|
show: {
|
|
134
|
-
resource: [
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
operation: [
|
|
138
|
-
'getLinkInfo'
|
|
139
|
-
]
|
|
140
|
-
}
|
|
124
|
+
resource: ['links'],
|
|
125
|
+
operation: ['getLinkInfo'],
|
|
126
|
+
},
|
|
141
127
|
},
|
|
142
128
|
},
|
|
143
129
|
{
|
|
@@ -146,16 +132,12 @@ exports.linkFields = [
|
|
|
146
132
|
type: 'string',
|
|
147
133
|
required: true,
|
|
148
134
|
default: '',
|
|
149
|
-
placeholder:
|
|
135
|
+
placeholder: 'https://iAmALongURL.com',
|
|
150
136
|
displayOptions: {
|
|
151
137
|
show: {
|
|
152
|
-
resource: [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
operation: [
|
|
156
|
-
'createLink'
|
|
157
|
-
]
|
|
158
|
-
}
|
|
138
|
+
resource: ['links'],
|
|
139
|
+
operation: ['createLink'],
|
|
140
|
+
},
|
|
159
141
|
},
|
|
160
142
|
},
|
|
161
143
|
{
|
|
@@ -166,37 +148,33 @@ exports.linkFields = [
|
|
|
166
148
|
placeholder: 'Add Field',
|
|
167
149
|
displayOptions: {
|
|
168
150
|
show: {
|
|
169
|
-
resource: [
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
operation: [
|
|
173
|
-
'createLink'
|
|
174
|
-
]
|
|
175
|
-
}
|
|
151
|
+
resource: ['links'],
|
|
152
|
+
operation: ['createLink'],
|
|
153
|
+
},
|
|
176
154
|
},
|
|
177
155
|
options: [
|
|
178
156
|
{
|
|
179
157
|
displayName: 'Path',
|
|
180
158
|
name: 'path',
|
|
181
|
-
description:
|
|
159
|
+
description: 'The path of the link',
|
|
182
160
|
type: 'string',
|
|
183
161
|
default: '',
|
|
184
|
-
placeholder:
|
|
162
|
+
placeholder: '6fzQYy',
|
|
185
163
|
},
|
|
186
164
|
{
|
|
187
165
|
displayName: 'Allow Duplicates',
|
|
188
166
|
name: 'allowDuplicates',
|
|
189
|
-
description:
|
|
167
|
+
description: 'Whether you can create multiple links with the same original URL',
|
|
190
168
|
type: 'boolean',
|
|
191
169
|
default: false,
|
|
192
170
|
},
|
|
193
171
|
{
|
|
194
172
|
displayName: 'Title',
|
|
195
173
|
name: 'title',
|
|
196
|
-
description:
|
|
174
|
+
description: 'Title of created URL to be shown in short.io admin panel',
|
|
197
175
|
type: 'string',
|
|
198
176
|
default: '',
|
|
199
|
-
placeholder:
|
|
177
|
+
placeholder: 'Short Link From n8n',
|
|
200
178
|
},
|
|
201
179
|
{
|
|
202
180
|
displayName: 'Expires At (Unix Miliseconds)',
|
|
@@ -214,31 +192,31 @@ exports.linkFields = [
|
|
|
214
192
|
{
|
|
215
193
|
displayName: 'Expired URL',
|
|
216
194
|
name: 'expiredURL',
|
|
217
|
-
description:
|
|
195
|
+
description: 'URL to redirect when the link is expired',
|
|
218
196
|
type: 'string',
|
|
219
197
|
default: '',
|
|
220
|
-
placeholder:
|
|
198
|
+
placeholder: 'https://example.com/expired',
|
|
221
199
|
},
|
|
222
200
|
{
|
|
223
201
|
displayName: 'iphone URL',
|
|
224
202
|
name: 'iphoneURL',
|
|
225
|
-
description:
|
|
203
|
+
description: 'If users open the URL with iPhone, they will be redirected to this URL',
|
|
226
204
|
type: 'string',
|
|
227
205
|
default: '',
|
|
228
|
-
placeholder:
|
|
206
|
+
placeholder: 'https://iAmALongURL.com',
|
|
229
207
|
},
|
|
230
208
|
{
|
|
231
209
|
displayName: 'Android URL',
|
|
232
210
|
name: 'androidURL',
|
|
233
|
-
description:
|
|
211
|
+
description: 'If users open the URL with Android, they will be redirected to this URL',
|
|
234
212
|
type: 'string',
|
|
235
213
|
default: '',
|
|
236
|
-
placeholder:
|
|
214
|
+
placeholder: 'https://iAmALongURL.com',
|
|
237
215
|
},
|
|
238
216
|
{
|
|
239
217
|
displayName: 'Cloaking',
|
|
240
218
|
name: 'cloaking',
|
|
241
|
-
description:
|
|
219
|
+
description: 'Whether the link will be cloaked. Cloaked links will redirect to the original URL, but will not show the original URL in the browser address bar.',
|
|
242
220
|
type: 'boolean',
|
|
243
221
|
default: false,
|
|
244
222
|
},
|
|
@@ -282,13 +260,13 @@ exports.linkFields = [
|
|
|
282
260
|
{
|
|
283
261
|
displayName: 'Password',
|
|
284
262
|
name: 'password',
|
|
285
|
-
description:
|
|
263
|
+
description: 'Requires Personal plan. Password to be asked when user visits a link. This password will not be stored in plain text, we will hash it with salt.',
|
|
286
264
|
type: 'string',
|
|
287
265
|
typeOptions: {
|
|
288
|
-
password: true
|
|
266
|
+
password: true,
|
|
289
267
|
},
|
|
290
268
|
default: '',
|
|
291
|
-
placeholder:
|
|
269
|
+
placeholder: 'Password123!',
|
|
292
270
|
},
|
|
293
271
|
{
|
|
294
272
|
displayName: 'Deletes At (Unix Miliseconds)',
|
|
@@ -296,43 +274,43 @@ exports.linkFields = [
|
|
|
296
274
|
description: "The date and time when the link will delete in unix miliseconds. If not set, link will never expire. Unlike expiresAt the link will be deleted and won't be counted in account link limit. TTL can not be earlier than 1 week from the current time.",
|
|
297
275
|
type: 'string',
|
|
298
276
|
default: '',
|
|
299
|
-
placeholder:
|
|
277
|
+
placeholder: '1714442044236',
|
|
300
278
|
},
|
|
301
279
|
{
|
|
302
280
|
displayName: 'UTM Source',
|
|
303
281
|
name: 'utmSource',
|
|
304
|
-
description:
|
|
282
|
+
description: 'The referrer: (e.g. google, newsletter)',
|
|
305
283
|
type: 'string',
|
|
306
284
|
default: '',
|
|
307
|
-
placeholder:
|
|
285
|
+
placeholder: 'Google',
|
|
308
286
|
},
|
|
309
287
|
{
|
|
310
288
|
displayName: 'UTM Medium',
|
|
311
289
|
name: 'utmMedium',
|
|
312
|
-
description:
|
|
290
|
+
description: 'Marketing medium: (e.g. cpc, banner, email)',
|
|
313
291
|
type: 'string',
|
|
314
292
|
default: '',
|
|
315
|
-
placeholder:
|
|
293
|
+
placeholder: 'banner_ad',
|
|
316
294
|
},
|
|
317
295
|
{
|
|
318
296
|
displayName: 'UTM Campaign',
|
|
319
297
|
name: 'utmCampaign',
|
|
320
|
-
description:
|
|
298
|
+
description: 'Product, promo code, or slogan (e.g. spring_sale)',
|
|
321
299
|
type: 'string',
|
|
322
300
|
default: '',
|
|
323
|
-
placeholder:
|
|
301
|
+
placeholder: 'spring_sale',
|
|
324
302
|
},
|
|
325
303
|
{
|
|
326
304
|
displayName: 'UTM Term',
|
|
327
305
|
name: 'utmTerm',
|
|
328
|
-
description:
|
|
306
|
+
description: 'Identify the paid keywords',
|
|
329
307
|
type: 'string',
|
|
330
308
|
default: '',
|
|
331
309
|
},
|
|
332
310
|
{
|
|
333
311
|
displayName: 'UTM Content',
|
|
334
312
|
name: 'utmContent',
|
|
335
|
-
description:
|
|
313
|
+
description: 'Use to differentiate ads',
|
|
336
314
|
type: 'string',
|
|
337
315
|
default: '',
|
|
338
316
|
},
|
|
@@ -358,7 +336,7 @@ exports.linkFields = [
|
|
|
358
336
|
],
|
|
359
337
|
},
|
|
360
338
|
],
|
|
361
|
-
}
|
|
339
|
+
},
|
|
362
340
|
],
|
|
363
341
|
},
|
|
364
342
|
{
|
|
@@ -385,13 +363,9 @@ exports.linkFields = [
|
|
|
385
363
|
],
|
|
386
364
|
displayOptions: {
|
|
387
365
|
show: {
|
|
388
|
-
resource: [
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
operation: [
|
|
392
|
-
'updateExistingLink'
|
|
393
|
-
]
|
|
394
|
-
}
|
|
366
|
+
resource: ['links'],
|
|
367
|
+
operation: ['updateExistingLink'],
|
|
368
|
+
},
|
|
395
369
|
},
|
|
396
370
|
},
|
|
397
371
|
{
|
|
@@ -399,16 +373,12 @@ exports.linkFields = [
|
|
|
399
373
|
name: 'originalURL',
|
|
400
374
|
type: 'string',
|
|
401
375
|
default: '',
|
|
402
|
-
placeholder:
|
|
376
|
+
placeholder: 'https://iAmALongURL.com',
|
|
403
377
|
displayOptions: {
|
|
404
378
|
show: {
|
|
405
|
-
resource: [
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
operation: [
|
|
409
|
-
'updateExistingLink'
|
|
410
|
-
]
|
|
411
|
-
}
|
|
379
|
+
resource: ['links'],
|
|
380
|
+
operation: ['updateExistingLink'],
|
|
381
|
+
},
|
|
412
382
|
},
|
|
413
383
|
},
|
|
414
384
|
{
|
|
@@ -419,37 +389,33 @@ exports.linkFields = [
|
|
|
419
389
|
placeholder: 'Add Field',
|
|
420
390
|
displayOptions: {
|
|
421
391
|
show: {
|
|
422
|
-
resource: [
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
operation: [
|
|
426
|
-
'updateExistingLink'
|
|
427
|
-
]
|
|
428
|
-
}
|
|
392
|
+
resource: ['links'],
|
|
393
|
+
operation: ['updateExistingLink'],
|
|
394
|
+
},
|
|
429
395
|
},
|
|
430
396
|
options: [
|
|
431
397
|
{
|
|
432
398
|
displayName: 'Path',
|
|
433
399
|
name: 'path',
|
|
434
|
-
description:
|
|
400
|
+
description: 'The path of the link',
|
|
435
401
|
type: 'string',
|
|
436
402
|
default: '',
|
|
437
|
-
placeholder:
|
|
403
|
+
placeholder: '6fzQYy',
|
|
438
404
|
},
|
|
439
405
|
{
|
|
440
406
|
displayName: 'Allow Duplicates',
|
|
441
407
|
name: 'allowDuplicates',
|
|
442
|
-
description:
|
|
408
|
+
description: 'Whether you can create multiple links with the same original URL',
|
|
443
409
|
type: 'boolean',
|
|
444
410
|
default: false,
|
|
445
411
|
},
|
|
446
412
|
{
|
|
447
413
|
displayName: 'Title',
|
|
448
414
|
name: 'title',
|
|
449
|
-
description:
|
|
415
|
+
description: 'Title of created URL to be shown in short.io admin panel',
|
|
450
416
|
type: 'string',
|
|
451
417
|
default: '',
|
|
452
|
-
placeholder:
|
|
418
|
+
placeholder: 'Short Link From n8n',
|
|
453
419
|
},
|
|
454
420
|
{
|
|
455
421
|
displayName: 'Expires At (Unix Miliseconds)',
|
|
@@ -467,31 +433,31 @@ exports.linkFields = [
|
|
|
467
433
|
{
|
|
468
434
|
displayName: 'Expired URL',
|
|
469
435
|
name: 'expiredURL',
|
|
470
|
-
description:
|
|
436
|
+
description: 'URL to redirect when the link is expired',
|
|
471
437
|
type: 'string',
|
|
472
438
|
default: '',
|
|
473
|
-
placeholder:
|
|
439
|
+
placeholder: 'https://example.com/expired',
|
|
474
440
|
},
|
|
475
441
|
{
|
|
476
442
|
displayName: 'iphone URL',
|
|
477
443
|
name: 'iphoneURL',
|
|
478
|
-
description:
|
|
444
|
+
description: 'If users open the URL with iPhone, they will be redirected to this URL',
|
|
479
445
|
type: 'string',
|
|
480
446
|
default: '',
|
|
481
|
-
placeholder:
|
|
447
|
+
placeholder: 'https://iAmALongURL.com',
|
|
482
448
|
},
|
|
483
449
|
{
|
|
484
450
|
displayName: 'Android URL',
|
|
485
451
|
name: 'androidURL',
|
|
486
|
-
description:
|
|
452
|
+
description: 'If users open the URL with Android, they will be redirected to this URL',
|
|
487
453
|
type: 'string',
|
|
488
454
|
default: '',
|
|
489
|
-
placeholder:
|
|
455
|
+
placeholder: 'https://iAmALongURL.com',
|
|
490
456
|
},
|
|
491
457
|
{
|
|
492
458
|
displayName: 'Cloaking',
|
|
493
459
|
name: 'cloaking',
|
|
494
|
-
description:
|
|
460
|
+
description: 'Whether the link will be cloaked. Cloaked links will redirect to the original URL, but will not show the original URL in the browser address bar.',
|
|
495
461
|
type: 'boolean',
|
|
496
462
|
default: false,
|
|
497
463
|
},
|
|
@@ -535,13 +501,13 @@ exports.linkFields = [
|
|
|
535
501
|
{
|
|
536
502
|
displayName: 'Password',
|
|
537
503
|
name: 'password',
|
|
538
|
-
description:
|
|
504
|
+
description: 'Requires Personal plan. Password to be asked when user visits a link. This password will not be stored in plain text, we will hash it with salt.',
|
|
539
505
|
type: 'string',
|
|
540
506
|
typeOptions: {
|
|
541
|
-
password: true
|
|
507
|
+
password: true,
|
|
542
508
|
},
|
|
543
509
|
default: '',
|
|
544
|
-
placeholder:
|
|
510
|
+
placeholder: 'Password123!',
|
|
545
511
|
},
|
|
546
512
|
{
|
|
547
513
|
displayName: 'Deletes At (Unix Miliseconds)',
|
|
@@ -549,43 +515,43 @@ exports.linkFields = [
|
|
|
549
515
|
description: "The date and time when the link will delete in unix miliseconds. If not set, link will never expire. Unlike expiresAt the link will be deleted and won't be counted in account link limit. TTL can not be earlier than 1 week from the current time.",
|
|
550
516
|
type: 'string',
|
|
551
517
|
default: '',
|
|
552
|
-
placeholder:
|
|
518
|
+
placeholder: '1714442044236',
|
|
553
519
|
},
|
|
554
520
|
{
|
|
555
521
|
displayName: 'UTM Source',
|
|
556
522
|
name: 'utmSource',
|
|
557
|
-
description:
|
|
523
|
+
description: 'The referrer: (e.g. google, newsletter)',
|
|
558
524
|
type: 'string',
|
|
559
525
|
default: '',
|
|
560
|
-
placeholder:
|
|
526
|
+
placeholder: 'Google',
|
|
561
527
|
},
|
|
562
528
|
{
|
|
563
529
|
displayName: 'UTM Medium',
|
|
564
530
|
name: 'utmMedium',
|
|
565
|
-
description:
|
|
531
|
+
description: 'Marketing medium: (e.g. cpc, banner, email)',
|
|
566
532
|
type: 'string',
|
|
567
533
|
default: '',
|
|
568
|
-
placeholder:
|
|
534
|
+
placeholder: 'banner_ad',
|
|
569
535
|
},
|
|
570
536
|
{
|
|
571
537
|
displayName: 'UTM Campaign',
|
|
572
538
|
name: 'utmCampaign',
|
|
573
|
-
description:
|
|
539
|
+
description: 'Product, promo code, or slogan (e.g. spring_sale)',
|
|
574
540
|
type: 'string',
|
|
575
541
|
default: '',
|
|
576
|
-
placeholder:
|
|
542
|
+
placeholder: 'spring_sale',
|
|
577
543
|
},
|
|
578
544
|
{
|
|
579
545
|
displayName: 'UTM Term',
|
|
580
546
|
name: 'utmTerm',
|
|
581
|
-
description:
|
|
547
|
+
description: 'Identify the paid keywords',
|
|
582
548
|
type: 'string',
|
|
583
549
|
default: '',
|
|
584
550
|
},
|
|
585
551
|
{
|
|
586
552
|
displayName: 'UTM Content',
|
|
587
553
|
name: 'utmContent',
|
|
588
|
-
description:
|
|
554
|
+
description: 'Use to differentiate ads',
|
|
589
555
|
type: 'string',
|
|
590
556
|
default: '',
|
|
591
557
|
},
|
|
@@ -611,7 +577,7 @@ exports.linkFields = [
|
|
|
611
577
|
],
|
|
612
578
|
},
|
|
613
579
|
],
|
|
614
|
-
}
|
|
580
|
+
},
|
|
615
581
|
],
|
|
616
582
|
},
|
|
617
583
|
{
|
|
@@ -638,13 +604,9 @@ exports.linkFields = [
|
|
|
638
604
|
],
|
|
639
605
|
displayOptions: {
|
|
640
606
|
show: {
|
|
641
|
-
resource: [
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
operation: [
|
|
645
|
-
'deleteLink'
|
|
646
|
-
]
|
|
647
|
-
}
|
|
607
|
+
resource: ['links'],
|
|
608
|
+
operation: ['deleteLink'],
|
|
609
|
+
},
|
|
648
610
|
},
|
|
649
611
|
},
|
|
650
612
|
];
|