1import { ApifyClient } from 'apify-client';
2
3
4
5const client = new ApifyClient({
6 token: '<YOUR_API_TOKEN>',
7});
8
9
10const input = {
11 "blueprintJson": {
12 "name": "Example - order intake",
13 "flow": [
14 {
15 "id": 1,
16 "module": "gateway:CustomWebHook",
17 "version": 1,
18 "parameters": {
19 "hook": 118273,
20 "maxResults": 1
21 },
22 "mapper": {},
23 "metadata": {
24 "designer": {
25 "x": 0,
26 "y": 0,
27 "name": "New order received"
28 },
29 "parameters": [
30 {
31 "name": "hook",
32 "type": "hook:gateway-webhook",
33 "label": "Webhook",
34 "required": true
35 },
36 {
37 "name": "maxResults",
38 "type": "number",
39 "label": "Maximum number of results"
40 }
41 ]
42 }
43 },
44 {
45 "id": 2,
46 "module": "http:ActionSendData",
47 "version": 3,
48 "parameters": {
49 "handleErrors": false,
50 "useNewZLibDeCompress": true
51 },
52 "mapper": {
53 "url": "https://api.crm.internal/v1/orders",
54 "serializeUrl": false,
55 "method": "post",
56 "headers": [
57 {
58 "name": "Content-Type",
59 "value": "application/json"
60 },
61 {
62 "name": "Authorization",
63 "value": "Bearer sk-proj-Qm7xT2vLp9RaW4cKz8Yh3NdE6sBu1JfG0oXiVwHtMy5ZcA"
64 }
65 ],
66 "qs": [],
67 "bodyType": "raw",
68 "parseResponse": true,
69 "authUser": "",
70 "authPass": "",
71 "timeout": "",
72 "shareCookies": false,
73 "ca": "",
74 "rejectUnauthorized": false,
75 "followRedirect": true,
76 "useQuerystring": false,
77 "gzip": true,
78 "useMtls": false,
79 "contentType": "application/json",
80 "data": "{{1.body}}",
81 "followAllRedirects": false
82 },
83 "metadata": {
84 "designer": {
85 "x": 300,
86 "y": 0
87 },
88 "parameters": [
89 {
90 "name": "handleErrors",
91 "type": "boolean",
92 "label": "Evaluate all states as errors (except for 2xx and 3xx )",
93 "required": true
94 },
95 {
96 "name": "useNewZLibDeCompress",
97 "type": "hidden"
98 }
99 ],
100 "expect": [
101 {
102 "name": "url",
103 "type": "url",
104 "label": "URL",
105 "required": true
106 },
107 {
108 "name": "method",
109 "type": "select",
110 "label": "Method"
111 },
112 {
113 "name": "headers",
114 "type": "array",
115 "label": "Headers"
116 },
117 {
118 "name": "qs",
119 "type": "array",
120 "label": "Query String"
121 },
122 {
123 "name": "rejectUnauthorized",
124 "type": "boolean",
125 "label": "Reject connections that are using unverified (self-signed) certificates",
126 "required": true
127 },
128 {
129 "name": "timeout",
130 "type": "uinteger",
131 "label": "Timeout"
132 },
133 {
134 "name": "data",
135 "type": "buffer",
136 "label": "Request content"
137 }
138 ]
139 }
140 },
141 {
142 "id": 3,
143 "module": "builtin:BasicFeeder",
144 "version": 1,
145 "parameters": {},
146 "mapper": {
147 "array": "{{2.data.items}}"
148 },
149 "metadata": {
150 "designer": {
151 "x": 600,
152 "y": 0
153 },
154 "expect": [
155 {
156 "name": "array",
157 "type": "array",
158 "label": "Array",
159 "mode": "edit"
160 }
161 ]
162 }
163 },
164 {
165 "id": 4,
166 "module": "google-sheets:addRow",
167 "version": 2,
168 "parameters": {
169 "__IMTCONN__": 1001
170 },
171 "mapper": {
172 "mode": "select",
173 "insertDataOption": "INSERT_ROWS",
174 "valueInputOption": "USER_ENTERED",
175 "spreadsheetId": "",
176 "sheetId": "Orders",
177 "includesHeaders": true,
178 "values": {
179 "0": "{{3.sku}}",
180 "1": "{{3.quantity}}",
181 "2": "{{1.customer.email}}"
182 }
183 },
184 "onerror": [
185 {
186 "id": 9,
187 "module": "builtin:Break",
188 "version": 1,
189 "parameters": {
190 "retry": true,
191 "count": 3,
192 "interval": 15
193 },
194 "mapper": {},
195 "metadata": {
196 "designer": {
197 "x": 900,
198 "y": 300
199 }
200 }
201 }
202 ],
203 "metadata": {
204 "designer": {
205 "x": 900,
206 "y": 0
207 },
208 "parameters": [
209 {
210 "name": "__IMTCONN__",
211 "type": "account:google",
212 "label": "Connection",
213 "required": true
214 }
215 ],
216 "expect": [
217 {
218 "name": "spreadsheetId",
219 "type": "select",
220 "label": "Spreadsheet ID"
221 },
222 {
223 "name": "sheetId",
224 "type": "select",
225 "label": "Sheet Name"
226 },
227 {
228 "name": "values",
229 "type": "collection",
230 "label": "Values"
231 }
232 ]
233 }
234 },
235 {
236 "id": 5,
237 "module": "slack:CreateMessage",
238 "version": 4,
239 "parameters": {
240 "__IMTCONN__": 1002
241 },
242 "mapper": {
243 "channel": "orders",
244 "text": "New order from {{42.customer_name}}: {{3.sku}} x {{3.quantity}}",
245 "parse": false
246 },
247 "metadata": {
248 "designer": {
249 "x": 1200,
250 "y": 0
251 },
252 "parameters": [
253 {
254 "name": "__IMTCONN__",
255 "type": "account:slack",
256 "label": "Connection",
257 "required": true
258 }
259 ],
260 "expect": [
261 {
262 "name": "channel",
263 "type": "text",
264 "label": "Channel"
265 },
266 {
267 "name": "text",
268 "type": "text",
269 "label": "Text"
270 }
271 ]
272 }
273 },
274 {
275 "id": 6,
276 "module": "builtin:BasicRouter",
277 "version": 1,
278 "parameters": {},
279 "mapper": null,
280 "metadata": {
281 "designer": {
282 "x": 1500,
283 "y": 0
284 }
285 },
286 "routes": [
287 {
288 "flow": [
289 {
290 "id": 7,
291 "module": "google-email:ActionSendEmail",
292 "version": 7,
293 "parameters": {
294 "account": 1003,
295 "saveAsDraft": false
296 },
297 "filter": {
298 "name": "Has email",
299 "conditions": [
300 [
301 {
302 "a": "{{1.customer.email}}",
303 "o": "exist"
304 }
305 ]
306 ]
307 },
308 "mapper": {
309 "to": [
310 "{{1.customer.email}}"
311 ],
312 "subject": "Order confirmed",
313 "contentType": "text",
314 "text": "Thanks for your order of {{3.sku}}."
315 },
316 "metadata": {
317 "designer": {
318 "x": 1800,
319 "y": 0
320 },
321 "parameters": [
322 {
323 "name": "account",
324 "type": "account:google-restricted",
325 "label": "Connection",
326 "required": true
327 },
328 {
329 "name": "saveAsDraft",
330 "type": "boolean",
331 "label": "Save as draft"
332 }
333 ],
334 "expect": [
335 {
336 "name": "to",
337 "type": "array",
338 "label": "To"
339 },
340 {
341 "name": "subject",
342 "type": "text",
343 "label": "Subject"
344 }
345 ]
346 }
347 }
348 ]
349 }
350 ]
351 }
352 ],
353 "metadata": {
354 "instant": true,
355 "version": 1,
356 "scenario": {
357 "roundtrips": 1,
358 "maxErrors": 3,
359 "autoCommit": true,
360 "autoCommitTriggerLast": true,
361 "sequential": false,
362 "slots": null,
363 "confidential": false,
364 "dataloss": false,
365 "dlq": false,
366 "freshVariables": false
367 },
368 "designer": {
369 "orphans": []
370 },
371 "zone": "eu1.make.com"
372 }
373 },
374 "blueprintUrls": [],
375 "teamIds": [],
376 "scenarioIds": [],
377 "ignoreRules": []
378};
379
380
381const run = await client.actor("mediocre_interest/make-scenario-auditor").call(input);
382
383
384console.log('Results from dataset');
385console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
386const { items } = await client.dataset(run.defaultDatasetId).listItems();
387items.forEach((item) => {
388 console.dir(item);
389});
390
391