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
- ## Develop and test
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.0",
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
+ }