n8n-nodes-insim 1.0.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.
Files changed (43) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +262 -0
  3. package/dist/credentials/InsimApi.credentials.d.ts +9 -0
  4. package/dist/credentials/InsimApi.credentials.js +48 -0
  5. package/dist/credentials/InsimApi.credentials.js.map +1 -0
  6. package/dist/nodes/Insim/Insim.node.d.ts +4 -0
  7. package/dist/nodes/Insim/Insim.node.js +77 -0
  8. package/dist/nodes/Insim/Insim.node.js.map +1 -0
  9. package/dist/nodes/Insim/Insim.node.json +13 -0
  10. package/dist/nodes/Insim/insim.svg +1 -0
  11. package/dist/nodes/Insim/resources/account/index.d.ts +2 -0
  12. package/dist/nodes/Insim/resources/account/index.js +88 -0
  13. package/dist/nodes/Insim/resources/account/index.js.map +1 -0
  14. package/dist/nodes/Insim/resources/call/index.d.ts +2 -0
  15. package/dist/nodes/Insim/resources/call/index.js +115 -0
  16. package/dist/nodes/Insim/resources/call/index.js.map +1 -0
  17. package/dist/nodes/Insim/resources/campaign/index.d.ts +2 -0
  18. package/dist/nodes/Insim/resources/campaign/index.js +157 -0
  19. package/dist/nodes/Insim/resources/campaign/index.js.map +1 -0
  20. package/dist/nodes/Insim/resources/contact/index.d.ts +2 -0
  21. package/dist/nodes/Insim/resources/contact/index.js +267 -0
  22. package/dist/nodes/Insim/resources/contact/index.js.map +1 -0
  23. package/dist/nodes/Insim/resources/list/index.d.ts +2 -0
  24. package/dist/nodes/Insim/resources/list/index.js +148 -0
  25. package/dist/nodes/Insim/resources/list/index.js.map +1 -0
  26. package/dist/nodes/Insim/resources/qualification/index.d.ts +2 -0
  27. package/dist/nodes/Insim/resources/qualification/index.js +142 -0
  28. package/dist/nodes/Insim/resources/qualification/index.js.map +1 -0
  29. package/dist/nodes/Insim/resources/sms/index.d.ts +2 -0
  30. package/dist/nodes/Insim/resources/sms/index.js +177 -0
  31. package/dist/nodes/Insim/resources/sms/index.js.map +1 -0
  32. package/dist/nodes/Insim/resources/stat/index.d.ts +2 -0
  33. package/dist/nodes/Insim/resources/stat/index.js +63 -0
  34. package/dist/nodes/Insim/resources/stat/index.js.map +1 -0
  35. package/dist/nodes/Insim/resources/template/index.d.ts +2 -0
  36. package/dist/nodes/Insim/resources/template/index.js +129 -0
  37. package/dist/nodes/Insim/resources/template/index.js.map +1 -0
  38. package/dist/nodes/Insim/shared/preSend.d.ts +5 -0
  39. package/dist/nodes/Insim/shared/preSend.js +83 -0
  40. package/dist/nodes/Insim/shared/preSend.js.map +1 -0
  41. package/dist/package.json +43 -0
  42. package/dist/tsconfig.tsbuildinfo +1 -0
  43. package/package.json +43 -0
