n8n-nodes-tukimate 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
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# n8n-nodes-tukimate
|
|
2
|
+
|
|
3
|
+
[n8n](https://n8n.io) community node for [TukiMate](https://tukimate.com) API.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
### In n8n Community Nodes
|
|
8
|
+
|
|
9
|
+
1. Go to **Settings** > **Community Nodes**
|
|
10
|
+
2. Select **Install**
|
|
11
|
+
3. Enter `n8n-nodes-tukimate`
|
|
12
|
+
4. Click **Install**
|
|
13
|
+
|
|
14
|
+
### Manual Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cd ~/.n8n/custom
|
|
18
|
+
npm install n8n-nodes-tukimate
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Credentials
|
|
22
|
+
|
|
23
|
+
To use this node, you need a TukiMate API key:
|
|
24
|
+
|
|
25
|
+
1. Log in to your TukiMate account
|
|
26
|
+
2. Go to **Settings** > **API Keys**
|
|
27
|
+
3. Create a new API key
|
|
28
|
+
4. Copy the key (starts with `tuki_`)
|
|
29
|
+
|
|
30
|
+
In n8n:
|
|
31
|
+
1. Go to **Credentials**
|
|
32
|
+
2. Click **Add Credential**
|
|
33
|
+
3. Search for "TukiMate API"
|
|
34
|
+
4. Paste your API key
|
|
35
|
+
5. Save
|
|
36
|
+
|
|
37
|
+
## Supported Resources & Operations
|
|
38
|
+
|
|
39
|
+
### Conversation
|
|
40
|
+
| Operation | Description |
|
|
41
|
+
|-----------|-------------|
|
|
42
|
+
| List | Get a list of conversations with optional filters |
|
|
43
|
+
| Get | Get a single conversation by ID |
|
|
44
|
+
| Create | Create a new conversation |
|
|
45
|
+
| Update | Update an existing conversation |
|
|
46
|
+
|
|
47
|
+
### Contact
|
|
48
|
+
| Operation | Description |
|
|
49
|
+
|-----------|-------------|
|
|
50
|
+
| List | Get a list of contacts |
|
|
51
|
+
| Get | Get a single contact by ID |
|
|
52
|
+
| Create | Create a new contact |
|
|
53
|
+
| Update | Update an existing contact |
|
|
54
|
+
|
|
55
|
+
### Team
|
|
56
|
+
| Operation | Description |
|
|
57
|
+
|-----------|-------------|
|
|
58
|
+
| List | Get a list of teams |
|
|
59
|
+
| Get | Get a single team by ID |
|
|
60
|
+
| Create | Create a new team |
|
|
61
|
+
| Update | Update an existing team |
|
|
62
|
+
|
|
63
|
+
### Project
|
|
64
|
+
| Operation | Description |
|
|
65
|
+
|-----------|-------------|
|
|
66
|
+
| List | Get a list of projects |
|
|
67
|
+
| Get | Get a single project by ID |
|
|
68
|
+
| Create | Create a new project |
|
|
69
|
+
| Update | Update an existing project |
|
|
70
|
+
|
|
71
|
+
### Client
|
|
72
|
+
| Operation | Description |
|
|
73
|
+
|-----------|-------------|
|
|
74
|
+
| List | Get a list of clients |
|
|
75
|
+
| Get | Get a single client by ID |
|
|
76
|
+
| Create | Create a new client |
|
|
77
|
+
| Update | Update an existing client |
|
|
78
|
+
|
|
79
|
+
### Source
|
|
80
|
+
| Operation | Description |
|
|
81
|
+
|-----------|-------------|
|
|
82
|
+
| List | Get a list of sources |
|
|
83
|
+
| Get | Get a single source by ID |
|
|
84
|
+
| Create | Create a new source |
|
|
85
|
+
| Update | Update an existing source |
|
|
86
|
+
|
|
87
|
+
### Conversation Type
|
|
88
|
+
| Operation | Description |
|
|
89
|
+
|-----------|-------------|
|
|
90
|
+
| List | Get available conversation types (read-only) |
|
|
91
|
+
|
|
92
|
+
## Example Usage
|
|
93
|
+
|
|
94
|
+
### Create a Conversation
|
|
95
|
+
|
|
96
|
+
1. Add a **TukiMate** node to your workflow
|
|
97
|
+
2. Select **Conversation** as the resource
|
|
98
|
+
3. Select **Create** as the operation
|
|
99
|
+
4. Fill in the required fields:
|
|
100
|
+
- Title
|
|
101
|
+
- Date/Time
|
|
102
|
+
- Transcript
|
|
103
|
+
- Source (e.g., "api")
|
|
104
|
+
5. Optionally add:
|
|
105
|
+
- Team
|
|
106
|
+
- Project
|
|
107
|
+
- Client
|
|
108
|
+
- Participants
|
|
109
|
+
|
|
110
|
+
### List Conversations with Filters
|
|
111
|
+
|
|
112
|
+
1. Add a **TukiMate** node
|
|
113
|
+
2. Select **Conversation** > **List**
|
|
114
|
+
3. Optionally filter by:
|
|
115
|
+
- Search term
|
|
116
|
+
- Team
|
|
117
|
+
- Project
|
|
118
|
+
- Limit/Offset for pagination
|
|
119
|
+
|
|
120
|
+
## Development
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Install dependencies
|
|
124
|
+
pnpm install
|
|
125
|
+
|
|
126
|
+
# Build
|
|
127
|
+
pnpm build
|
|
128
|
+
|
|
129
|
+
# Watch mode
|
|
130
|
+
pnpm dev
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
MIT
|
|
136
|
+
|
|
137
|
+
## Support
|
|
138
|
+
|
|
139
|
+
- [TukiMate Documentation](https://app.tukimate.com/api-docs)
|
|
140
|
+
- [GitHub Issues](https://github.com/broobe/n8n-nodes-tukimate/issues)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class TukiMateApi 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.TukiMateApi = void 0;
|
|
4
|
+
class TukiMateApi {
|
|
5
|
+
name = 'tukiMateApi';
|
|
6
|
+
displayName = 'TukiMate API';
|
|
7
|
+
documentationUrl = 'https://app.tukimate.com/api-docs';
|
|
8
|
+
properties = [
|
|
9
|
+
{
|
|
10
|
+
displayName: 'API Key',
|
|
11
|
+
name: 'apiKey',
|
|
12
|
+
type: 'string',
|
|
13
|
+
typeOptions: {
|
|
14
|
+
password: true,
|
|
15
|
+
},
|
|
16
|
+
default: '',
|
|
17
|
+
required: true,
|
|
18
|
+
description: 'Your TukiMate API key (starts with tuki_)',
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
authenticate = {
|
|
22
|
+
type: 'generic',
|
|
23
|
+
properties: {
|
|
24
|
+
headers: {
|
|
25
|
+
Authorization: '=Bearer {{$credentials.apiKey}}',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
test = {
|
|
30
|
+
request: {
|
|
31
|
+
baseURL: 'https://app.tukimate.com/api',
|
|
32
|
+
url: '/conversation-types',
|
|
33
|
+
method: 'GET',
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.TukiMateApi = TukiMateApi;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription, ILoadOptionsFunctions, INodePropertyOptions } from 'n8n-workflow';
|
|
2
|
+
declare function getTeamOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
3
|
+
declare function getProjectOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
4
|
+
declare function getClientOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
5
|
+
declare function getSourceOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
6
|
+
declare function getConversationTypeOptions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
|
+
export declare class TukiMate implements INodeType {
|
|
8
|
+
description: INodeTypeDescription;
|
|
9
|
+
methods: {
|
|
10
|
+
loadOptions: {
|
|
11
|
+
getTeams: typeof getTeamOptions;
|
|
12
|
+
getProjects: typeof getProjectOptions;
|
|
13
|
+
getClients: typeof getClientOptions;
|
|
14
|
+
getSources: typeof getSourceOptions;
|
|
15
|
+
getConversationTypes: typeof getConversationTypeOptions;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|