n8n-nodes-aircall 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.
- package/LICENSE +46 -0
- package/README.md +361 -0
- package/dist/Aircall/aircall.svg +4 -0
- package/dist/credentials/AircallApi.credentials.d.ts +10 -0
- package/dist/credentials/AircallApi.credentials.d.ts.map +1 -0
- package/dist/credentials/AircallApi.credentials.js +55 -0
- package/dist/credentials/AircallApi.credentials.js.map +1 -0
- package/dist/nodes/Aircall/Aircall.node.d.ts +6 -0
- package/dist/nodes/Aircall/Aircall.node.d.ts.map +1 -0
- package/dist/nodes/Aircall/Aircall.node.js +212 -0
- package/dist/nodes/Aircall/Aircall.node.js.map +1 -0
- package/dist/nodes/Aircall/AircallTrigger.node.d.ts +13 -0
- package/dist/nodes/Aircall/AircallTrigger.node.d.ts.map +1 -0
- package/dist/nodes/Aircall/AircallTrigger.node.js +192 -0
- package/dist/nodes/Aircall/AircallTrigger.node.js.map +1 -0
- package/dist/nodes/Aircall/actions/call/call.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/call/call.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/call/call.operations.js +446 -0
- package/dist/nodes/Aircall/actions/call/call.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/company/company.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/company/company.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/company/company.operations.js +48 -0
- package/dist/nodes/Aircall/actions/company/company.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/contact/contact.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/contact/contact.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/contact/contact.operations.js +395 -0
- package/dist/nodes/Aircall/actions/contact/contact.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/integration/integration.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/integration/integration.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/integration/integration.operations.js +206 -0
- package/dist/nodes/Aircall/actions/integration/integration.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/message/message.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/message/message.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/message/message.operations.js +220 -0
- package/dist/nodes/Aircall/actions/message/message.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/number/number.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/number/number.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/number/number.operations.js +226 -0
- package/dist/nodes/Aircall/actions/number/number.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/tag/tag.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/tag/tag.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/tag/tag.operations.js +240 -0
- package/dist/nodes/Aircall/actions/tag/tag.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/team/team.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/team/team.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/team/team.operations.js +268 -0
- package/dist/nodes/Aircall/actions/team/team.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/user/user.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/user/user.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/user/user.operations.js +442 -0
- package/dist/nodes/Aircall/actions/user/user.operations.js.map +1 -0
- package/dist/nodes/Aircall/actions/webhook/webhook.operations.d.ts +5 -0
- package/dist/nodes/Aircall/actions/webhook/webhook.operations.d.ts.map +1 -0
- package/dist/nodes/Aircall/actions/webhook/webhook.operations.js +303 -0
- package/dist/nodes/Aircall/actions/webhook/webhook.operations.js.map +1 -0
- package/dist/nodes/Aircall/transport/aircallClient.d.ts +10 -0
- package/dist/nodes/Aircall/transport/aircallClient.d.ts.map +1 -0
- package/dist/nodes/Aircall/transport/aircallClient.js +93 -0
- package/dist/nodes/Aircall/transport/aircallClient.js.map +1 -0
- package/dist/nodes/Aircall/utils/types.d.ts +175 -0
- package/dist/nodes/Aircall/utils/types.d.ts.map +1 -0
- package/dist/nodes/Aircall/utils/types.js +39 -0
- package/dist/nodes/Aircall/utils/types.js.map +1 -0
- package/dist/test/integration/AircallIntegration.test.d.ts +2 -0
- package/dist/test/integration/AircallIntegration.test.d.ts.map +1 -0
- package/dist/test/integration/AircallIntegration.test.js +135 -0
- package/dist/test/integration/AircallIntegration.test.js.map +1 -0
- package/dist/test/unit/Aircall.test.d.ts +2 -0
- package/dist/test/unit/Aircall.test.d.ts.map +1 -0
- package/dist/test/unit/Aircall.test.js +194 -0
- package/dist/test/unit/Aircall.test.js.map +1 -0
- package/package.json +82 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
License text copyright (c) 2017 MariaDB Corporation Ab.
|
|
4
|
+
|
|
5
|
+
Licensor:
|
|
6
|
+
Velocity BPA, LLC
|
|
7
|
+
https://velobpa.com
|
|
8
|
+
|
|
9
|
+
Licensed Work:
|
|
10
|
+
This repository and all source code, documentation, and associated artifacts
|
|
11
|
+
contained herein, including all n8n community nodes published by Velocity BPA.
|
|
12
|
+
|
|
13
|
+
Additional Use Grant:
|
|
14
|
+
You may use, modify, and run the Licensed Work free of charge for:
|
|
15
|
+
- Personal use
|
|
16
|
+
- Educational use
|
|
17
|
+
- Research use
|
|
18
|
+
- Internal business use, provided such use does not involve resale,
|
|
19
|
+
redistribution, or offering the Licensed Work as part of a commercial
|
|
20
|
+
product or service.
|
|
21
|
+
|
|
22
|
+
Commercial Use Restriction:
|
|
23
|
+
Commercial Use of the Licensed Work is prohibited without a valid
|
|
24
|
+
Commercial License issued by the Licensor.
|
|
25
|
+
|
|
26
|
+
Commercial Use includes, but is not limited to:
|
|
27
|
+
- Use of the Licensed Work within any Software-as-a-Service (SaaS),
|
|
28
|
+
Platform-as-a-Service (PaaS), or hosted application that is sold,
|
|
29
|
+
licensed, or monetized in any form
|
|
30
|
+
- Offering the Licensed Work as part of a managed services engagement
|
|
31
|
+
- Bundling or redistributing the Licensed Work with a paid product
|
|
32
|
+
- Reselling, sublicensing, or white-labeling the Licensed Work
|
|
33
|
+
- Embedding the Licensed Work into any commercial automation platform,
|
|
34
|
+
integration product, or solution offering
|
|
35
|
+
|
|
36
|
+
Change Date:
|
|
37
|
+
January 1, 2030
|
|
38
|
+
|
|
39
|
+
Change License:
|
|
40
|
+
Apache License, Version 2.0
|
|
41
|
+
|
|
42
|
+
For commercial licensing inquiries:
|
|
43
|
+
licensing@velobpa.com
|
|
44
|
+
|
|
45
|
+
Business Source License 1.1 full text:
|
|
46
|
+
https://mariadb.com/bsl11/
|
package/README.md
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# n8n-nodes-aircall
|
|
2
|
+
|
|
3
|
+
> **[Velocity BPA Licensing Notice]**
|
|
4
|
+
>
|
|
5
|
+
> This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
|
|
6
|
+
>
|
|
7
|
+
> Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
|
|
8
|
+
>
|
|
9
|
+
> For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.
|
|
10
|
+
|
|
11
|
+
A comprehensive n8n community node for Aircall, a cloud-based phone system for sales and support teams. This node provides full integration with Aircall's REST API, enabling workflow automation for call management, user administration, contact handling, SMS messaging, and analytics.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
## Features
|
|
18
|
+
|
|
19
|
+
- **Call Management**: Get, list, search, transfer, and manage calls with comments and tags
|
|
20
|
+
- **User Administration**: Create, update, and manage agents including availability status
|
|
21
|
+
- **Contact Sync**: Full CRUD operations for contacts with search capabilities
|
|
22
|
+
- **Team Management**: Create and manage teams with user assignments
|
|
23
|
+
- **Phone Numbers**: Configure phone number settings and retrieve SMS messages
|
|
24
|
+
- **Tags**: Organize calls with customizable tags
|
|
25
|
+
- **Webhooks**: Create and manage webhook subscriptions
|
|
26
|
+
- **SMS Messaging**: Send and retrieve SMS messages
|
|
27
|
+
- **Company Info**: Access company-level information
|
|
28
|
+
- **Integration Linking**: Link calls to external CRM records
|
|
29
|
+
- **Trigger Node**: Real-time webhook events for 27 different event types
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
### Community Nodes (Recommended)
|
|
34
|
+
|
|
35
|
+
1. Open n8n
|
|
36
|
+
2. Go to **Settings** > **Community Nodes**
|
|
37
|
+
3. Click **Install**
|
|
38
|
+
4. Enter `n8n-nodes-aircall`
|
|
39
|
+
5. Click **Install**
|
|
40
|
+
|
|
41
|
+
### Manual Installation
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Navigate to your n8n installation directory
|
|
45
|
+
cd ~/.n8n
|
|
46
|
+
|
|
47
|
+
# Install the package
|
|
48
|
+
npm install n8n-nodes-aircall
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Development Installation
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Clone the repository
|
|
55
|
+
git clone https://github.com/Velocity-BPA/n8n-nodes-aircall.git
|
|
56
|
+
cd n8n-nodes-aircall
|
|
57
|
+
|
|
58
|
+
# Install dependencies
|
|
59
|
+
npm install
|
|
60
|
+
|
|
61
|
+
# Build the project
|
|
62
|
+
npm run build
|
|
63
|
+
|
|
64
|
+
# Create symlink to n8n custom nodes directory
|
|
65
|
+
mkdir -p ~/.n8n/custom
|
|
66
|
+
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-aircall
|
|
67
|
+
|
|
68
|
+
# Restart n8n
|
|
69
|
+
n8n start
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Credentials Setup
|
|
73
|
+
|
|
74
|
+
### Aircall API Credentials
|
|
75
|
+
|
|
76
|
+
| Field | Description |
|
|
77
|
+
|-------|-------------|
|
|
78
|
+
| **API ID** | Your Aircall API ID |
|
|
79
|
+
| **API Token** | Your Aircall API Token |
|
|
80
|
+
|
|
81
|
+
To obtain API credentials:
|
|
82
|
+
|
|
83
|
+
1. Log in to your Aircall Dashboard
|
|
84
|
+
2. Go to **Settings** > **Integrations** > **API Keys**
|
|
85
|
+
3. Create a new API key pair
|
|
86
|
+
4. Copy the API ID and API Token
|
|
87
|
+
|
|
88
|
+
## Resources & Operations
|
|
89
|
+
|
|
90
|
+
### Call Resource (11 operations)
|
|
91
|
+
|
|
92
|
+
| Operation | Description |
|
|
93
|
+
|-----------|-------------|
|
|
94
|
+
| Get | Get details of a specific call |
|
|
95
|
+
| Get All | List all calls with pagination |
|
|
96
|
+
| Search | Search calls with filters (direction, date range, tags) |
|
|
97
|
+
| Delete | Delete a call |
|
|
98
|
+
| Add Comment | Add a comment to a call |
|
|
99
|
+
| Add Tag | Add a tag to a call |
|
|
100
|
+
| Remove Tag | Remove a tag from a call |
|
|
101
|
+
| Link | Link a call to an external record |
|
|
102
|
+
| Transfer | Transfer a call to another user or number |
|
|
103
|
+
| Get Insights | Get AI-powered insights for a call |
|
|
104
|
+
| Get Recording | Get the recording URL for a call |
|
|
105
|
+
|
|
106
|
+
### User Resource (9 operations)
|
|
107
|
+
|
|
108
|
+
| Operation | Description |
|
|
109
|
+
|-----------|-------------|
|
|
110
|
+
| Create | Create a new user |
|
|
111
|
+
| Get | Get details of a specific user |
|
|
112
|
+
| Get All | List all users |
|
|
113
|
+
| Update | Update user information |
|
|
114
|
+
| Delete | Delete a user |
|
|
115
|
+
| Get Availability | Get user's current availability status |
|
|
116
|
+
| Set Availability | Set user's availability status |
|
|
117
|
+
| Start Outbound Call | Initiate an outbound call for a user |
|
|
118
|
+
| Dial Number | Dial a number from a user's phone |
|
|
119
|
+
|
|
120
|
+
### Number Resource (5 operations)
|
|
121
|
+
|
|
122
|
+
| Operation | Description |
|
|
123
|
+
|-----------|-------------|
|
|
124
|
+
| Get | Get details of a phone number |
|
|
125
|
+
| Get All | List all phone numbers |
|
|
126
|
+
| Update | Update phone number settings |
|
|
127
|
+
| Get Messages | Get SMS messages for a number |
|
|
128
|
+
| Get Music | Get hold music settings |
|
|
129
|
+
|
|
130
|
+
### Contact Resource (6 operations)
|
|
131
|
+
|
|
132
|
+
| Operation | Description |
|
|
133
|
+
|-----------|-------------|
|
|
134
|
+
| Create | Create a new contact |
|
|
135
|
+
| Get | Get details of a specific contact |
|
|
136
|
+
| Get All | List all contacts |
|
|
137
|
+
| Update | Update contact information |
|
|
138
|
+
| Delete | Delete a contact |
|
|
139
|
+
| Search | Search contacts by query, phone, or email |
|
|
140
|
+
|
|
141
|
+
### Team Resource (7 operations)
|
|
142
|
+
|
|
143
|
+
| Operation | Description |
|
|
144
|
+
|-----------|-------------|
|
|
145
|
+
| Create | Create a new team |
|
|
146
|
+
| Get | Get details of a specific team |
|
|
147
|
+
| Get All | List all teams |
|
|
148
|
+
| Update | Update team information |
|
|
149
|
+
| Delete | Delete a team |
|
|
150
|
+
| Add User | Add a user to a team |
|
|
151
|
+
| Remove User | Remove a user from a team |
|
|
152
|
+
|
|
153
|
+
### Tag Resource (5 operations)
|
|
154
|
+
|
|
155
|
+
| Operation | Description |
|
|
156
|
+
|-----------|-------------|
|
|
157
|
+
| Create | Create a new tag |
|
|
158
|
+
| Get | Get details of a specific tag |
|
|
159
|
+
| Get All | List all tags |
|
|
160
|
+
| Update | Update tag information |
|
|
161
|
+
| Delete | Delete a tag |
|
|
162
|
+
|
|
163
|
+
### Webhook Resource (5 operations)
|
|
164
|
+
|
|
165
|
+
| Operation | Description |
|
|
166
|
+
|-----------|-------------|
|
|
167
|
+
| Create | Create a new webhook subscription |
|
|
168
|
+
| Get | Get details of a webhook |
|
|
169
|
+
| Get All | List all webhooks |
|
|
170
|
+
| Update | Update webhook configuration |
|
|
171
|
+
| Delete | Delete a webhook |
|
|
172
|
+
|
|
173
|
+
### Message Resource (3 operations)
|
|
174
|
+
|
|
175
|
+
| Operation | Description |
|
|
176
|
+
|-----------|-------------|
|
|
177
|
+
| Send | Send an SMS message |
|
|
178
|
+
| Get | Get details of a message |
|
|
179
|
+
| Get All | List all messages |
|
|
180
|
+
|
|
181
|
+
### Company Resource (1 operation)
|
|
182
|
+
|
|
183
|
+
| Operation | Description |
|
|
184
|
+
|-----------|-------------|
|
|
185
|
+
| Get | Get company information (read-only) |
|
|
186
|
+
|
|
187
|
+
### Integration Resource (3 operations)
|
|
188
|
+
|
|
189
|
+
| Operation | Description |
|
|
190
|
+
|-----------|-------------|
|
|
191
|
+
| Get All | List all integrations |
|
|
192
|
+
| Link | Link a call to an external record |
|
|
193
|
+
| Unlink | Unlink a call from an external record |
|
|
194
|
+
|
|
195
|
+
## Trigger Node
|
|
196
|
+
|
|
197
|
+
The Aircall Trigger node listens for real-time webhook events from Aircall.
|
|
198
|
+
|
|
199
|
+
### Available Events (27 total)
|
|
200
|
+
|
|
201
|
+
**Call Events:**
|
|
202
|
+
- call.created, call.ringing_on_agent, call.agent_declined, call.answered
|
|
203
|
+
- call.transferred, call.unsuccessful_transfer, call.ended, call.voicemail_left
|
|
204
|
+
- call.assigned, call.archived, call.tagged, call.untagged, call.commented
|
|
205
|
+
|
|
206
|
+
**Contact Events:**
|
|
207
|
+
- contact.created, contact.updated, contact.deleted
|
|
208
|
+
|
|
209
|
+
**User Events:**
|
|
210
|
+
- user.created, user.opened, user.closed, user.deleted
|
|
211
|
+
- user.connected, user.disconnected
|
|
212
|
+
|
|
213
|
+
**Number Events:**
|
|
214
|
+
- number.created, number.opened, number.closed, number.deleted
|
|
215
|
+
|
|
216
|
+
**Message Events:**
|
|
217
|
+
- message.created
|
|
218
|
+
|
|
219
|
+
## Usage Examples
|
|
220
|
+
|
|
221
|
+
### Example 1: Log Missed Calls to Spreadsheet
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
Aircall Trigger (call.ended)
|
|
225
|
+
→ IF (status = "missed")
|
|
226
|
+
→ Google Sheets (Append Row)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Example 2: Sync Contacts to CRM
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Aircall (Contact: Get All)
|
|
233
|
+
→ Loop Over Items
|
|
234
|
+
→ HubSpot (Create/Update Contact)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Example 3: Send SMS Notification
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
Webhook Trigger
|
|
241
|
+
→ Aircall (Message: Send)
|
|
242
|
+
→ Set number_id, to, content
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Example 4: Agent Availability Dashboard
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
Schedule Trigger (Every 5 min)
|
|
249
|
+
→ Aircall (User: Get All)
|
|
250
|
+
→ Aircall (User: Get Availability)
|
|
251
|
+
→ Slack (Post Message)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Aircall Concepts
|
|
255
|
+
|
|
256
|
+
### Call Direction
|
|
257
|
+
- **inbound**: Calls received by your team
|
|
258
|
+
- **outbound**: Calls made by your team
|
|
259
|
+
|
|
260
|
+
### Call Status
|
|
261
|
+
- **answered**: Call was answered
|
|
262
|
+
- **missed**: Call was not answered
|
|
263
|
+
- **voicemail**: Caller left a voicemail
|
|
264
|
+
|
|
265
|
+
### User Availability
|
|
266
|
+
- **available**: Ready to take calls
|
|
267
|
+
- **custom**: Custom availability message
|
|
268
|
+
- **do_not_disturb**: Not accepting calls
|
|
269
|
+
|
|
270
|
+
### Integration Link Types
|
|
271
|
+
- Contact, Lead, Account, Opportunity
|
|
272
|
+
- Ticket, Case, Deal, Custom
|
|
273
|
+
|
|
274
|
+
## Error Handling
|
|
275
|
+
|
|
276
|
+
The node provides detailed error messages for common scenarios:
|
|
277
|
+
|
|
278
|
+
| Error | Description | Solution |
|
|
279
|
+
|-------|-------------|----------|
|
|
280
|
+
| 401 Unauthorized | Invalid API credentials | Check API ID and Token |
|
|
281
|
+
| 403 Forbidden | Insufficient permissions | Verify API key permissions |
|
|
282
|
+
| 404 Not Found | Resource not found | Check resource ID |
|
|
283
|
+
| 429 Too Many Requests | Rate limit exceeded | Reduce request frequency |
|
|
284
|
+
|
|
285
|
+
## Security Best Practices
|
|
286
|
+
|
|
287
|
+
1. **Secure Credentials**: Store API credentials securely using n8n's credential system
|
|
288
|
+
2. **Webhook Verification**: Use webhook tokens to verify incoming requests
|
|
289
|
+
3. **Least Privilege**: Create API keys with minimal required permissions
|
|
290
|
+
4. **Audit Logs**: Monitor API usage through Aircall dashboard
|
|
291
|
+
5. **Data Handling**: Be mindful of call recordings and personal data
|
|
292
|
+
|
|
293
|
+
## Development
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
# Install dependencies
|
|
297
|
+
npm install
|
|
298
|
+
|
|
299
|
+
# Build the project
|
|
300
|
+
npm run build
|
|
301
|
+
|
|
302
|
+
# Run linting
|
|
303
|
+
npm run lint
|
|
304
|
+
|
|
305
|
+
# Fix linting issues
|
|
306
|
+
npm run lint:fix
|
|
307
|
+
|
|
308
|
+
# Run tests
|
|
309
|
+
npm test
|
|
310
|
+
|
|
311
|
+
# Run tests with coverage
|
|
312
|
+
npm run test:coverage
|
|
313
|
+
|
|
314
|
+
# Watch mode for development
|
|
315
|
+
npm run dev
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
## Author
|
|
319
|
+
|
|
320
|
+
**Velocity BPA**
|
|
321
|
+
- Website: [velobpa.com](https://velobpa.com)
|
|
322
|
+
- GitHub: [Velocity-BPA](https://github.com/Velocity-BPA)
|
|
323
|
+
- Email: licensing@velobpa.com
|
|
324
|
+
|
|
325
|
+
## Licensing
|
|
326
|
+
|
|
327
|
+
This n8n community node is licensed under the **Business Source License 1.1**.
|
|
328
|
+
|
|
329
|
+
### Free Use
|
|
330
|
+
Permitted for personal, educational, research, and internal business use.
|
|
331
|
+
|
|
332
|
+
### Commercial Use
|
|
333
|
+
Use of this node within any SaaS, PaaS, hosted platform, managed service,
|
|
334
|
+
or paid automation offering requires a commercial license.
|
|
335
|
+
|
|
336
|
+
For licensing inquiries:
|
|
337
|
+
**licensing@velobpa.com**
|
|
338
|
+
|
|
339
|
+
See [LICENSE](LICENSE), [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md), and [LICENSING_FAQ.md](LICENSING_FAQ.md) for details.
|
|
340
|
+
|
|
341
|
+
## Contributing
|
|
342
|
+
|
|
343
|
+
Contributions are welcome! Please follow these steps:
|
|
344
|
+
|
|
345
|
+
1. Fork the repository
|
|
346
|
+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
347
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
348
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
349
|
+
5. Open a Pull Request
|
|
350
|
+
|
|
351
|
+
## Support
|
|
352
|
+
|
|
353
|
+
- **Documentation**: [Aircall API Docs](https://developer.aircall.io/)
|
|
354
|
+
- **Issues**: [GitHub Issues](https://github.com/Velocity-BPA/n8n-nodes-aircall/issues)
|
|
355
|
+
- **n8n Community**: [n8n Community Forum](https://community.n8n.io/)
|
|
356
|
+
|
|
357
|
+
## Acknowledgments
|
|
358
|
+
|
|
359
|
+
- [Aircall](https://aircall.io/) for their comprehensive API
|
|
360
|
+
- [n8n](https://n8n.io/) for the workflow automation platform
|
|
361
|
+
- The n8n community for inspiration and support
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
|
|
2
|
+
<circle cx="32" cy="32" r="32" fill="#00B388"/>
|
|
3
|
+
<path d="M44.5 38.7c-1.4-1.4-3.1-2.1-4.9-2.1-1.8 0-3.5.7-4.9 2.1l-2.3 2.3c-.2.2-.5.3-.8.2-.3-.1-1.9-.8-4.1-3-2.2-2.2-2.9-3.8-3-4.1-.1-.3 0-.6.2-.8l2.3-2.3c2.7-2.7 2.7-7.1 0-9.8l-2.1-2.1c-1.4-1.4-3.1-2.1-4.9-2.1-1.8 0-3.5.7-4.9 2.1l-1.5 1.5c-2.4 2.4-3.4 5.9-2.6 9.5 1 4.5 4.1 9.3 8.8 14 4.7 4.7 9.5 7.8 14 8.8.8.2 1.7.3 2.5.3 2.7 0 5.2-1 7-2.9l1.5-1.5c2.7-2.7 2.7-7.1 0-9.8l-2.3-2.3zm.2 9.9l-1.5 1.5c-1.4 1.4-3.5 2-5.7 1.5-3.9-.8-8.3-3.7-12.6-8-4.3-4.3-7.2-8.7-8-12.6-.5-2.2.1-4.3 1.5-5.7l1.5-1.5c.8-.8 1.8-1.2 2.8-1.2s2 .4 2.8 1.2l2.1 2.1c1.5 1.5 1.5 4 0 5.5l-2.3 2.3c-.9.9-1.2 2.2-.8 3.4.4 1.2 1.5 3.5 4.2 6.2 2.7 2.7 5 3.8 6.2 4.2 1.2.4 2.5.1 3.4-.8l2.3-2.3c1.5-1.5 4-1.5 5.5 0l2.1 2.1c1.7 1.6 1.7 4.1.5 5.6z" fill="#fff"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class AircallApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AircallApi.credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AircallApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/AircallApi.credentials.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,qBAAa,UAAW,YAAW,eAAe;IAChD,IAAI,SAAgB;IACpB,WAAW,SAAiB;IAC5B,gBAAgB,SAAkD;IAClE,UAAU,EAAE,eAAe,EAAE,CAoB3B;IAEF,YAAY,EAAE,oBAAoB,CAQhC;IAEF,IAAI,EAAE,sBAAsB,CAM1B;CACH"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Velocity BPA, LLC
|
|
4
|
+
* Licensed under the Business Source License 1.1
|
|
5
|
+
* Commercial use requires a separate commercial license.
|
|
6
|
+
* See LICENSE file for details.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AircallApi = void 0;
|
|
10
|
+
class AircallApi {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.name = 'aircallApi';
|
|
13
|
+
this.displayName = 'Aircall API';
|
|
14
|
+
this.documentationUrl = 'https://developer.aircall.io/api-references/';
|
|
15
|
+
this.properties = [
|
|
16
|
+
{
|
|
17
|
+
displayName: 'API ID',
|
|
18
|
+
name: 'apiId',
|
|
19
|
+
type: 'string',
|
|
20
|
+
default: '',
|
|
21
|
+
required: true,
|
|
22
|
+
description: 'The API ID from your Aircall dashboard',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
displayName: 'API Token',
|
|
26
|
+
name: 'apiToken',
|
|
27
|
+
type: 'string',
|
|
28
|
+
typeOptions: {
|
|
29
|
+
password: true,
|
|
30
|
+
},
|
|
31
|
+
default: '',
|
|
32
|
+
required: true,
|
|
33
|
+
description: 'The API Token from your Aircall dashboard',
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
this.authenticate = {
|
|
37
|
+
type: 'generic',
|
|
38
|
+
properties: {
|
|
39
|
+
auth: {
|
|
40
|
+
username: '={{$credentials.apiId}}',
|
|
41
|
+
password: '={{$credentials.apiToken}}',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
this.test = {
|
|
46
|
+
request: {
|
|
47
|
+
baseURL: 'https://api.aircall.io/v1',
|
|
48
|
+
url: '/company',
|
|
49
|
+
method: 'GET',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.AircallApi = AircallApi;
|
|
55
|
+
//# sourceMappingURL=AircallApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AircallApi.credentials.js","sourceRoot":"","sources":["../../credentials/AircallApi.credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,MAAa,UAAU;IAAvB;QACE,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,aAAa,CAAC;QAC5B,qBAAgB,GAAG,8CAA8C,CAAC;QAClE,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,QAAQ;gBACrB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wCAAwC;aACtD;YACD;gBACE,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,2CAA2C;aACzD;SACF,CAAC;QAEF,iBAAY,GAAyB;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,QAAQ,EAAE,yBAAyB;oBACnC,QAAQ,EAAE,4BAA4B;iBACvC;aACF;SACF,CAAC;QAEF,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,KAAK;aACd;SACF,CAAC;IACJ,CAAC;CAAA;AA3CD,gCA2CC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Aircall implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=Aircall.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Aircall.node.d.ts","sourceRoot":"","sources":["../../../nodes/Aircall/Aircall.node.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAErB,MAAM,cAAc,CAAC;AAuDtB,qBAAa,OAAQ,YAAW,SAAS;IACvC,WAAW,EAAE,oBAAoB,CA8G/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAqExE"}
|