package/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2022 n8n
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,262 @@
1
+ ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)
2
+
3
+ # n8n-nodes-starter
4
+
5
+ This starter repository helps you build custom integrations for [n8n](https://n8n.io). It includes example nodes, credentials, the node linter, and all the tooling you need to get started.
6
+
7
+ ## Quick Start
8
+
9
+ > [!TIP]
10
+ > **New to building n8n nodes?** The fastest way to get started is with `npm create @n8n/node`. This command scaffolds a complete node package for you using the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli).
11
+
12
+ **To create a new node package from scratch:**
13
+
14
+ ```bash
15
+ npm create @n8n/node
16
+ ```
17
+
18
+ **Already using this starter? Start developing with:**
19
+
20
+ ```bash
21
+ npm run dev
22
+ ```
23
+
24
+ This starts n8n with your nodes loaded and hot reload enabled.
25
+
26
+ ## What's Included
27
+
28
+ This starter repository includes two example nodes to learn from:
29
+
30
+ - **[Example Node](nodes/Example/)** - A simple starter node that shows the basic structure with a custom `execute` method
31
+ - **[GitHub Issues Node](nodes/GithubIssues/)** - A complete, production-ready example built using the **declarative style**:
32
+ - **Low-code approach** - Define operations declaratively without writing request logic
33
+ - Multiple resources (Issues, Comments)
34
+ - Multiple operations (Get, Get All, Create)
35
+ - Two authentication methods (OAuth2 and Personal Access Token)
36
+ - List search functionality for dynamic dropdowns
37
+ - Proper error handling and typing
38
+ - Ideal for HTTP API-based integrations
39
+
40
+ > [!TIP]
41
+ > The declarative/low-code style (used in GitHub Issues) is the recommended approach for building nodes that interact with HTTP APIs. It significantly reduces boilerplate code and handles requests automatically.
42
+
43
+ Browse these examples to understand both approaches, then modify them or create your own.
44
+
45
+ ## Finding Inspiration
46
+
47
+ Looking for more examples? Check out these resources:
48
+
49
+ - **[npm Community Nodes](https://www.npmjs.com/search?q=keywords:n8n-community-node-package)** - Browse thousands of community-built nodes on npm using the `n8n-community-node-package` tag
50
+ - **[n8n Built-in Nodes](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/nodes)** - Study the source code of n8n's official nodes for production-ready patterns and best practices
51
+ - **[n8n Credentials](https://github.com/n8n-io/n8n/tree/master/packages/nodes-base/credentials)** - See how authentication is implemented for various services
52
+
53
+ These are excellent resources to understand how to structure your nodes, handle different API patterns, and implement advanced features.
54
+
55
+ ## Prerequisites
56
+
57
+ Before you begin, install the following on your development machine:
58
+
59
+ ### Required
60
+
61
+ - **[Node.js](https://nodejs.org/)** (v22 or higher) and npm
62
+ - Linux/Mac/WSL: Install via [nvm](https://github.com/nvm-sh/nvm)
63
+ - Windows: Follow [Microsoft's NodeJS guide](https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows)
64
+ - **[git](https://git-scm.com/downloads)**
65
+
66
+ ### Recommended
67
+
68
+ - Follow n8n's [development environment setup guide](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/)
69
+
70
+ > [!NOTE]
71
+ > The `@n8n/node-cli` is included as a dev dependency and will be installed automatically when you run `npm install`. The CLI includes n8n for local development, so you don't need to install n8n globally.
72
+
73
+ ## Getting Started with this Starter
74
+
75
+ Follow these steps to create your own n8n community node package:
76
+
77
+ ### 1. Create Your Repository
78
+
79
+ [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template, then clone it:
80
+
81
+ ```bash
82
+ git clone https://github.com/<your-organization>/<your-repo-name>.git
83
+ cd <your-repo-name>
84
+ ```
85
+
86
+ ### 2. Install Dependencies
87
+
88
+ ```bash
89
+ npm install
90
+ ```
91
+
92
+ This installs all required dependencies including the `@n8n/node-cli`.
93
+
94
+ ### 3. Explore the Examples
95
+
96
+ Browse the example nodes in [nodes/](nodes/) and [credentials/](credentials/) to understand the structure:
97
+
98
+ - Start with [nodes/Example/](nodes/Example/) for a basic node
99
+ - Study [nodes/GithubIssues/](nodes/GithubIssues/) for a real-world implementation
100
+
101
+ ### 4. Build Your Node
102
+
103
+ Edit the example nodes to fit your use case, or create new node files by copying the structure from [nodes/Example/](nodes/Example/).
104
+
105
+ > [!TIP]
106
+ > If you want to scaffold a completely new node package, use `npm create @n8n/node` to start fresh with the CLI's interactive generator.
107
+
108
+ ### 5. Configure Your Package
109
+
110
+ Update `package.json` with your details:
111
+
112
+ - `name` - Your package name (must start with `n8n-nodes-`)
113
+ - `author` - Your name and email
114
+ - `repository` - Your repository URL
115
+ - `description` - What your node does
116
+
117
+ Make sure your node is registered in the `n8n.nodes` array.
118
+
119
+ ### 6. Develop and Test Locally
120
+
121
+ Start n8n with your node loaded:
122
+
123
+ ```bash
124
+ npm run dev
125
+ ```
126
+
127
+ This command runs `n8n-node dev` which:
128
+
129
+ - Builds your node with watch mode
130
+ - Starts n8n with your node available
131
+ - Automatically rebuilds when you make changes
132
+ - Opens n8n in your browser (usually http://localhost:5678)
133
+
134
+ You can now test your node in n8n workflows!
135
+
136
+ > [!NOTE]
137
+ > Learn more about CLI commands in the [@n8n/node-cli documentation](https://www.npmjs.com/package/@n8n/node-cli).
138
+
139
+ ### 7. Lint Your Code
140
+
141
+ Check for errors:
142
+
143
+ ```bash
144
+ npm run lint
145
+ ```
146
+
147
+ Auto-fix issues when possible:
148
+
149
+ ```bash
150
+ npm run lint:fix
151
+ ```
152
+
153
+ ### 8. Build for Production
154
+
155
+ When ready to publish:
156
+
157
+ ```bash
158
+ npm run build
159
+ ```
160
+
161
+ This compiles your TypeScript code to the `dist/` folder.
162
+
163
+ ### 9. Prepare for Publishing
164
+
165
+ Before publishing:
166
+
167
+ 1. **Update documentation**: Replace this README with your node's documentation. Use [README_TEMPLATE.md](README_TEMPLATE.md) as a starting point.
168
+ 2. **Update the LICENSE**: Add your details to the [LICENSE](LICENSE.md) file.
169
+ 3. **Test thoroughly**: Ensure your node works in different scenarios.
170
+
171
+ ### 10. Publish to npm
172
+
173
+ Publishing is handled automatically by the included GitHub Actions workflow ([.github/workflows/publish.yml](.github/workflows/publish.yml)). It runs on every version tag push and publishes to npm with a provenance attestation — a requirement for n8n community nodes starting May 1, 2026.
174
+
175
+ #### One-time setup
176
+
177
+ Configure npm to trust this repository's GitHub Actions workflow so it can publish on your behalf. Log in to [npmjs.com](https://npmjs.com), open your package settings, and under **Publish access → Trusted Publishers** add a publisher with:
178
+
179
+ - **Repository owner**: your GitHub username or org
180
+ - **Repository name**: your repo name
181
+ - **Workflow name**: `publish.yml`
182
+
183
+ No token or secret needs to be stored in GitHub — the workflow uses GitHub's OIDC token instead.
184
+
185
+ > [!NOTE]
186
+ > If you prefer a traditional npm token, create a Granular Access Token on npmjs.com and store it as `NPM_TOKEN` in your repository's Actions secrets. See the comments at the top of `.github/workflows/publish.yml` for details.
187
+
188
+ #### Releasing a new version
189
+
190
+ ```bash
191
+ npm run release
192
+ ```
193
+
194
+ This lints, builds, prompts for a version bump, updates the changelog, commits, tags, and pushes — which triggers the workflow to publish to npm.
195
+
196
+ ### 11. Submit for Verification (Optional)
197
+
198
+ Get your node verified for n8n Cloud:
199
+
200
+ 1. Ensure your node meets the [requirements](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/):
201
+ - Uses MIT license ✅ (included in this starter)
202
+ - No external package dependencies
203
+ - Follows n8n's design guidelines
204
+ - Passes quality and security review
205
+
206
+ 2. Submit through the [n8n Creator Portal](https://creators.n8n.io/nodes)
207
+
208
+ **Benefits of verification:**
209
+
210
+ - Available directly in n8n Cloud
211
+ - Discoverable in the n8n nodes panel
212
+ - Verified badge for quality assurance
213
+ - Increased visibility in the n8n community
214
+
215
+ ## Available Scripts
216
+
217
+ This starter includes several npm scripts to streamline development:
218
+
219
+ | Script | Description |
220
+ | --------------------- | --------------------------------------------------------------------------- |
221
+ | `npm run dev` | Start n8n with your node and watch for changes (runs `n8n-node dev`) |
222
+ | `npm run build` | Compile TypeScript to JavaScript for production (runs `n8n-node build`) |
223
+ | `npm run build:watch` | Build in watch mode (auto-rebuild on changes) |
224
+ | `npm run lint` | Check your code for errors and style issues (runs `n8n-node lint`) |
225
+ | `npm run lint:fix` | Automatically fix linting issues when possible (runs `n8n-node lint --fix`) |
226
+ | `npm run release` | Create a new release (runs `n8n-node release`) |
227
+
228
+ > [!TIP]
229
+ > These scripts use the [@n8n/node-cli](https://www.npmjs.com/package/@n8n/node-cli) under the hood. You can also run CLI commands directly, e.g., `npx n8n-node dev`.
230
+
231
+ ## Troubleshooting
232
+
233
+ ### My node doesn't appear in n8n
234
+
235
+ 1. Make sure you ran `npm install` to install dependencies
236
+ 2. Check that your node is listed in `package.json` under `n8n.nodes`
237
+ 3. Restart the dev server with `npm run dev`
238
+ 4. Check the console for any error messages
239
+
240
+ ### Linting errors
241
+
242
+ Run `npm run lint:fix` to automatically fix most common issues. For remaining errors, check the [n8n node development guidelines](https://docs.n8n.io/integrations/creating-nodes/).
243
+
244
+ ### TypeScript errors
245
+
246
+ Make sure you're using Node.js v22 or higher and have run `npm install` to get all type definitions.
247
+
248
+ ## Resources
249
+
250
+ - **[n8n Node Documentation](https://docs.n8n.io/integrations/creating-nodes/)** - Complete guide to building nodes
251
+ - **[n8n Community Forum](https://community.n8n.io/)** - Get help and share your nodes
252
+ - **[@n8n/node-cli Documentation](https://www.npmjs.com/package/@n8n/node-cli)** - CLI tool reference
253
+ - **[n8n Creator Portal](https://creators.n8n.io/nodes)** - Submit your node for verification
254
+ - **[Submit Community Nodes Guide](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/)** - Verification requirements and process
255
+
256
+ ## Contributing
257
+
258
+ Have suggestions for improving this starter? [Open an issue](https://github.com/n8n-io/n8n-nodes-starter/issues) or submit a pull request!
259
+
260
+ ## License
261
+
262
+ [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)
@@ -0,0 +1,9 @@
1
+ import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class InsimApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InsimApi = void 0;
4
+ class InsimApi {
5
+ constructor() {
6
+ this.name = 'insimApi';
7
+ this.displayName = 'inSIM API';
8
+ this.documentationUrl = 'https://www.insim.app';
9
+ this.properties = [
10
+ {
11
+ displayName: 'Login (Email)',
12
+ name: 'login',
13
+ type: 'string',
14
+ placeholder: 'name@example.com',
15
+ default: '',
16
+ required: true,
17
+ },
18
+ {
19
+ displayName: 'Access Key',
20
+ name: 'accessKey',
21
+ type: 'string',
22
+ typeOptions: { password: true },
23
+ default: '',
24
+ required: true,
25
+ },
26
+ ];
27
+ this.authenticate = {
28
+ type: 'generic',
29
+ properties: {
30
+ body: {
31
+ login: '={{$credentials.login}}',
32
+ accessKey: '={{$credentials.accessKey}}',
33
+ },
34
+ },
35
+ };
36
+ this.test = {
37
+ request: {
38
+ baseURL: 'https://www.insim.app',
39
+ url: '/api/v2/account',
40
+ method: 'POST',
41
+ body: {},
42
+ skipSslCertificateValidation: true,
43
+ },
44
+ };
45
+ }
46
+ }
47
+ exports.InsimApi = InsimApi;
48
+ //# sourceMappingURL=InsimApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsimApi.credentials.js","sourceRoot":"","sources":["../../credentials/InsimApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,UAAU,CAAC;QAElB,gBAAW,GAAG,WAAW,CAAC;QAE1B,qBAAgB,GAAG,uBAAuB,CAAC;QAE3C,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,IAAI,EAAE;oBACL,KAAK,EAAE,yBAAyB;oBAChC,SAAS,EAAE,6BAA6B;iBACxC;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,uBAAuB;gBAChC,GAAG,EAAE,iBAAiB;gBACtB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,EAAE;gBACR,4BAA4B,EAAE,IAAI;aAClC;SACD,CAAC;IACH,CAAC;CAAA;AA7CD,4BA6CC"}
@@ -0,0 +1,4 @@
1
+ import { type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Insim implements INodeType {
3
+ description: INodeTypeDescription;
4
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Insim = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const contact_1 = require("./resources/contact");
6
+ const sms_1 = require("./resources/sms");
7
+ const call_1 = require("./resources/call");
8
+ const list_1 = require("./resources/list");
9
+ const campaign_1 = require("./resources/campaign");
10
+ const template_1 = require("./resources/template");
11
+ const stat_1 = require("./resources/stat");
12
+ const qualification_1 = require("./resources/qualification");
13
+ const account_1 = require("./resources/account");
14
+ class Insim {
15
+ constructor() {
16
+ this.description = {
17
+ displayName: 'inSIM',
18
+ name: 'insim',
19
+ icon: 'file:insim.svg',
20
+ group: ['transform'],
21
+ version: 1,
22
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
23
+ description: 'Manage SMS, contacts, campaigns, calls, and CRM with inSIM',
24
+ defaults: {
25
+ name: 'inSIM',
26
+ },
27
+ usableAsTool: true,
28
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
29
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
30
+ credentials: [
31
+ {
32
+ name: 'insimApi',
33
+ required: true,
34
+ },
35
+ ],
36
+ requestDefaults: {
37
+ baseURL: 'https://www.insim.app',
38
+ headers: {
39
+ Accept: 'application/json',
40
+ 'Content-Type': 'application/json',
41
+ },
42
+ skipSslCertificateValidation: true,
43
+ },
44
+ properties: [
45
+ {
46
+ displayName: 'Resource',
47
+ name: 'resource',
48
+ type: 'options',
49
+ noDataExpression: true,
50
+ options: [
51
+ { name: 'Account', value: 'account' },
52
+ { name: 'Call', value: 'call' },
53
+ { name: 'Campaign', value: 'campaign' },
54
+ { name: 'Contact', value: 'contact' },
55
+ { name: 'List', value: 'list' },
56
+ { name: 'Qualification', value: 'qualification' },
57
+ { name: 'SMS', value: 'sms' },
58
+ { name: 'Stat', value: 'stat' },
59
+ { name: 'Template', value: 'template' },
60
+ ],
61
+ default: 'contact',
62
+ },
63
+ ...contact_1.contactDescription,
64
+ ...sms_1.smsDescription,
65
+ ...call_1.callDescription,
66
+ ...list_1.listDescription,
67
+ ...campaign_1.campaignDescription,
68
+ ...template_1.templateDescription,
69
+ ...stat_1.statDescription,
70
+ ...qualification_1.qualificationDescription,
71
+ ...account_1.accountDescription,
72
+ ],
73
+ };
74
+ }
75
+ }
76
+ exports.Insim = Insim;
77
+ //# sourceMappingURL=Insim.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Insim.node.js","sourceRoot":"","sources":["../../../nodes/Insim/Insim.node.ts"],"names":[],"mappings":";;;AAAA,+CAA8F;AAC9F,iDAAyD;AACzD,yCAAiD;AACjD,2CAAmD;AACnD,2CAAmD;AACnD,mDAA2D;AAC3D,mDAA2D;AAC3D,2CAAmD;AACnD,6DAAqE;AACrE,iDAAyD;AAEzD,MAAa,KAAK;IAAlB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,OAAO;YACpB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE;gBACT,IAAI,EAAE,OAAO;aACb;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;gBACD,4BAA4B,EAAE,IAAI;aAClC;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,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;wBACvC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;wBACjD,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;qBACvC;oBACD,OAAO,EAAE,SAAS;iBAClB;gBACD,GAAG,4BAAkB;gBACrB,GAAG,oBAAc;gBACjB,GAAG,sBAAe;gBAClB,GAAG,sBAAe;gBAClB,GAAG,8BAAmB;gBACtB,GAAG,8BAAmB;gBACtB,GAAG,sBAAe;gBAClB,GAAG,wCAAwB;gBAC3B,GAAG,4BAAkB;aACrB;SACD,CAAC;IACH,CAAC;CAAA;AA3DD,sBA2DC"}
@@ -0,0 +1,13 @@
1
+ {
2
+ "node": "n8n-nodes-base.insim",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Communication", "Marketing & Content"],
6
+ "resources": {
7
+ "primaryDocumentation": [
8
+ {
9
+ "url": "https://www.insim.app"
10
+ }
11
+ ]
12
+ }
13
+ }
@@ -0,0 +1 @@
1
+ <svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"><defs><style>.cls-1{fill:#edc83b;}.cls-2{fill:#1eacba;}.cls-3{fill:#fff;}</style></defs><path class="cls-1" d="M11.81,23.11a25,25,0,0,1,1.59-8.8A20,20,0,0,0,0,33.19v1H0v.21c0,7.68.31,15.35.43,23,0,.87,0,1.74,0,2.59.42,0,.53-.2.69-.35C3.88,57.09,6.65,54.56,9.38,52a2.78,2.78,0,0,1,1.78-.84A20,20,0,0,0,33.48,48,25.08,25.08,0,0,1,11.81,23.11Z"/><circle class="cls-2" cx="36.89" cy="23.11" r="23.11"/><path class="cls-3" d="M23.07,15.58a4.43,4.43,0,0,1,.32-2.08,4.87,4.87,0,0,1,.78-1.08c.83-.86,1.68-1.7,2.54-2.53a1.87,1.87,0,0,1,2.12-.45,2.14,2.14,0,0,1,.67.43c1.34,1.31,2.66,2.63,4,4a2,2,0,0,1,.58,1.9,2.47,2.47,0,0,1-.69,1.16c-.7.75-1.42,1.49-2.12,2.25-.41.46-.4.31-.13.9a14.17,14.17,0,0,0,2.32,3.46A27.39,27.39,0,0,0,37,27a17.66,17.66,0,0,0,2.88,1.85A.8.8,0,0,0,41,28.71c.77-.78,1.58-1.52,2.37-2.27a1.91,1.91,0,0,1,1.2-.55,1.74,1.74,0,0,1,1.32.37,50.62,50.62,0,0,1,4.47,4.44,2.09,2.09,0,0,1,0,2.38q-1.3,1.37-2.64,2.7a3.35,3.35,0,0,1-1.49.95,6.24,6.24,0,0,1-2.58.14,17.53,17.53,0,0,1-6-2.19,29.8,29.8,0,0,1-7.32-5.6,30.38,30.38,0,0,1-6-8.81,14.84,14.84,0,0,1-1.07-3.43C23.11,16.36,23.1,15.87,23.07,15.58Z"/></svg>
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const accountDescription: INodeProperties[];
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accountDescription = void 0;
4
+ const preSend_1 = require("../../shared/preSend");
5
+ const show = { resource: ['account'] };
6
+ exports.accountDescription = [
7
+ {
8
+ displayName: 'Operation',
9
+ name: 'operation',
10
+ type: 'options',
11
+ noDataExpression: true,
12
+ displayOptions: { show },
13
+ options: [
14
+ {
15
+ name: 'Info',
16
+ value: 'info',
17
+ action: 'Get account information',
18
+ routing: {
19
+ request: { method: 'POST', url: '/api/v2/account' },
20
+ send: { preSend: [preSend_1.filterEmptyParams] },
21
+ },
22
+ },
23
+ {
24
+ name: 'Webhooks',
25
+ value: 'webhooks',
26
+ action: 'Read or configure webhooks (Premium)',
27
+ routing: {
28
+ request: { method: 'POST', url: '/api/v2/account/webhooks' },
29
+ send: { preSend: [preSend_1.filterEmptyParams] },
30
+ },
31
+ },
32
+ ],
33
+ default: 'info',
34
+ },
35
+ {
36
+ displayName: 'Action',
37
+ name: 'action',
38
+ type: 'options',
39
+ options: [
40
+ { name: 'Read Current', value: 'get' },
41
+ { name: 'Set Webhooks', value: 'set' },
42
+ ],
43
+ default: 'get',
44
+ displayOptions: { show: { ...show, operation: ['webhooks'] } },
45
+ routing: { send: { type: 'body', property: 'action' } },
46
+ },
47
+ {
48
+ displayName: 'Incoming SMS URL',
49
+ name: 'incoming_sms',
50
+ type: 'string',
51
+ default: '',
52
+ displayOptions: { show: { ...show, operation: ['webhooks'], action: ['set'] } },
53
+ routing: { send: { type: 'body', property: 'webhooks.incoming_sms' } },
54
+ },
55
+ {
56
+ displayName: 'Delivery Status URL',
57
+ name: 'delivery_status',
58
+ type: 'string',
59
+ default: '',
60
+ displayOptions: { show: { ...show, operation: ['webhooks'], action: ['set'] } },
61
+ routing: { send: { type: 'body', property: 'webhooks.delivery_status' } },
62
+ },
63
+ {
64
+ displayName: 'Link Clicks URL',
65
+ name: 'link_clicks',
66
+ type: 'string',
67
+ default: '',
68
+ displayOptions: { show: { ...show, operation: ['webhooks'], action: ['set'] } },
69
+ routing: { send: { type: 'body', property: 'webhooks.link_clicks' } },
70
+ },
71
+ {
72
+ displayName: 'Call Events URL',
73
+ name: 'call_events',
74
+ type: 'string',
75
+ default: '',
76
+ displayOptions: { show: { ...show, operation: ['webhooks'], action: ['set'] } },
77
+ routing: { send: { type: 'body', property: 'webhooks.call_events' } },
78
+ },
79
+ {
80
+ displayName: 'Call Qualifications URL',
81
+ name: 'call_qualifications',
82
+ type: 'string',
83
+ default: '',
84
+ displayOptions: { show: { ...show, operation: ['webhooks'], action: ['set'] } },
85
+ routing: { send: { type: 'body', property: 'webhooks.call_qualifications' } },
86
+ },
87
+ ];
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Insim/resources/account/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const callDescription: INodeProperties[];
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.callDescription = void 0;
4
+ const preSend_1 = require("../../shared/preSend");
5
+ const show = { resource: ['call'] };
6
+ exports.callDescription = [
7
+ {
8
+ displayName: 'Operation',
9
+ name: 'operation',
10
+ type: 'options',
11
+ noDataExpression: true,
12
+ displayOptions: { show },
13
+ options: [
14
+ {
15
+ name: 'Click to Call',
16
+ value: 'clickToCall',
17
+ action: 'Initiate a call via inSIM device (Premium)',
18
+ routing: {
19
+ request: { method: 'POST', url: '/api/v2/clictocall' },
20
+ send: { preSend: [preSend_1.filterEmptyParams] },
21
+ },
22
+ },
23
+ {
24
+ name: 'Get Many',
25
+ value: 'getAll',
26
+ action: 'List calls',
27
+ routing: {
28
+ request: { method: 'POST', url: '/api/v2/calls' },
29
+ send: { preSend: [preSend_1.filterEmptyParams] },
30
+ },
31
+ },
32
+ {
33
+ name: 'Qualify',
34
+ value: 'qualify',
35
+ action: 'Qualify a call',
36
+ routing: {
37
+ request: { method: 'POST', url: '/api/v2/calls/qualify' },
38
+ send: { preSend: [preSend_1.filterEmptyParams] },
39
+ },
40
+ },
41
+ ],
42
+ default: 'getAll',
43
+ },
44
+ {
45
+ displayName: 'Type',
46
+ name: 'type',
47
+ type: 'options',
48
+ options: [
49
+ { name: 'All', value: 'all' },
50
+ { name: 'Incoming', value: 'incoming' },
51
+ { name: 'Outgoing', value: 'outgoing' },
52
+ { name: 'Missed', value: 'missed' },
53
+ { name: 'Blocked', value: 'blocked' },
54
+ { name: 'Voicemail', value: 'voicemail' },
55
+ ],
56
+ default: 'all',
57
+ displayOptions: { show: { ...show, operation: ['getAll'] } },
58
+ routing: { send: { type: 'body', property: 'type' } },
59
+ },
60
+ {
61
+ displayName: 'Phone Number',
62
+ name: 'phone_number',
63
+ type: 'string',
64
+ default: '',
65
+ displayOptions: { show: { ...show, operation: ['getAll'] } },
66
+ routing: { send: { type: 'body', property: 'phone_number' } },
67
+ },
68
+ {
69
+ displayName: 'Limit',
70
+ name: 'limit',
71
+ type: 'number',
72
+ typeOptions: { minValue: 1, maxValue: 100 },
73
+ default: 50,
74
+ displayOptions: { show: { ...show, operation: ['getAll'] } },
75
+ routing: { send: { type: 'body', property: 'limit' } },
76
+ },
77
+ {
78
+ displayName: 'Call ID',
79
+ name: 'call_id',
80
+ type: 'string',
81
+ required: true,
82
+ default: '',
83
+ displayOptions: { show: { ...show, operation: ['qualify'] } },
84
+ routing: { send: { type: 'body', property: 'call_id' } },
85
+ },
86
+ {
87
+ displayName: 'Option ID',
88
+ name: 'option_id',
89
+ type: 'string',
90
+ required: true,
91
+ default: '',
92
+ description: 'Qualification option ID (from Qualification > Get Options)',
93
+ displayOptions: { show: { ...show, operation: ['qualify'] } },
94
+ routing: { send: { type: 'body', property: 'option_id' } },
95
+ },
96
+ {
97
+ displayName: 'Notes',
98
+ name: 'notes',
99
+ type: 'string',
100
+ default: '',
101
+ displayOptions: { show: { ...show, operation: ['qualify'] } },
102
+ routing: { send: { type: 'body', property: 'notes' } },
103
+ },
104
+ {
105
+ displayName: 'Phone Number',
106
+ name: 'clickPhone',
107
+ type: 'string',
108
+ required: true,
109
+ default: '',
110
+ placeholder: '+33612345678',
111
+ displayOptions: { show: { ...show, operation: ['clickToCall'] } },
112
+ routing: { send: { type: 'body', property: 'phone_number' } },
113
+ },
114
+ ];
115
+ //# sourceMappingURL=index.js.map