n8n-nodes-ticktick 1.1.1 → 1.2.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 CHANGED
@@ -6,6 +6,8 @@ This is an n8n community node. It lets you use TickTick in your n8n workflows.
6
6
 
7
7
  TickTick is a comprehensive productivity app designed to help individuals and teams manage tasks, deadlines, and projects more efficiently. With its intuitive interface, TickTick allows users to easily create, organize, and prioritize tasks, set reminders, and track progress through various views such as lists, kanban boards, and calendars.
8
8
 
9
+ ---
10
+
9
11
  [Installation](#installation)
10
12
  [Task Operations](#task-operations)
11
13
  [Project Operations](#projectoperations)
@@ -15,7 +17,7 @@ TickTick is a comprehensive productivity app designed to help individuals and te
15
17
  [Resources](#resources)
16
18
  [Version history](#version-history)
17
19
 
18
- ## Installation
20
+ ## 📦 Installation
19
21
 
20
22
  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
21
23
 
@@ -35,7 +37,34 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
35
37
  5. Agree to the risks of using community nodes: select I understand the risks of installing unverified code from a public source.
36
38
  6. Select Install. n8n installs the node, and returns to the Community Nodes list in Settings.
37
39
 
38
- ## Task Operations
40
+ ---
41
+
42
+ ## 🔑 Credentials
43
+
44
+ This node supports **two authentication types**:
45
+
46
+ ### 1️⃣ TickTick API Token (recommended)
47
+
48
+ Steps:
49
+ 1. In TickTick: Account Settings → API Token → "Manage"
50
+ 2. Copy token
51
+ 3. Create credential in n8n → **TickTick API Token**
52
+ 4. Paste token → Save
53
+
54
+
55
+ ### 2️⃣ TickTick OAuth2
56
+
57
+ Steps:
58
+ 1. Add credential in your n8n instance and select **TickTick OAuth2 API**
59
+ 2. Visit: [TickTick Developer](https://developer.ticktick.com/)
60
+ 3. Go to Manage Apps → New App
61
+ 4. Copy **Client ID** & **Client Secret**
62
+ 5. In n8n, create credential **TickTick OAuth2 API**
63
+ 6. Paste credentials & connect
64
+
65
+ ---
66
+
67
+ ## 🧩 Task Operations
39
68
 
40
69
  ### 1. Create a Task
41
70
 
@@ -87,7 +116,9 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
87
116
  - Task identifier (required)
88
117
  - Project identifier (required)
89
118
 
90
- ## Project Operations
119
+ ---
120
+
121
+ ## 📁 Project Operations
91
122
 
92
123
  ### 1. Create a Project
93
124
 
@@ -134,38 +165,20 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
134
165
 
135
166
  - Project identifier (required)
136
167
 
137
- ## Credentials
138
-
139
- 1. Add credential in your n8n instance and select **TickTick OAuth2 API**
140
- 2. Visit: [TickTick Developer](https://developer.ticktick.com/)
141
- 3. Manage Apps > New App
142
- 4. Copy **Client ID** and **Client Secret** > Paste in n8n credential
143
- 5. Allow connection
144
- 6. Account connected
168
+ ---
145
169
 
146
- ## Compatibility
170
+ ## 🧰 Compatibility
147
171
 
148
- Successfully tested on 2025-03-31 with:
172
+ Tested successfully on 2025-12-01 with:
149
173
 
150
- - n8n Version: 1.85.4
151
- - Node Version: 22.14.0
174
+ - n8n Version: 1.121.3
175
+ - Node Version: 22.11.0
152
176
  - pnpm Version: 9.1.4
153
- - No extra packages required
177
+ - No extra packages required (Luxon is bundled)
154
178
 
155
- ## Known Issues
179
+ ---
156
180
 
157
- ### Start date / Due date Parameter
158
-
159
- Both parameters will be implemented correctly in the next release.
160
- Until then, please refer to the TickTick API documentation for the correct input:
161
-
162
- startDate Parameter:
163
- Subtask start date time in "yyyy-MM-dd'T'HH:mm:ssZ"
164
- Example : "2019-11-13T03:00:00+0000"
165
-
166
- dueDate Parameter:
167
- Task due date time in "yyyy-MM-dd'T'HH:mm:ssZ"
168
- Example : "2019-11-13T03:00:00+0000"
181
+ ## Known Issues & Notes
169
182
 
170
183
  ### TickTick API Response for Certain Requests
171
184
 
@@ -181,7 +194,9 @@ This project's implementation takes these API characteristics into account, aimi
181
194
 
182
195
  Future updates to the TickTick API may address these issues, and subsequent versions of this project will aim to incorporate any changes to enhance functionality and user experience.
183
196
 
184
- ## Resources
197
+ ---
198
+
199
+ ## 🔗 Resources
185
200
 
186
201
  - [n8n Website](https://n8n.io/)
187
202
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
@@ -189,7 +204,10 @@ Future updates to the TickTick API may address these issues, and subsequent vers
189
204
  - [TickTick Open API documentation](https://developer.ticktick.com/docs#/openapi)
190
205
  - [GitHub Repository](https://github.com/hansdoebel/n8n-nodes-ticktick.git)
191
206
 
192
- ## Version history
207
+ ---
208
+
209
+ ## 📜 Version History
193
210
 
211
+ - `1.2.1` – Inbox support, API Token credential, improved task/project operations, success messages
194
212
  - `1.1.1` – Added Luxon for date formatting (thank you [mrozekadam](https://github.com/mrozekadam))
195
213
  - `1.0.0` – Initial release
@@ -0,0 +1,9 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from "n8n-workflow";
2
+ export declare class TickTickApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TickTickApi = void 0;
4
+ class TickTickApi {
5
+ constructor() {
6
+ this.name = "tickTickApi";
7
+ this.displayName = "TickTick API";
8
+ this.documentationUrl = "https://developer.ticktick.com/docs#/openapi";
9
+ this.properties = [
10
+ {
11
+ displayName: "API Key",
12
+ name: "key",
13
+ type: "string",
14
+ default: "",
15
+ typeOptions: {
16
+ password: true,
17
+ },
18
+ },
19
+ {
20
+ displayName: "API Base URL",
21
+ name: "baseUrl",
22
+ type: "string",
23
+ default: "https://api.ticktick.com/open/v1",
24
+ },
25
+ ];
26
+ this.authenticate = {
27
+ type: "generic",
28
+ properties: {
29
+ headers: {
30
+ Authorization: '={{"Bearer " + $credentials.key}}',
31
+ },
32
+ },
33
+ };
34
+ this.test = {
35
+ request: {
36
+ baseURL: "={{$credentials?.baseUrl}}",
37
+ url: "/user",
38
+ },
39
+ };
40
+ }
41
+ }
42
+ exports.TickTickApi = TickTickApi;
43
+ //# sourceMappingURL=TickTickApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickTickApi.credentials.js","sourceRoot":"","sources":["../../credentials/TickTickApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IAAxB;QACC,SAAI,GAAG,aAAa,CAAC;QACrB,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,8CAA8C,CAAC;QAClE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD;YACD;gBACC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,kCAAkC;aAC3C;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,mCAAmC;iBAClD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,4BAA4B;gBACrC,GAAG,EAAE,OAAO;aACZ;SACD,CAAC;IACH,CAAC;CAAA;AArCD,kCAqCC"}
@@ -0,0 +1,9 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from "n8n-workflow";
2
+ export declare class TickTickTokenApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TickTickTokenApi = void 0;
4
+ class TickTickTokenApi {
5
+ constructor() {
6
+ this.name = "tickTickTokenApi";
7
+ this.displayName = "TickTick API";
8
+ this.documentationUrl = "https://developer.ticktick.com/docs#/openapi";
9
+ this.properties = [
10
+ {
11
+ displayName: "API Token",
12
+ name: "token",
13
+ type: "string",
14
+ default: "",
15
+ typeOptions: {
16
+ password: true,
17
+ },
18
+ },
19
+ ];
20
+ this.authenticate = {
21
+ type: "generic",
22
+ properties: {
23
+ headers: {
24
+ Authorization: '={{"Bearer " + $credentials.token}}',
25
+ },
26
+ },
27
+ };
28
+ this.test = {
29
+ request: {
30
+ baseURL: "https://ticktick.com",
31
+ url: "/open/v1/project",
32
+ },
33
+ };
34
+ }
35
+ }
36
+ exports.TickTickTokenApi = TickTickTokenApi;
37
+ //# sourceMappingURL=TickTickTokenApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TickTickTokenApi.credentials.js","sourceRoot":"","sources":["../../credentials/TickTickTokenApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAC1B,gBAAW,GAAG,cAAc,CAAC;QAC7B,qBAAgB,GAAG,8CAA8C,CAAC;QAClE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD;SACD,CAAC;QACF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,qCAAqC;iBACpD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,sBAAsB;gBAC/B,GAAG,EAAE,kBAAkB;aACvB;SACD,CAAC;IACH,CAAC;CAAA;AA9BD,4CA8BC"}
@@ -1,4 +1,5 @@
1
- import type { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, IDataObject, IHttpRequestMethods } from 'n8n-workflow';
1
+ import type { IDataObject, IExecuteFunctions, IHookFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from "n8n-workflow";
2
+ export declare function getInboxProjectId(this: IExecuteFunctions | IHookFunctions | ILoadOptionsFunctions): Promise<string>;
2
3
  export declare function getProjects(this: ILoadOptionsFunctions): Promise<{
3
4
  name: string;
4
5
  value: string;
@@ -1,20 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimeZones = void 0;
4
+ exports.getInboxProjectId = getInboxProjectId;
4
5
  exports.getProjects = getProjects;
5
6
  exports.getTasks = getTasks;
6
7
  exports.tickTickApiRequest = tickTickApiRequest;
7
8
  exports.formatTickTickDate = formatTickTickDate;
8
9
  const n8n_workflow_1 = require("n8n-workflow");
9
10
  const luxon_1 = require("luxon");
11
+ async function getInboxProjectId() {
12
+ const endpoint = "/open/v1/project/inbox/data";
13
+ try {
14
+ const responseData = (await tickTickApiRequest.call(this, "GET", endpoint));
15
+ const tasks = responseData.tasks || [];
16
+ const columns = responseData.columns || [];
17
+ if (tasks.length > 0 && typeof tasks[0].projectId === "string") {
18
+ return tasks[0].projectId;
19
+ }
20
+ if (columns.length > 0 && typeof columns[0].projectId === "string") {
21
+ return columns[0].projectId;
22
+ }
23
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), {
24
+ message: "Could not determine Inbox project ID from /open/v1/project/inbox/data response.",
25
+ });
26
+ }
27
+ catch (error) {
28
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
29
+ }
30
+ }
10
31
  async function getProjects() {
11
- const endpoint = '/open/v1/project';
32
+ const endpoint = "/open/v1/project";
12
33
  try {
13
- const responseData = await tickTickApiRequest.call(this, 'GET', endpoint);
14
- return responseData.map((project) => ({
34
+ const responseData = await tickTickApiRequest.call(this, "GET", endpoint);
35
+ const options = responseData.map((project) => ({
15
36
  name: project.name,
16
37
  value: project.id,
17
38
  }));
39
+ const resource = this.getCurrentNodeParameter("resource");
40
+ const operation = this.getCurrentNodeParameter("operation");
41
+ if (resource === "task") {
42
+ options.unshift({
43
+ name: "Inbox",
44
+ value: "",
45
+ });
46
+ }
47
+ else if (resource === "project" && operation === "get") {
48
+ options.unshift({
49
+ name: "Inbox",
50
+ value: "inbox",
51
+ });
52
+ }
53
+ return options;
18
54
  }
19
55
  catch (error) {
20
56
  throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
@@ -22,11 +58,11 @@ async function getProjects() {
22
58
  }
23
59
  async function getTasks(projectId) {
24
60
  if (!projectId) {
25
- return [];
61
+ projectId = "inbox";
26
62
  }
27
63
  const endpoint = `/open/v1/project/${projectId}/data`;
28
64
  try {
29
- const responseData = (await tickTickApiRequest.call(this, 'GET', endpoint));
65
+ const responseData = (await tickTickApiRequest.call(this, "GET", endpoint));
30
66
  const tasks = responseData.tasks;
31
67
  return tasks.map((task) => ({
32
68
  name: task.title,
@@ -38,17 +74,30 @@ async function getTasks(projectId) {
38
74
  }
39
75
  }
40
76
  async function tickTickApiRequest(method, endpoint, body = {}, qs = {}) {
41
- var _a;
42
- const baseUrl = 'https://ticktick.com';
77
+ const authentication = this.getNodeParameter("authentication", 0);
78
+ const baseUrl = "https://ticktick.com";
43
79
  const options = {
44
80
  method,
45
- body,
46
81
  qs,
47
82
  url: `${baseUrl}${endpoint}`,
48
83
  json: true,
49
84
  };
85
+ if (Object.keys(body).length) {
86
+ options.body = body;
87
+ }
50
88
  try {
51
- const responseData = await ((_a = this.helpers.requestOAuth2) === null || _a === void 0 ? void 0 : _a.call(this, 'tickTickOAuth2Api', options));
89
+ let responseData;
90
+ if (authentication === "tickTickOAuth2Api") {
91
+ responseData = await this.helpers.requestOAuth2.call(this, "tickTickOAuth2Api", options);
92
+ }
93
+ else if (authentication === "tickTickTokenApi") {
94
+ responseData = await this.helpers.requestWithAuthentication.call(this, "tickTickTokenApi", options);
95
+ }
96
+ else {
97
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), {
98
+ message: `Unknown authentication method: ${authentication}`,
99
+ });
100
+ }
52
101
  return responseData;
53
102
  }
54
103
  catch (error) {
@@ -56,20 +105,20 @@ async function tickTickApiRequest(method, endpoint, body = {}, qs = {}) {
56
105
  }
57
106
  }
58
107
  exports.TimeZones = [
59
- { name: 'UTC', value: 'UTC' },
60
- { name: 'Europe/London', value: 'Europe/London' },
61
- { name: 'Europe/Berlin', value: 'Europe/Berlin' },
62
- { name: 'Europe/Moscow', value: 'Europe/Moscow' },
63
- { name: 'Asia/Kolkata', value: 'Asia/Kolkata' },
64
- { name: 'Asia/Shanghai', value: 'Asia/Shanghai' },
65
- { name: 'Asia/Tokyo', value: 'Asia/Tokyo' },
66
- { name: 'America/New_York', value: 'America/New_York' },
67
- { name: 'America/Chicago', value: 'America/Chicago' },
68
- { name: 'America/Denver', value: 'America/Denver' },
69
- { name: 'America/Los_Angeles', value: 'America/Los_Angeles' },
70
- { name: 'America/Sao_Paulo', value: 'America/Sao_Paulo' },
71
- { name: 'Australia/Sydney', value: 'Australia/Sydney' },
72
- { name: 'Pacific/Auckland', value: 'Pacific/Auckland' },
108
+ { name: "UTC", value: "UTC" },
109
+ { name: "Europe/London", value: "Europe/London" },
110
+ { name: "Europe/Berlin", value: "Europe/Berlin" },
111
+ { name: "Europe/Moscow", value: "Europe/Moscow" },
112
+ { name: "Asia/Kolkata", value: "Asia/Kolkata" },
113
+ { name: "Asia/Shanghai", value: "Asia/Shanghai" },
114
+ { name: "Asia/Tokyo", value: "Asia/Tokyo" },
115
+ { name: "America/New_York", value: "America/New_York" },
116
+ { name: "America/Chicago", value: "America/Chicago" },
117
+ { name: "America/Denver", value: "America/Denver" },
118
+ { name: "America/Los_Angeles", value: "America/Los_Angeles" },
119
+ { name: "America/Sao_Paulo", value: "America/Sao_Paulo" },
120
+ { name: "Australia/Sydney", value: "Australia/Sydney" },
121
+ { name: "Pacific/Auckland", value: "Pacific/Auckland" },
73
122
  ];
74
123
  function formatTickTickDate(dateString) {
75
124
  if (!dateString) {
@@ -77,9 +126,9 @@ function formatTickTickDate(dateString) {
77
126
  }
78
127
  const date = luxon_1.DateTime.fromISO(dateString);
79
128
  const dateTimePart = date.toFormat("yyyy-MM-dd'T'HH:mm:ss");
80
- const offsetSign = date.offset >= 0 ? '+' : '-';
81
- const offsetHours = String(Math.floor(Math.abs(date.offset) / 60)).padStart(2, '0');
82
- const offsetMinutes = String(Math.abs(date.offset) % 60).padStart(2, '0');
129
+ const offsetSign = date.offset >= 0 ? "+" : "-";
130
+ const offsetHours = String(Math.floor(Math.abs(date.offset) / 60)).padStart(2, "0");
131
+ const offsetMinutes = String(Math.abs(date.offset) % 60).padStart(2, "0");
83
132
  const timezonePart = `${offsetSign}${offsetHours}${offsetMinutes}`;
84
133
  return `${dateTimePart}${timezonePart}`;
85
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/TickTick/GenericFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/TickTick/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription, ILoadOptionsFunctions } from 'n8n-workflow';
1
+ import { IExecuteFunctions, ILoadOptionsFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
2
  export declare class TickTick implements INodeType {
3
3
  methods: {
4
4
  loadOptions: {