n8n-nodes-contactformblaster 0.1.0 → 0.1.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
|
@@ -33,28 +33,12 @@ Then add a **Contact Form Blaster API** credential with your API key from **API
|
|
|
33
33
|
|
|
34
34
|
## Templates
|
|
35
35
|
|
|
36
|
-
`templates/` has two workflows you can import (**Workflows → Import from File**):
|
|
36
|
+
The package's `templates/` folder has two workflows you can import (**Workflows → Import from File**):
|
|
37
37
|
|
|
38
38
|
- `launch-from-google-sheets.json`: read a sheet of websites and launch a campaign.
|
|
39
39
|
- `save-leads-when-campaign-finishes.json`: when a campaign finishes, add every website where emails
|
|
40
40
|
were found to a sheet.
|
|
41
41
|
|
|
42
|
-
##
|
|
42
|
+
## Support
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
npm install
|
|
46
|
-
npm test # builds, then runs both nodes against a fake API (test/fake-api.js)
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Publish (one-time setup)
|
|
50
|
-
|
|
51
|
-
1. Easiest: GitHub Actions → **Publish n8n node to npm** → *Run workflow* (pick the branch). It builds, runs the
|
|
52
|
-
tests and publishes. It needs the repository secret `NPM_TOKEN`: an npm granular access token with read and
|
|
53
|
-
write access. By hand instead: `npm login`, then
|
|
54
|
-
2. `npm publish --access public` from this folder (it builds first). The package name must stay `n8n-nodes-*` with the
|
|
55
|
-
`n8n-community-node-package` keyword so n8n can find it.
|
|
56
|
-
3. Optional: submit it for verification in the n8n Creator Portal (https://creators.n8n.io) so it shows
|
|
57
|
-
up in n8n Cloud's node panel too. Verified nodes must have no runtime dependencies (this one has none).
|
|
58
|
-
4. Share the templates on https://n8n.io/workflows (an n8n creator account is needed).
|
|
59
|
-
|
|
60
|
-
Updating: bump `version` in `package.json`, then `npm publish` again.
|
|
44
|
+
Questions or ideas: support@contactformblaster.com · https://contactformblaster.com
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-contactformblaster",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "n8n nodes for Contact Form Blaster: send your message through thousands of websites' own contact forms, then get each site's result. https://contactformblaster.com",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -16,11 +16,6 @@
|
|
|
16
16
|
"name": "Contact Form Blaster",
|
|
17
17
|
"url": "https://contactformblaster.com"
|
|
18
18
|
},
|
|
19
|
-
"repository": {
|
|
20
|
-
"type": "git",
|
|
21
|
-
"url": "https://github.com/88maverick9999/contactform.git",
|
|
22
|
-
"directory": "integrations/n8n"
|
|
23
|
-
},
|
|
24
19
|
"main": "index.js",
|
|
25
20
|
"scripts": {
|
|
26
21
|
"build": "tsc && node scripts/copy-icons.js",
|
|
@@ -28,7 +23,8 @@
|
|
|
28
23
|
"prepublishOnly": "npm run build"
|
|
29
24
|
},
|
|
30
25
|
"files": [
|
|
31
|
-
"dist"
|
|
26
|
+
"dist",
|
|
27
|
+
"templates"
|
|
32
28
|
],
|
|
33
29
|
"n8n": {
|
|
34
30
|
"n8nNodesApiVersion": 1,
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Launch a Contact Form Blaster campaign from a Google Sheet",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"id": "s1",
|
|
6
|
+
"name": "When clicking 'Execute workflow'",
|
|
7
|
+
"type": "n8n-nodes-base.manualTrigger",
|
|
8
|
+
"typeVersion": 1,
|
|
9
|
+
"position": [
|
|
10
|
+
0,
|
|
11
|
+
0
|
|
12
|
+
],
|
|
13
|
+
"parameters": {}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "s2",
|
|
17
|
+
"name": "Read websites",
|
|
18
|
+
"type": "n8n-nodes-base.googleSheets",
|
|
19
|
+
"typeVersion": 4.5,
|
|
20
|
+
"position": [
|
|
21
|
+
220,
|
|
22
|
+
0
|
|
23
|
+
],
|
|
24
|
+
"parameters": {
|
|
25
|
+
"documentId": {
|
|
26
|
+
"__rl": true,
|
|
27
|
+
"mode": "url",
|
|
28
|
+
"value": ""
|
|
29
|
+
},
|
|
30
|
+
"sheetName": {
|
|
31
|
+
"__rl": true,
|
|
32
|
+
"mode": "list",
|
|
33
|
+
"value": ""
|
|
34
|
+
},
|
|
35
|
+
"options": {}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "s3",
|
|
40
|
+
"name": "Collect websites",
|
|
41
|
+
"type": "n8n-nodes-base.aggregate",
|
|
42
|
+
"typeVersion": 1,
|
|
43
|
+
"position": [
|
|
44
|
+
440,
|
|
45
|
+
0
|
|
46
|
+
],
|
|
47
|
+
"parameters": {
|
|
48
|
+
"fieldsToAggregate": {
|
|
49
|
+
"fieldToAggregate": [
|
|
50
|
+
{
|
|
51
|
+
"fieldToAggregate": "website"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"options": {}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "s4",
|
|
60
|
+
"name": "Launch campaign",
|
|
61
|
+
"type": "n8n-nodes-contactformblaster.contactFormBlaster",
|
|
62
|
+
"typeVersion": 1,
|
|
63
|
+
"position": [
|
|
64
|
+
660,
|
|
65
|
+
0
|
|
66
|
+
],
|
|
67
|
+
"credentials": {
|
|
68
|
+
"contactFormBlasterApi": {
|
|
69
|
+
"id": "",
|
|
70
|
+
"name": "Contact Form Blaster account"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"parameters": {
|
|
74
|
+
"resource": "campaign",
|
|
75
|
+
"operation": "launch",
|
|
76
|
+
"campaignName": "From Google Sheets",
|
|
77
|
+
"inputMode": "list",
|
|
78
|
+
"websites": "={{ $json.website }}",
|
|
79
|
+
"fieldPreset": "",
|
|
80
|
+
"sender": {
|
|
81
|
+
"subject": "Quick question for {company_name}",
|
|
82
|
+
"message": "Hi {company_name} team,\n\n\u2026"
|
|
83
|
+
},
|
|
84
|
+
"options": {}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "s5",
|
|
89
|
+
"name": "Note",
|
|
90
|
+
"type": "n8n-nodes-base.stickyNote",
|
|
91
|
+
"typeVersion": 1,
|
|
92
|
+
"position": [
|
|
93
|
+
0,
|
|
94
|
+
-260
|
|
95
|
+
],
|
|
96
|
+
"parameters": {
|
|
97
|
+
"width": 700,
|
|
98
|
+
"height": 220,
|
|
99
|
+
"content": "## Launch a campaign from a Google Sheet\n1. Pick your sheet in **Read websites** (a column named `website`).\n2. In **Launch campaign**, connect your Contact Form Blaster API key (API Access in the app) and pick a saved sender preset or fill in the sender details.\n3. Run it. New to Contact Form Blaster? Free credits at https://contactformblaster.com"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"connections": {
|
|
104
|
+
"When clicking 'Execute workflow'": {
|
|
105
|
+
"main": [
|
|
106
|
+
[
|
|
107
|
+
{
|
|
108
|
+
"node": "Read websites",
|
|
109
|
+
"type": "main",
|
|
110
|
+
"index": 0
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
"Read websites": {
|
|
116
|
+
"main": [
|
|
117
|
+
[
|
|
118
|
+
{
|
|
119
|
+
"node": "Collect websites",
|
|
120
|
+
"type": "main",
|
|
121
|
+
"index": 0
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"Collect websites": {
|
|
127
|
+
"main": [
|
|
128
|
+
[
|
|
129
|
+
{
|
|
130
|
+
"node": "Launch campaign",
|
|
131
|
+
"type": "main",
|
|
132
|
+
"index": 0
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"settings": {
|
|
139
|
+
"executionOrder": "v1"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Save websites with emails found when a Contact Form Blaster campaign finishes",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"id": "r1",
|
|
6
|
+
"name": "Campaign finished",
|
|
7
|
+
"type": "n8n-nodes-contactformblaster.contactFormBlasterTrigger",
|
|
8
|
+
"typeVersion": 1,
|
|
9
|
+
"position": [
|
|
10
|
+
0,
|
|
11
|
+
0
|
|
12
|
+
],
|
|
13
|
+
"credentials": {
|
|
14
|
+
"contactFormBlasterApi": {
|
|
15
|
+
"id": "",
|
|
16
|
+
"name": "Contact Form Blaster account"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"parameters": {
|
|
20
|
+
"pollTimes": {
|
|
21
|
+
"item": [
|
|
22
|
+
{
|
|
23
|
+
"mode": "everyX",
|
|
24
|
+
"value": 15,
|
|
25
|
+
"unit": "minutes"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"event": "campaignFinished",
|
|
30
|
+
"statuses": [
|
|
31
|
+
"completed",
|
|
32
|
+
"partly_completed"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "r2",
|
|
38
|
+
"name": "Get results",
|
|
39
|
+
"type": "n8n-nodes-contactformblaster.contactFormBlaster",
|
|
40
|
+
"typeVersion": 1,
|
|
41
|
+
"position": [
|
|
42
|
+
220,
|
|
43
|
+
0
|
|
44
|
+
],
|
|
45
|
+
"credentials": {
|
|
46
|
+
"contactFormBlasterApi": {
|
|
47
|
+
"id": "",
|
|
48
|
+
"name": "Contact Form Blaster account"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"parameters": {
|
|
52
|
+
"resource": "campaign",
|
|
53
|
+
"operation": "getResults",
|
|
54
|
+
"campaignId": "={{ $json.id }}",
|
|
55
|
+
"returnAll": true
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "r3",
|
|
60
|
+
"name": "Emails found",
|
|
61
|
+
"type": "n8n-nodes-base.filter",
|
|
62
|
+
"typeVersion": 2,
|
|
63
|
+
"position": [
|
|
64
|
+
440,
|
|
65
|
+
0
|
|
66
|
+
],
|
|
67
|
+
"parameters": {
|
|
68
|
+
"conditions": {
|
|
69
|
+
"options": {
|
|
70
|
+
"caseSensitive": true,
|
|
71
|
+
"typeValidation": "loose",
|
|
72
|
+
"version": 1
|
|
73
|
+
},
|
|
74
|
+
"conditions": [
|
|
75
|
+
{
|
|
76
|
+
"id": "c1",
|
|
77
|
+
"leftValue": "={{ $json.emailsFound.length }}",
|
|
78
|
+
"rightValue": 0,
|
|
79
|
+
"operator": {
|
|
80
|
+
"type": "number",
|
|
81
|
+
"operation": "gt"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"combinator": "and"
|
|
86
|
+
},
|
|
87
|
+
"options": {}
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "r4",
|
|
92
|
+
"name": "Add to sheet",
|
|
93
|
+
"type": "n8n-nodes-base.googleSheets",
|
|
94
|
+
"typeVersion": 4.5,
|
|
95
|
+
"position": [
|
|
96
|
+
660,
|
|
97
|
+
0
|
|
98
|
+
],
|
|
99
|
+
"parameters": {
|
|
100
|
+
"documentId": {
|
|
101
|
+
"__rl": true,
|
|
102
|
+
"mode": "url",
|
|
103
|
+
"value": ""
|
|
104
|
+
},
|
|
105
|
+
"sheetName": {
|
|
106
|
+
"__rl": true,
|
|
107
|
+
"mode": "list",
|
|
108
|
+
"value": ""
|
|
109
|
+
},
|
|
110
|
+
"operation": "append",
|
|
111
|
+
"columns": {
|
|
112
|
+
"mappingMode": "autoMapInputData",
|
|
113
|
+
"value": {}
|
|
114
|
+
},
|
|
115
|
+
"options": {}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"id": "r5",
|
|
120
|
+
"name": "Note",
|
|
121
|
+
"type": "n8n-nodes-base.stickyNote",
|
|
122
|
+
"typeVersion": 1,
|
|
123
|
+
"position": [
|
|
124
|
+
0,
|
|
125
|
+
-260
|
|
126
|
+
],
|
|
127
|
+
"parameters": {
|
|
128
|
+
"width": 700,
|
|
129
|
+
"height": 200,
|
|
130
|
+
"content": "## When a campaign finishes, save the leads\nChecks every 15 minutes. For each finished campaign, every website where Contact Form Blaster found an email address is added to your sheet (website, company, emails, phones, status). https://contactformblaster.com"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"connections": {
|
|
135
|
+
"Campaign finished": {
|
|
136
|
+
"main": [
|
|
137
|
+
[
|
|
138
|
+
{
|
|
139
|
+
"node": "Get results",
|
|
140
|
+
"type": "main",
|
|
141
|
+
"index": 0
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
"Get results": {
|
|
147
|
+
"main": [
|
|
148
|
+
[
|
|
149
|
+
{
|
|
150
|
+
"node": "Emails found",
|
|
151
|
+
"type": "main",
|
|
152
|
+
"index": 0
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"Emails found": {
|
|
158
|
+
"main": [
|
|
159
|
+
[
|
|
160
|
+
{
|
|
161
|
+
"node": "Add to sheet",
|
|
162
|
+
"type": "main",
|
|
163
|
+
"index": 0
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"settings": {
|
|
170
|
+
"executionOrder": "v1"
|
|
171
|
+
}
|
|
172
|
+
}
|