@ixiam/n8n-nodes-civicrm 1.1.28 → 1.1.30
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/{src/credentials → credentials}/CiviCrmApi.credentials.ts +8 -7
- package/debug-auth.js +94 -0
- package/dist/credentials/CiviCrmApi.credentials.js +8 -8
- package/dist/{index.js → src/index.js} +1 -1
- package/dist/{nodes → src/nodes}/transport/GenericFunctions.js +1 -1
- package/package.json +3 -3
- package/src/index.ts +1 -1
- package/src/nodes/transport/GenericFunctions.ts +1 -1
- package/tsconfig.json +13 -5
- package/dist/nodes/CiviCrm/civicrm.svg +0 -28
- package/temp_civigo/package/LICENSE.md +0 -19
- package/temp_civigo/package/README.md +0 -34
- package/temp_civigo/package/package.json +0 -59
- /package/{src/credentials → credentials}/CiviCrmApi.credentials.ts.bak +0 -0
- /package/dist/{nodes → src/nodes}/CiviCrm/CiviCrm.node.js +0 -0
- /package/dist/{nodes → src/nodes}/CiviCrm/descriptions/generic.js +0 -0
- /package/dist/{nodes → src/nodes}/CiviCrm/descriptions/resources.js +0 -0
|
@@ -12,16 +12,16 @@ export class CiviCrmApi implements ICredentialType {
|
|
|
12
12
|
|
|
13
13
|
properties: INodeProperties[] = [
|
|
14
14
|
{
|
|
15
|
-
displayName: 'URL',
|
|
16
|
-
name: '
|
|
15
|
+
displayName: 'Base URL',
|
|
16
|
+
name: 'baseUrl',
|
|
17
17
|
type: 'string',
|
|
18
18
|
default: '',
|
|
19
19
|
placeholder: 'https://example.org/civicrm',
|
|
20
20
|
required: true,
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
displayName: 'API
|
|
24
|
-
name: '
|
|
23
|
+
displayName: 'API Token',
|
|
24
|
+
name: 'apiToken',
|
|
25
25
|
type: 'string',
|
|
26
26
|
typeOptions: {
|
|
27
27
|
password: true,
|
|
@@ -35,15 +35,14 @@ export class CiviCrmApi implements ICredentialType {
|
|
|
35
35
|
type: 'generic' as const,
|
|
36
36
|
properties: {
|
|
37
37
|
headers: {
|
|
38
|
-
|
|
38
|
+
'X-Civi-Auth': '={{ "Bearer " + $credentials.apiToken }}',
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
test: ICredentialTestRequest = {
|
|
44
44
|
request: {
|
|
45
|
-
|
|
46
|
-
url: '/civicrm/ajax/api4/Contact/get',
|
|
45
|
+
url: '={{ $credentials.baseUrl }}/civicrm/ajax/api4/Contact/get',
|
|
47
46
|
method: 'POST',
|
|
48
47
|
body: {
|
|
49
48
|
version: 4,
|
|
@@ -54,3 +53,5 @@ export class CiviCrmApi implements ICredentialType {
|
|
|
54
53
|
},
|
|
55
54
|
};
|
|
56
55
|
}
|
|
56
|
+
|
|
57
|
+
export const civiCrmApi = CiviCrmApi;
|
package/debug-auth.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
|
|
2
|
+
const https = require('https');
|
|
3
|
+
|
|
4
|
+
const config = {
|
|
5
|
+
url: 'https://smaster.demo.civicrm.org',
|
|
6
|
+
apiKey: 'Q{12XT/su[+W'
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const requestBody = JSON.stringify({
|
|
10
|
+
version: 4,
|
|
11
|
+
select: ['id'],
|
|
12
|
+
limit: 1
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const options = {
|
|
16
|
+
hostname: 'smaster.demo.civicrm.org',
|
|
17
|
+
path: '/civicrm/ajax/api4/Contact/get',
|
|
18
|
+
method: 'POST',
|
|
19
|
+
headers: {
|
|
20
|
+
'Authorization': `Bearer ${config.apiKey}`,
|
|
21
|
+
'Content-Type': 'application/x-www-form-urlencoded', // Based on CiviCrmApi.credentials.ts? No, wait.
|
|
22
|
+
// In CiviCrmApi.credentials.ts, we see:
|
|
23
|
+
// headers: { Authorization: ... }
|
|
24
|
+
// BUT GenericFunctions.ts says: 'Content-Type': 'application/x-www-form-urlencoded'
|
|
25
|
+
// AND body: { params: JSON.stringify(body) }
|
|
26
|
+
|
|
27
|
+
// HOWEVER, the `test` property in CiviCrmApi.credentials.ts does NOT go through GenericFunctions.
|
|
28
|
+
// It's a standard n8n credential test request.
|
|
29
|
+
// It defines:
|
|
30
|
+
// request: { ... method: 'POST', body: { ... } }
|
|
31
|
+
// n8n by default sends JSON if body is an object? Or form-urlencoded?
|
|
32
|
+
// Let's check CiviCrmApi.credentials.ts again.
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// Re-checking the credential definition:
|
|
37
|
+
/*
|
|
38
|
+
authenticate = {
|
|
39
|
+
type: 'generic' as const,
|
|
40
|
+
properties: {
|
|
41
|
+
headers: {
|
|
42
|
+
Authorization: 'Bearer ={{$credentials.apiKey}}',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
test: ICredentialTestRequest = {
|
|
47
|
+
request: {
|
|
48
|
+
...
|
|
49
|
+
body: {
|
|
50
|
+
version: 4,
|
|
51
|
+
select: ['id'],
|
|
52
|
+
limit: 1,
|
|
53
|
+
},
|
|
54
|
+
*/
|
|
55
|
+
// It does NOT specify a Content-Type in the `test` request. N8n defaults to JSON for object bodies usually.
|
|
56
|
+
// BUT GenericFunctions.ts explicitly sets 'Content-Type': 'application/x-www-form-urlencoded'.
|
|
57
|
+
// Maybe the test request fails because it sends JSON but CiviCRM expects form-urlencoded with `params`?
|
|
58
|
+
// OR it expects JSON?
|
|
59
|
+
// The user said "it works in the previous version".
|
|
60
|
+
// The previous version had the SAME credential file content (just in a different folder).
|
|
61
|
+
// So the request definition itself should be correct.
|
|
62
|
+
// Let's try sending it as JSON first (n8n default for object body).
|
|
63
|
+
|
|
64
|
+
const req = https.request(options, (res) => {
|
|
65
|
+
let data = '';
|
|
66
|
+
res.on('data', (chunk) => {
|
|
67
|
+
data += chunk;
|
|
68
|
+
});
|
|
69
|
+
res.on('end', () => {
|
|
70
|
+
console.log(`Status Code: ${res.statusCode}`);
|
|
71
|
+
console.log(`Body: ${data}`);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
req.on('error', (error) => {
|
|
76
|
+
console.error(error);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// If n8n sends as JSON:
|
|
80
|
+
// req.setHeader('Content-Type', 'application/json');
|
|
81
|
+
// req.write(requestBody);
|
|
82
|
+
|
|
83
|
+
// Wait, CiviCrm v4 API usually expects `params` parameter if using form-urlencoded, OR direct JSON?
|
|
84
|
+
// Let's look at `GenericFunctions.ts` again.
|
|
85
|
+
// It wraps the body in `params: JSON.stringify(body)`.
|
|
86
|
+
// The `test` request DOES NOT do that. It just sends `body: { version: 4 ... }`.
|
|
87
|
+
// Does n8n credential tester use the `authenticate` block? Yes.
|
|
88
|
+
// Does it use `GenericFunctions`? No.
|
|
89
|
+
// So if the `test` request works in the old version, then CiviCRM API4 MUST accept raw JSON body on that endpoint.
|
|
90
|
+
// Let's try sending standard JSON.
|
|
91
|
+
|
|
92
|
+
req.setHeader('Content-Type', 'application/json');
|
|
93
|
+
req.write(requestBody);
|
|
94
|
+
req.end();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CiviCrmApi = void 0;
|
|
3
|
+
exports.civiCrmApi = exports.CiviCrmApi = void 0;
|
|
4
4
|
class CiviCrmApi {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.name = 'civiCrmApi';
|
|
@@ -8,16 +8,16 @@ class CiviCrmApi {
|
|
|
8
8
|
this.documentationUrl = 'https://docs.civicrm.org/dev/en/latest/api/v4/usage/#auth';
|
|
9
9
|
this.properties = [
|
|
10
10
|
{
|
|
11
|
-
displayName: 'URL',
|
|
12
|
-
name: '
|
|
11
|
+
displayName: 'Base URL',
|
|
12
|
+
name: 'baseUrl',
|
|
13
13
|
type: 'string',
|
|
14
14
|
default: '',
|
|
15
15
|
placeholder: 'https://example.org/civicrm',
|
|
16
16
|
required: true,
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
displayName: 'API
|
|
20
|
-
name: '
|
|
19
|
+
displayName: 'API Token',
|
|
20
|
+
name: 'apiToken',
|
|
21
21
|
type: 'string',
|
|
22
22
|
typeOptions: {
|
|
23
23
|
password: true,
|
|
@@ -30,14 +30,13 @@ class CiviCrmApi {
|
|
|
30
30
|
type: 'generic',
|
|
31
31
|
properties: {
|
|
32
32
|
headers: {
|
|
33
|
-
|
|
33
|
+
'X-Civi-Auth': '={{ "Bearer " + $credentials.apiToken }}',
|
|
34
34
|
},
|
|
35
35
|
},
|
|
36
36
|
};
|
|
37
37
|
this.test = {
|
|
38
38
|
request: {
|
|
39
|
-
|
|
40
|
-
url: '/civicrm/ajax/api4/Contact/get',
|
|
39
|
+
url: '={{ $credentials.baseUrl }}/civicrm/ajax/api4/Contact/get',
|
|
41
40
|
method: 'POST',
|
|
42
41
|
body: {
|
|
43
42
|
version: 4,
|
|
@@ -50,3 +49,4 @@ class CiviCrmApi {
|
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
exports.CiviCrmApi = CiviCrmApi;
|
|
52
|
+
exports.civiCrmApi = CiviCrmApi;
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.credentials = exports.nodes = void 0;
|
|
7
7
|
const CiviCrm_node_1 = __importDefault(require("./nodes/CiviCrm/CiviCrm.node"));
|
|
8
|
-
const CiviCrmApi_credentials_1 = require("
|
|
8
|
+
const CiviCrmApi_credentials_1 = require("../credentials/CiviCrmApi.credentials");
|
|
9
9
|
exports.nodes = [
|
|
10
10
|
new CiviCrm_node_1.default(),
|
|
11
11
|
];
|
|
@@ -10,7 +10,7 @@ const n8n_workflow_1 = require("n8n-workflow");
|
|
|
10
10
|
async function civicrmApiRequest(method, path, body) {
|
|
11
11
|
var _a;
|
|
12
12
|
const credentials = await this.getCredentials('civiCrmApi');
|
|
13
|
-
const baseUrl = credentials.
|
|
13
|
+
const baseUrl = credentials.baseUrl.replace(/\/$/, '');
|
|
14
14
|
const options = {
|
|
15
15
|
method,
|
|
16
16
|
url: `${baseUrl}${path}`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ixiam/n8n-nodes-civicrm",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.30",
|
|
4
4
|
"description": "Full-featured CiviCRM API v4 integration for n8n with support for Contacts, Memberships, Groups, Relationships, Activities and structured sub-entities like Email, Phone, and Address.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"dev": "n8n-node dev",
|
|
17
17
|
"build": "n8n-node build && pnpm run copy:assets",
|
|
18
|
-
"copy:assets": "cp src/nodes/CiviCrm/civicrm.svg dist/nodes/CiviCrm/",
|
|
18
|
+
"copy:assets": "cp src/nodes/CiviCrm/civicrm.svg dist/src/nodes/CiviCrm/",
|
|
19
19
|
"lint": "n8n-node lint",
|
|
20
20
|
"release": "n8n-node release",
|
|
21
21
|
"test": "npm run build"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"n8nNodesApiVersion": 1,
|
|
37
37
|
"strict": true,
|
|
38
38
|
"nodes": [
|
|
39
|
-
"dist/nodes/CiviCrm/CiviCrm.node.js"
|
|
39
|
+
"dist/src/nodes/CiviCrm/CiviCrm.node.js"
|
|
40
40
|
],
|
|
41
41
|
"credentials": [
|
|
42
42
|
"dist/credentials/CiviCrmApi.credentials.js"
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { INodeType, ICredentialType } from 'n8n-workflow';
|
|
2
2
|
|
|
3
3
|
import CiviCrmNode from './nodes/CiviCrm/CiviCrm.node';
|
|
4
|
-
import { CiviCrmApi } from '
|
|
4
|
+
import { CiviCrmApi } from '../credentials/CiviCrmApi.credentials';
|
|
5
5
|
|
|
6
6
|
export const nodes: INodeType[] = [
|
|
7
7
|
new CiviCrmNode(),
|
|
@@ -12,7 +12,7 @@ export async function civicrmApiRequest(
|
|
|
12
12
|
body: Record<string, unknown>,
|
|
13
13
|
) {
|
|
14
14
|
const credentials = await this.getCredentials('civiCrmApi');
|
|
15
|
-
const baseUrl = (credentials.
|
|
15
|
+
const baseUrl = (credentials.baseUrl as string).replace(/\/$/, '');
|
|
16
16
|
|
|
17
17
|
const options: IHttpRequestOptions = {
|
|
18
18
|
method,
|
package/tsconfig.json
CHANGED
|
@@ -2,14 +2,22 @@
|
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"module": "CommonJS",
|
|
4
4
|
"target": "ES2019",
|
|
5
|
-
"lib": [
|
|
5
|
+
"lib": [
|
|
6
|
+
"ES2020"
|
|
7
|
+
],
|
|
6
8
|
"outDir": "dist",
|
|
7
|
-
"rootDir": "
|
|
9
|
+
"rootDir": ".",
|
|
8
10
|
"strict": true,
|
|
9
11
|
"esModuleInterop": true,
|
|
10
12
|
"resolveJsonModule": true,
|
|
11
13
|
"skipLibCheck": true
|
|
12
14
|
},
|
|
13
|
-
"include": [
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
"include": [
|
|
16
|
+
"src/**/*",
|
|
17
|
+
"credentials/**/*"
|
|
18
|
+
],
|
|
19
|
+
"exclude": [
|
|
20
|
+
"node_modules",
|
|
21
|
+
"dist"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<svg xml:space="preserve" style="max-height: 500px" viewBox="190.4982463465553 39.1683 70.07818371607516 70.33139999999999" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1" width="70.07818371607516" height="70.33139999999999">
|
|
2
|
-
<style type="text/css">
|
|
3
|
-
.st0{fill:#086287;}
|
|
4
|
-
.st1{fill:#81C459;}
|
|
5
|
-
</style>
|
|
6
|
-
<g>
|
|
7
|
-
<g>
|
|
8
|
-
<g>
|
|
9
|
-
<path d="M216.26,104.26C216.26,104.26,216.26,104.26,216.26,104.26c-3.77-0.07-5.2-4.43-5.35-4.92l-12.85-42.11
				c-0.76-2.47-0.58-4.46,0.51-5.92c0.71-0.94,2.12-2.04,4.83-1.99c0.99,0.02,1.77,0.19,1.85,0.21l42.78,9.97
				c2.75,0.64,4.44,1.94,5.02,3.85c0.93,3.04-1.65,5.92-1.95,6.24l-29.94,32.12C219.57,103.43,217.91,104.29,216.26,104.26z
				 M203.19,53.73c-0.77-0.01-1.02,0.19-1.06,0.26c-0.22,0.31-0.26,0.44,0.19,1.93l12.85,42.11c0.29,0.9,0.76,1.74,1.18,1.77l0,0
				c0.01,0,0.52,0,1.57-1.13l29.94-32.12c0.55-0.61,1.06-1.6,0.95-1.9c-0.08-0.22-0.43-0.5-1.77-0.81l-42.78-9.97l0,0
				C204.24,53.87,203.7,53.74,203.19,53.73z" class="st0"/>
|
|
10
|
-
</g>
|
|
11
|
-
<g>
|
|
12
|
-
<path d="M211.45,100.83c-1.38,0.51-2.83,0.61-3.96,0.24c0,0,0,0,0,0c-3.57-1.17-3.68-5.74-3.68-6.26l0-41l4.21,0.94
				l0.02,40.15c0.01,0.94,0.25,1.84,0.83,1.94l0,0c0,0,0.3,0.09,1.15-0.3L211.45,100.83z M214.02,94.31l34.62-20.03
				c0.7-0.42,1.53-1.04,1.46-1.54c-0.01-0.07-0.17-0.52-0.92-1.05l2.9-3.3c1.64,1.25,2.47,2.71,2.47,4.35c0,3.17-3.3,5.17-3.68,5.39
				l-35.51,20.4L214.02,94.31z M245.14,69.42l-34.02-19.79c0,0-0.85-0.54-1.34-0.7c-0.73-0.24-1.08,0-1.15,0.05
				c-0.2,0.14-0.27,0.24-0.35,1.24l-4.38-0.82c0.24-1.82,0.95-3.17,2.12-4.03c0.95-0.69,2.62-1.33,5.19-0.5
				c0.94,0.31,1.63,0.7,1.71,0.74l35.39,20.42L245.14,69.42z" class="st1"/>
|
|
13
|
-
</g>
|
|
14
|
-
</g>
|
|
15
|
-
<g>
|
|
16
|
-
<path d="M183.02,66.82c-0.48-0.28-0.86-0.67-1.15-1.15c-0.28-0.48-0.42-1-0.42-1.57c0-0.56,0.14-1.09,0.42-1.57
			s0.66-0.86,1.15-1.15s1-0.42,1.57-0.42s1.09,0.14,1.57,0.42s0.86,0.66,1.15,1.15s0.42,1,0.42,1.57c0,0.57-0.14,1.09-0.42,1.57
			c-0.28,0.48-0.66,0.86-1.15,1.15s-1,0.42-1.57,0.42S183.5,67.1,183.02,66.82z M185.93,66.42c0.41-0.24,0.74-0.57,0.98-0.98
			c0.24-0.41,0.36-0.86,0.36-1.35c0-0.48-0.12-0.93-0.36-1.34c-0.24-0.41-0.57-0.73-0.98-0.98c-0.41-0.24-0.86-0.36-1.35-0.36
			c-0.48,0-0.93,0.12-1.34,0.36c-0.41,0.24-0.73,0.57-0.98,0.98c-0.24,0.41-0.36,0.85-0.36,1.34c0,0.49,0.12,0.94,0.36,1.35
			c0.24,0.41,0.57,0.74,0.98,0.98s0.85,0.36,1.34,0.36C185.07,66.79,185.52,66.66,185.93,66.42z M183.37,65.8
			c-0.06-0.05-0.08-0.12-0.08-0.21v-2.83c0-0.11,0.04-0.21,0.11-0.28s0.17-0.12,0.28-0.12h1.05c0.46,0,0.8,0.1,1.03,0.29
			s0.34,0.45,0.34,0.76c0,0.21-0.06,0.39-0.18,0.53c-0.12,0.14-0.28,0.25-0.46,0.32c0.16,0.06,0.3,0.18,0.42,0.35
			c0.12,0.18,0.18,0.42,0.18,0.74v0.24c0,0.08-0.03,0.15-0.09,0.21c-0.06,0.06-0.13,0.09-0.21,0.09s-0.15-0.03-0.21-0.09
			c-0.06-0.06-0.09-0.13-0.09-0.21v-0.16c0-0.25-0.04-0.46-0.11-0.63c-0.07-0.17-0.25-0.26-0.53-0.26h-0.95v1.06
			c0,0.08-0.03,0.15-0.09,0.21c-0.06,0.06-0.13,0.08-0.21,0.08C183.49,65.88,183.42,65.86,183.37,65.8z M184.7,64.02
			c0.25,0,0.45-0.05,0.6-0.15c0.15-0.1,0.22-0.25,0.22-0.44c0-0.18-0.06-0.32-0.19-0.42c-0.13-0.1-0.34-0.14-0.65-0.14h-0.81v1.15
			H184.7z" class="st0"/>
|
|
17
|
-
</g>
|
|
18
|
-
<g>
|
|
19
|
-
<path d="M31.72,88.55c-2.15-1.18-3.85-2.87-5.08-5.08c-1.23-2.21-1.85-4.79-1.85-7.74s0.62-5.53,1.85-7.74
			c1.23-2.21,2.93-3.9,5.08-5.08c2.15-1.18,4.58-1.77,7.29-1.77c1.84,0,3.49,0.22,4.94,0.65c1.45,0.43,2.89,1.06,4.33,1.87
			c0.6,0.32,0.89,0.84,0.89,1.54c0,0.41-0.15,0.77-0.45,1.08c-0.3,0.31-0.69,0.47-1.18,0.47c-0.27,0-0.51-0.05-0.73-0.16
			c-1.19-0.62-2.36-1.1-3.49-1.42c-1.14-0.32-2.45-0.49-3.94-0.49c-2.33,0-4.31,0.48-5.95,1.44c-1.64,0.96-2.87,2.28-3.7,3.94
			c-0.83,1.67-1.24,3.55-1.24,5.67s0.41,4,1.24,5.67c0.83,1.67,2.06,2.98,3.7,3.94c1.64,0.96,3.62,1.44,5.95,1.44
			c1.49,0,2.8-0.16,3.94-0.49c1.14-0.32,2.3-0.8,3.49-1.42c0.22-0.11,0.46-0.16,0.73-0.16c0.49,0,0.88,0.15,1.18,0.45
			c0.3,0.3,0.45,0.66,0.45,1.1c0,0.7-0.3,1.22-0.89,1.54c-1.44,0.81-2.88,1.44-4.33,1.87c-1.45,0.43-3.09,0.65-4.94,0.65
			C36.3,90.32,33.87,89.73,31.72,88.55z" class="st0"/>
|
|
20
|
-
<path d="M53.47,64.35c-0.41-0.41-0.61-0.89-0.61-1.46v-0.16c0-0.57,0.2-1.06,0.61-1.46c0.41-0.41,0.89-0.61,1.46-0.61
			h0.24c0.57,0,1.06,0.2,1.46,0.61s0.61,0.89,0.61,1.46v0.16c0,0.57-0.2,1.06-0.61,1.46c-0.41,0.41-0.89,0.61-1.46,0.61h-0.24
			C54.37,64.96,53.88,64.76,53.47,64.35z M53.72,89.58c-0.35-0.35-0.53-0.79-0.53-1.3V70.86c0-0.51,0.18-0.96,0.53-1.32
			c0.35-0.37,0.79-0.55,1.3-0.55c0.54,0,0.99,0.18,1.34,0.53c0.35,0.35,0.53,0.8,0.53,1.34v17.43c0,0.51-0.18,0.95-0.55,1.3
			c-0.37,0.35-0.81,0.53-1.32,0.53C54.5,90.11,54.07,89.94,53.72,89.58z" class="st0"/>
|
|
21
|
-
<path d="M68.5,89.69c-0.41-0.28-0.7-0.64-0.89-1.08l-7.07-16.9c-0.14-0.32-0.2-0.61-0.2-0.85
			c0-0.51,0.18-0.96,0.53-1.32c0.35-0.37,0.79-0.55,1.3-0.55c0.35,0,0.68,0.1,1,0.3c0.31,0.2,0.53,0.45,0.67,0.75l6.22,15.76
			l6.22-15.76c0.14-0.3,0.36-0.55,0.67-0.75c0.31-0.2,0.64-0.3,1-0.3c0.51,0,0.95,0.18,1.3,0.55c0.35,0.37,0.53,0.81,0.53,1.32
			c0,0.24-0.07,0.53-0.2,0.85l-7.07,16.9c-0.19,0.43-0.49,0.79-0.89,1.08s-0.85,0.43-1.34,0.43h-0.41
			C69.36,90.11,68.91,89.97,68.5,89.69z" class="st0"/>
|
|
22
|
-
<path d="M83.5,64.35c-0.41-0.41-0.61-0.89-0.61-1.46v-0.16c0-0.57,0.2-1.06,0.61-1.46c0.41-0.41,0.89-0.61,1.46-0.61
			h0.24c0.57,0,1.06,0.2,1.46,0.61s0.61,0.89,0.61,1.46v0.16c0,0.57-0.2,1.06-0.61,1.46c-0.41,0.41-0.89,0.61-1.46,0.61h-0.24
			C84.39,64.96,83.9,64.76,83.5,64.35z M83.74,89.58c-0.35-0.35-0.53-0.79-0.53-1.3V70.86c0-0.51,0.18-0.96,0.53-1.32
			c0.35-0.37,0.79-0.55,1.3-0.55c0.54,0,0.99,0.18,1.34,0.53c0.35,0.35,0.53,0.8,0.53,1.34v17.43c0,0.51-0.18,0.95-0.55,1.3
			c-0.37,0.35-0.81,0.53-1.32,0.53C84.53,90.11,84.09,89.94,83.74,89.58z" class="st0"/>
|
|
23
|
-
<path d="M97.65,88.55c-2.15-1.18-3.85-2.87-5.08-5.08c-1.23-2.21-1.85-4.79-1.85-7.74s0.62-5.53,1.85-7.74
			c1.23-2.21,2.93-3.9,5.08-5.08c2.15-1.18,4.58-1.77,7.29-1.77c1.84,0,3.49,0.22,4.94,0.65c1.45,0.43,2.89,1.06,4.33,1.87
			c0.6,0.32,0.89,0.84,0.89,1.54c0,0.41-0.15,0.77-0.45,1.08c-0.3,0.31-0.69,0.47-1.18,0.47c-0.27,0-0.51-0.05-0.73-0.16
			c-1.19-0.62-2.36-1.1-3.49-1.42c-1.14-0.32-2.45-0.49-3.94-0.49c-2.33,0-4.31,0.48-5.95,1.44c-1.64,0.96-2.87,2.28-3.7,3.94
			c-0.83,1.67-1.24,3.55-1.24,5.67s0.41,4,1.24,5.67c0.83,1.67,2.06,2.98,3.7,3.94c1.64,0.96,3.62,1.44,5.95,1.44
			c1.49,0,2.8-0.16,3.94-0.49c1.14-0.32,2.3-0.8,3.49-1.42c0.22-0.11,0.46-0.16,0.73-0.16c0.49,0,0.88,0.15,1.18,0.45
			c0.3,0.3,0.45,0.66,0.45,1.1c0,0.7-0.3,1.22-0.89,1.54c-1.44,0.81-2.88,1.44-4.33,1.87c-1.45,0.43-3.09,0.65-4.94,0.65
			C102.24,90.32,99.81,89.73,97.65,88.55z" class="st0"/>
|
|
24
|
-
<path d="M119.9,89.58c-0.35-0.35-0.53-0.79-0.53-1.3V63.42c0-0.51,0.18-0.96,0.53-1.32s0.79-0.55,1.3-0.55h9.47
			c3.68,0,6.45,0.76,8.29,2.28c1.84,1.52,2.76,3.51,2.76,5.97c0,1.62-0.45,3.11-1.36,4.45c-0.91,1.34-2.23,2.31-3.96,2.9
			c1.95,0.51,3.28,1.73,4,3.64c0.72,1.91,1.08,3.79,1.08,5.63v1.87c0,0.51-0.18,0.95-0.53,1.3c-0.35,0.35-0.79,0.53-1.3,0.53
			c-0.57,0-1.02-0.17-1.36-0.51c-0.34-0.34-0.51-0.78-0.51-1.32v-1.22c0-1.35-0.12-2.61-0.37-3.76s-0.83-2.18-1.75-3.09
			c-0.92-0.91-2.32-1.36-4.18-1.36h-8.41v9.43c0,0.51-0.18,0.95-0.55,1.3s-0.81,0.53-1.32,0.53
			C120.68,90.11,120.25,89.94,119.9,89.58z M130.42,75.37c2.33,0,4.18-0.46,5.55-1.38c1.37-0.92,2.05-2.22,2.05-3.9
			c0-1.62-0.59-2.87-1.77-3.74c-1.18-0.87-3.19-1.3-6.03-1.3h-7.15v10.32H130.42z" class="st0"/>
|
|
25
|
-
<path d="M146.71,89.58c-0.35-0.35-0.53-0.79-0.53-1.3V64.03c0-0.73,0.26-1.36,0.77-1.89
			c0.51-0.53,1.14-0.79,1.87-0.79h1.34c0.54,0,1.04,0.16,1.48,0.49c0.45,0.33,0.78,0.73,1,1.22l9.22,22.99l9.22-22.99
			c0.22-0.49,0.55-0.89,1-1.22c0.45-0.32,0.94-0.49,1.48-0.49h1.34c0.73,0,1.35,0.26,1.87,0.79c0.51,0.53,0.77,1.16,0.77,1.89v24.25
			c0,0.51-0.18,0.95-0.53,1.3c-0.35,0.35-0.79,0.53-1.3,0.53c-0.52,0-0.96-0.18-1.32-0.53c-0.37-0.35-0.55-0.79-0.55-1.3V65.21
			l-9.38,23.2c-0.22,0.51-0.56,0.93-1.04,1.24c-0.47,0.31-1,0.47-1.56,0.47s-1.09-0.16-1.56-0.47c-0.47-0.31-0.82-0.72-1.04-1.24
			l-9.38-23.2v23.08c0,0.51-0.18,0.95-0.55,1.3s-0.81,0.53-1.32,0.53C147.5,90.11,147.06,89.94,146.71,89.58z" class="st0"/>
|
|
26
|
-
</g>
|
|
27
|
-
</g>
|
|
28
|
-
</svg>
|
|
@@ -1,19 +0,0 @@
|
|
|
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.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# n8n-nodes-civigo
|
|
2
|
-
|
|
3
|
-
This is an n8n community node. It lets you use CiviCRM in your n8n workflows.
|
|
4
|
-
|
|
5
|
-
[n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.
|
|
6
|
-
|
|
7
|
-
[Installation](#installation)
|
|
8
|
-
[Operations](#operations)
|
|
9
|
-
[Credentials](#credentials)
|
|
10
|
-
|
|
11
|
-
## Installation
|
|
12
|
-
|
|
13
|
-
Follow the [installation guide](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) in the n8n documentation.
|
|
14
|
-
|
|
15
|
-
## Operations
|
|
16
|
-
|
|
17
|
-
### Contact
|
|
18
|
-
* Create
|
|
19
|
-
* Get
|
|
20
|
-
* Get Many
|
|
21
|
-
* Update
|
|
22
|
-
|
|
23
|
-
### Generic
|
|
24
|
-
* Perform any CiviCRM API v4 action by specifying Entity, Action and Parameters.
|
|
25
|
-
|
|
26
|
-
## Credentials
|
|
27
|
-
|
|
28
|
-
### CiviCRM API
|
|
29
|
-
* **URL**: The base URL of your CiviCRM instance (e.g. `https://example.org`).
|
|
30
|
-
* **Site Key**: Defined in `civicrm.settings.php`.
|
|
31
|
-
* **API Key**: The API key of the user.
|
|
32
|
-
|
|
33
|
-
## Compatibility
|
|
34
|
-
tested with n8n v0.200+ and CiviCRM 5.x.
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "n8n-nodes-civigo",
|
|
3
|
-
"version": "0.1.3",
|
|
4
|
-
"description": "n8n node for CiviCRM (Civigo)",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"homepage": "",
|
|
7
|
-
"keywords": [
|
|
8
|
-
"n8n-community-node-package"
|
|
9
|
-
],
|
|
10
|
-
"author": {
|
|
11
|
-
"name": "ixiam global solutions",
|
|
12
|
-
"email": "j.reartes@ixiam.com"
|
|
13
|
-
},
|
|
14
|
-
"repository": {
|
|
15
|
-
"type": "git",
|
|
16
|
-
"url": "https://github.com/soyjulen/n8n-nodes-civigo.git"
|
|
17
|
-
},
|
|
18
|
-
"scripts": {
|
|
19
|
-
"build": "n8n-node build",
|
|
20
|
-
"build:watch": "tsc --watch",
|
|
21
|
-
"dev": "n8n-node dev",
|
|
22
|
-
"lint": "n8n-node lint",
|
|
23
|
-
"lint:fix": "n8n-node lint --fix",
|
|
24
|
-
"release": "n8n-node release",
|
|
25
|
-
"prepublishOnly": "n8n-node prerelease"
|
|
26
|
-
},
|
|
27
|
-
"files": [
|
|
28
|
-
"dist"
|
|
29
|
-
],
|
|
30
|
-
"n8n": {
|
|
31
|
-
"n8nNodesApiVersion": 1,
|
|
32
|
-
"strict": true,
|
|
33
|
-
"credentials": [
|
|
34
|
-
"dist/credentials/CiviCrmApi.credentials.js"
|
|
35
|
-
],
|
|
36
|
-
"nodes": [
|
|
37
|
-
"dist/nodes/CiviCrm/CiviCrm.node.js"
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"@n8n/node-cli": "^0.17.0",
|
|
42
|
-
"@types/node": "^25.0.3",
|
|
43
|
-
"@types/request": "^2.48.13",
|
|
44
|
-
"eslint": "9.32.0",
|
|
45
|
-
"prettier": "3.6.2",
|
|
46
|
-
"release-it": "^19.0.4",
|
|
47
|
-
"typescript": "5.9.2"
|
|
48
|
-
},
|
|
49
|
-
"peerDependencies": {
|
|
50
|
-
"n8n-workflow": "*"
|
|
51
|
-
},
|
|
52
|
-
"overrides": {
|
|
53
|
-
"change-case": "4.1.2",
|
|
54
|
-
"ora": "5.4.1",
|
|
55
|
-
"string-width": "4.2.3",
|
|
56
|
-
"wrap-ansi": "7.0.0",
|
|
57
|
-
"strip-ansi": "6.0.1"
|
|
58
|
-
}
|
|
59
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|