@tangle-network/agent-integrations 0.41.0 → 0.42.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/dist/catalog.js +2 -2
- package/dist/{chunk-COKK7BOH.js → chunk-JKYPEVMS.js} +3546 -15
- package/dist/chunk-JKYPEVMS.js.map +1 -0
- package/dist/{chunk-I3NAY66Z.js → chunk-NY4EII6I.js} +2 -2
- package/dist/connectors/adapters/index.d.ts +67 -1
- package/dist/connectors/adapters/index.js +67 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +67 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +68 -2
- package/dist/mcp.js +2 -2
- package/dist/registry.js +2 -2
- package/dist/runtime.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-COKK7BOH.js.map +0 -1
- /package/dist/{chunk-I3NAY66Z.js.map → chunk-NY4EII6I.js.map} +0 -0
|
@@ -48,6 +48,7 @@ __export(adapters_exports, {
|
|
|
48
48
|
amazonTextractConnector: () => amazonTextractConnector,
|
|
49
49
|
aminosConnector: () => aminosConnector,
|
|
50
50
|
ampecoConnector: () => ampecoConnector,
|
|
51
|
+
amplemarketConnector: () => amplemarketConnector,
|
|
51
52
|
anthropicConnector: () => anthropicConnector,
|
|
52
53
|
apitableConnector: () => apitableConnector,
|
|
53
54
|
apitemplateIoConnector: () => apitemplateIoConnector,
|
|
@@ -59,6 +60,7 @@ __export(adapters_exports, {
|
|
|
59
60
|
assemblyaiConnector: () => assemblyaiConnector,
|
|
60
61
|
attioConnector: () => attioConnector,
|
|
61
62
|
auth0Connector: () => auth0Connector,
|
|
63
|
+
autoboundConnector: () => autoboundConnector,
|
|
62
64
|
autocallsConnector: () => autocallsConnector,
|
|
63
65
|
avianConnector: () => avianConnector,
|
|
64
66
|
avomaConnector: () => avomaConnector,
|
|
@@ -71,6 +73,7 @@ __export(adapters_exports, {
|
|
|
71
73
|
baremetricsConnector: () => baremetricsConnector,
|
|
72
74
|
basecampConnector: () => basecampConnector,
|
|
73
75
|
beamerConnector: () => beamerConnector,
|
|
76
|
+
bettercontactConnector: () => bettercontactConnector,
|
|
74
77
|
bettermodeConnector: () => bettermodeConnector,
|
|
75
78
|
bexioConnector: () => bexioConnector,
|
|
76
79
|
bigcommerceConnector: () => bigcommerceConnector,
|
|
@@ -85,8 +88,10 @@ __export(adapters_exports, {
|
|
|
85
88
|
boxConnector: () => boxConnector,
|
|
86
89
|
braveSearchConnector: () => braveSearchConnector,
|
|
87
90
|
brazeConnector: () => brazeConnector,
|
|
91
|
+
brightdataConnector: () => brightdataConnector,
|
|
88
92
|
brilliantDirectoriesConnector: () => brilliantDirectoriesConnector,
|
|
89
93
|
browseAiConnector: () => browseAiConnector,
|
|
94
|
+
builtwithConnector: () => builtwithConnector,
|
|
90
95
|
calComConnector: () => calComConnector,
|
|
91
96
|
calendlyConnector: () => calendlyConnector,
|
|
92
97
|
campaignMonitorConnector: () => campaignMonitorConnector,
|
|
@@ -124,14 +129,17 @@ __export(adapters_exports, {
|
|
|
124
129
|
cohereConnector: () => cohereConnector,
|
|
125
130
|
cometapiConnector: () => cometapiConnector,
|
|
126
131
|
comfyicuConnector: () => comfyicuConnector,
|
|
132
|
+
commonRoomConnector: () => commonRoomConnector,
|
|
127
133
|
confluenceConnector: () => confluenceConnector,
|
|
128
134
|
constantContactConnector: () => constantContactConnector,
|
|
135
|
+
contactoutConnector: () => contactoutConnector,
|
|
129
136
|
contentfulConnector: () => contentfulConnector,
|
|
130
137
|
convertkitConnector: () => convertkitConnector,
|
|
131
138
|
copperConnector: () => copperConnector,
|
|
132
139
|
copyAiConnector: () => copyAiConnector,
|
|
133
140
|
createTangleIdentityClient: () => createTangleIdentityClient,
|
|
134
141
|
crispConnector: () => crispConnector,
|
|
142
|
+
crustdataConnector: () => crustdataConnector,
|
|
135
143
|
cryptolensConnector: () => cryptolensConnector,
|
|
136
144
|
customerIoConnector: () => customerIoConnector,
|
|
137
145
|
customgptConnector: () => customgptConnector,
|
|
@@ -167,11 +175,13 @@ __export(adapters_exports, {
|
|
|
167
175
|
exaConnector: () => exaConnector,
|
|
168
176
|
facebookLeadsConnector: () => facebookLeadsConnector,
|
|
169
177
|
facebookPagesConnector: () => facebookPagesConnector,
|
|
178
|
+
factorsAiConnector: () => factorsAiConnector,
|
|
170
179
|
fathomAnalyticsConnector: () => fathomAnalyticsConnector,
|
|
171
180
|
fathomConnector: () => fathomConnector,
|
|
172
181
|
figjamConnector: () => figjamConnector,
|
|
173
182
|
figmaConnector: () => figmaConnector,
|
|
174
183
|
filloutFormsConnector: () => filloutFormsConnector,
|
|
184
|
+
findymailConnector: () => findymailConnector,
|
|
175
185
|
firebaseConnector: () => firebaseConnector,
|
|
176
186
|
fireberryConnector: () => fireberryConnector,
|
|
177
187
|
firecrawlConnector: () => firecrawlConnector,
|
|
@@ -190,8 +200,10 @@ __export(adapters_exports, {
|
|
|
190
200
|
freshsalesConnector: () => freshsalesConnector,
|
|
191
201
|
freshserviceConnector: () => freshserviceConnector,
|
|
192
202
|
frontConnector: () => frontConnector,
|
|
203
|
+
fullenrichConnector: () => fullenrichConnector,
|
|
193
204
|
gameballConnector: () => gameballConnector,
|
|
194
205
|
geminiConnector: () => geminiConnector,
|
|
206
|
+
getresponseConnector: () => getresponseConnector,
|
|
195
207
|
ghostcmsConnector: () => ghostcmsConnector,
|
|
196
208
|
gistlyConnector: () => gistlyConnector,
|
|
197
209
|
giteaConnector: () => giteaConnector,
|
|
@@ -237,6 +249,8 @@ __export(adapters_exports, {
|
|
|
237
249
|
helpscoutConnector: () => helpscoutConnector,
|
|
238
250
|
heygenConnector: () => heygenConnector,
|
|
239
251
|
heymarketSmsConnector: () => heymarketSmsConnector,
|
|
252
|
+
heyreachConnector: () => heyreachConnector,
|
|
253
|
+
hightouchConnector: () => hightouchConnector,
|
|
240
254
|
housecallProConnector: () => housecallProConnector,
|
|
241
255
|
hubspot: () => hubspot,
|
|
242
256
|
huggingFaceConnector: () => huggingFaceConnector,
|
|
@@ -261,6 +275,7 @@ __export(adapters_exports, {
|
|
|
261
275
|
joggAiConnector: () => joggAiConnector,
|
|
262
276
|
jotformConnector: () => jotformConnector,
|
|
263
277
|
justInvoiceConnector: () => justInvoiceConnector,
|
|
278
|
+
justcallConnector: () => justcallConnector,
|
|
264
279
|
kallabotAiConnector: () => kallabotAiConnector,
|
|
265
280
|
kapsoConnector: () => kapsoConnector,
|
|
266
281
|
kimaiConnector: () => kimaiConnector,
|
|
@@ -274,7 +289,10 @@ __export(adapters_exports, {
|
|
|
274
289
|
kommoConnector: () => kommoConnector,
|
|
275
290
|
kudosityConnector: () => kudosityConnector,
|
|
276
291
|
kustomerConnector: () => kustomerConnector,
|
|
292
|
+
lagrowthmachineConnector: () => lagrowthmachineConnector,
|
|
277
293
|
leadConnectorConnector: () => leadConnectorConnector,
|
|
294
|
+
leadfeederConnector: () => leadfeederConnector,
|
|
295
|
+
leadmagicConnector: () => leadmagicConnector,
|
|
278
296
|
leapAiConnector: () => leapAiConnector,
|
|
279
297
|
leexiConnector: () => leexiConnector,
|
|
280
298
|
lemlistConnector: () => lemlistConnector,
|
|
@@ -335,6 +353,7 @@ __export(adapters_exports, {
|
|
|
335
353
|
missiveConnector: () => missiveConnector,
|
|
336
354
|
mixmaxConnector: () => mixmaxConnector,
|
|
337
355
|
mixpanelConnector: () => mixpanelConnector,
|
|
356
|
+
modjoConnector: () => modjoConnector,
|
|
338
357
|
mollieConnector: () => mollieConnector,
|
|
339
358
|
mondayConnector: () => mondayConnector,
|
|
340
359
|
mongodbConnector: () => mongodbConnector,
|
|
@@ -343,9 +362,11 @@ __export(adapters_exports, {
|
|
|
343
362
|
niftyConnector: () => niftyConnector,
|
|
344
363
|
ninjapipeConnector: () => ninjapipeConnector,
|
|
345
364
|
nocodbConnector: () => nocodbConnector,
|
|
365
|
+
nooksConnector: () => nooksConnector,
|
|
346
366
|
notion: () => notion,
|
|
347
367
|
notionConnector: () => notionConnector,
|
|
348
368
|
ntfyConnector: () => ntfyConnector,
|
|
369
|
+
oceanIoConnector: () => oceanIoConnector,
|
|
349
370
|
odooConnector: () => odooConnector,
|
|
350
371
|
omniCoConnector: () => omniCoConnector,
|
|
351
372
|
omnihrConnector: () => omnihrConnector,
|
|
@@ -372,6 +393,7 @@ __export(adapters_exports, {
|
|
|
372
393
|
peekshotConnector: () => peekshotConnector,
|
|
373
394
|
perplexityAiConnector: () => perplexityAiConnector,
|
|
374
395
|
personalAiConnector: () => personalAiConnector,
|
|
396
|
+
phantombusterConnector: () => phantombusterConnector,
|
|
375
397
|
phonyConnector: () => phonyConnector,
|
|
376
398
|
pinchPaymentsConnector: () => pinchPaymentsConnector,
|
|
377
399
|
pineconeConnector: () => pineconeConnector,
|
|
@@ -381,6 +403,7 @@ __export(adapters_exports, {
|
|
|
381
403
|
plausibleConnector: () => plausibleConnector,
|
|
382
404
|
pocketbaseConnector: () => pocketbaseConnector,
|
|
383
405
|
pollybotAiConnector: () => pollybotAiConnector,
|
|
406
|
+
polytomicConnector: () => polytomicConnector,
|
|
384
407
|
postgresConnector: () => postgresConnector,
|
|
385
408
|
posthogConnector: () => posthogConnector,
|
|
386
409
|
postizConnector: () => postizConnector,
|
|
@@ -410,11 +433,13 @@ __export(adapters_exports, {
|
|
|
410
433
|
saasticConnector: () => saasticConnector,
|
|
411
434
|
saleorConnector: () => saleorConnector,
|
|
412
435
|
salesforceConnector: () => salesforceConnector,
|
|
436
|
+
saleshandyConnector: () => saleshandyConnector,
|
|
413
437
|
sanityConnector: () => sanityConnector,
|
|
414
438
|
sardisConnector: () => sardisConnector,
|
|
415
439
|
savvycalConnector: () => savvycalConnector,
|
|
416
440
|
scrapegraphaiConnector: () => scrapegraphaiConnector,
|
|
417
441
|
scrapelessConnector: () => scrapelessConnector,
|
|
442
|
+
seamlessAiConnector: () => seamlessAiConnector,
|
|
418
443
|
seekTableConnector: () => seekTableConnector,
|
|
419
444
|
semrushConnector: () => semrushConnector,
|
|
420
445
|
sendgridConnector: () => sendgridConnector,
|
|
@@ -422,6 +447,7 @@ __export(adapters_exports, {
|
|
|
422
447
|
sendpulseConnector: () => sendpulseConnector,
|
|
423
448
|
senjaConnector: () => senjaConnector,
|
|
424
449
|
sentryConnector: () => sentryConnector,
|
|
450
|
+
serperConnector: () => serperConnector,
|
|
425
451
|
serpstatConnector: () => serpstatConnector,
|
|
426
452
|
serviceNowConnector: () => serviceNowConnector,
|
|
427
453
|
sharepoint: () => sharepoint,
|
|
@@ -430,6 +456,7 @@ __export(adapters_exports, {
|
|
|
430
456
|
shortIoConnector: () => shortIoConnector,
|
|
431
457
|
signNowConnector: () => signNowConnector,
|
|
432
458
|
signrequestConnector: () => signrequestConnector,
|
|
459
|
+
signwellConnector: () => signwellConnector,
|
|
433
460
|
similarwebConnector: () => similarwebConnector,
|
|
434
461
|
simplirouteConnector: () => simplirouteConnector,
|
|
435
462
|
simplybookmeConnector: () => simplybookmeConnector,
|
|
@@ -441,6 +468,7 @@ __export(adapters_exports, {
|
|
|
441
468
|
smartsuiteConnector: () => smartsuiteConnector,
|
|
442
469
|
smooveConnector: () => smooveConnector,
|
|
443
470
|
smsmodeConnector: () => smsmodeConnector,
|
|
471
|
+
snovIoConnector: () => snovIoConnector,
|
|
444
472
|
snowflakeConnector: () => snowflakeConnector,
|
|
445
473
|
socialkitConnector: () => socialkitConnector,
|
|
446
474
|
squareConnector: () => squareConnector,
|
|
@@ -460,6 +488,7 @@ __export(adapters_exports, {
|
|
|
460
488
|
telnyxConnector: () => telnyxConnector,
|
|
461
489
|
tenzoConnector: () => tenzoConnector,
|
|
462
490
|
textcortexAiConnector: () => textcortexAiConnector,
|
|
491
|
+
theirstackConnector: () => theirstackConnector,
|
|
463
492
|
ticktickConnector: () => ticktickConnector,
|
|
464
493
|
timeOpsConnector: () => timeOpsConnector,
|
|
465
494
|
timelinesAiConnector: () => timelinesAiConnector,
|
|
@@ -479,6 +508,7 @@ __export(adapters_exports, {
|
|
|
479
508
|
umamiConnector: () => umamiConnector,
|
|
480
509
|
upgradechatConnector: () => upgradechatConnector,
|
|
481
510
|
uscreenConnector: () => uscreenConnector,
|
|
511
|
+
usergemsConnector: () => usergemsConnector,
|
|
482
512
|
validatedmailsConnector: () => validatedmailsConnector,
|
|
483
513
|
vapiConnector: () => vapiConnector,
|
|
484
514
|
vboutConnector: () => vboutConnector,
|
|
@@ -490,6 +520,7 @@ __export(adapters_exports, {
|
|
|
490
520
|
vtexConnector: () => vtexConnector,
|
|
491
521
|
vtigerConnector: () => vtigerConnector,
|
|
492
522
|
wafeqConnector: () => wafeqConnector,
|
|
523
|
+
warmlyConnector: () => warmlyConnector,
|
|
493
524
|
weaviateConnector: () => weaviateConnector,
|
|
494
525
|
webflowConnector: () => webflowConnector,
|
|
495
526
|
webhookConnector: () => webhookConnector,
|
|
@@ -498,6 +529,7 @@ __export(adapters_exports, {
|
|
|
498
529
|
whatsappBusiness: () => whatsappBusiness,
|
|
499
530
|
whatsappConnector: () => whatsappConnector,
|
|
500
531
|
whatsscaleConnector: () => whatsscaleConnector,
|
|
532
|
+
wizaConnector: () => wizaConnector,
|
|
501
533
|
wonderchatConnector: () => wonderchatConnector,
|
|
502
534
|
woocommerceConnector: () => woocommerceConnector,
|
|
503
535
|
woodpeckerConnector: () => woodpeckerConnector,
|
|
@@ -515,6 +547,7 @@ __export(adapters_exports, {
|
|
|
515
547
|
zapierConnector: () => zapierConnector,
|
|
516
548
|
zendeskConnector: () => zendeskConnector,
|
|
517
549
|
zendeskSellConnector: () => zendeskSellConnector,
|
|
550
|
+
zenrowsConnector: () => zenrowsConnector,
|
|
518
551
|
zeplinConnector: () => zeplinConnector,
|
|
519
552
|
zerobounceConnector: () => zerobounceConnector,
|
|
520
553
|
zohoBookingsConnector: () => zohoBookingsConnector,
|
|
@@ -2281,7 +2314,7 @@ function declarativeRestConnector(spec) {
|
|
|
2281
2314
|
},
|
|
2282
2315
|
async executeRead(inv) {
|
|
2283
2316
|
const op = readOperation(spec, inv.capabilityName, "read");
|
|
2284
|
-
const response = await executeRestRequest(spec, op.request, inv);
|
|
2317
|
+
const response = await executeRestRequest(spec, op.request, inv, requiredArgsOf(op.parameters));
|
|
2285
2318
|
return {
|
|
2286
2319
|
data: response.data,
|
|
2287
2320
|
etag: response.etag,
|
|
@@ -2290,7 +2323,7 @@ function declarativeRestConnector(spec) {
|
|
|
2290
2323
|
},
|
|
2291
2324
|
async executeMutation(inv) {
|
|
2292
2325
|
const op = readOperation(spec, inv.capabilityName, "mutation");
|
|
2293
|
-
const response = await executeRestRequest(spec, op.request, inv);
|
|
2326
|
+
const response = await executeRestRequest(spec, op.request, inv, requiredArgsOf(op.parameters));
|
|
2294
2327
|
return {
|
|
2295
2328
|
status: "committed",
|
|
2296
2329
|
data: response.data,
|
|
@@ -2360,7 +2393,11 @@ function readOperation(spec, name, expected) {
|
|
|
2360
2393
|
}
|
|
2361
2394
|
return op;
|
|
2362
2395
|
}
|
|
2363
|
-
|
|
2396
|
+
function requiredArgsOf(parameters) {
|
|
2397
|
+
const required = parameters.required;
|
|
2398
|
+
return Array.isArray(required) ? required.filter((entry) => typeof entry === "string") : void 0;
|
|
2399
|
+
}
|
|
2400
|
+
async function executeRestRequest(spec, request, inv, requiredArgs) {
|
|
2364
2401
|
const baseUrl = resolveBaseUrl(spec.baseUrl, inv.source.metadata);
|
|
2365
2402
|
const renderedPath = interpolate(request.path, inv.args).replace(/^\/+/, "");
|
|
2366
2403
|
const baseWithSlash = baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
|
|
@@ -2376,13 +2413,14 @@ async function executeRestRequest(spec, request, inv) {
|
|
|
2376
2413
|
};
|
|
2377
2414
|
applyCredentials(headers, url, spec.credentialPlacement ?? { kind: "bearer" }, inv.source.credentials);
|
|
2378
2415
|
if (inv.expectedEtag) headers["if-match"] = inv.expectedEtag;
|
|
2379
|
-
|
|
2416
|
+
const sendsBody = request.method !== "GET" && (request.method !== "DELETE" || request.body !== void 0);
|
|
2417
|
+
if (sendsBody) {
|
|
2380
2418
|
headers["content-type"] = headers["content-type"] ?? "application/json";
|
|
2381
2419
|
}
|
|
2382
2420
|
const res = await fetch(url, {
|
|
2383
2421
|
method: request.method,
|
|
2384
2422
|
headers,
|
|
2385
|
-
body:
|
|
2423
|
+
body: sendsBody ? JSON.stringify(resolveBody(request.body, inv.args, requiredArgs)) : void 0,
|
|
2386
2424
|
signal: AbortSignal.timeout(2e4)
|
|
2387
2425
|
});
|
|
2388
2426
|
if (res.status === 401 || res.status === 403) {
|
|
@@ -2410,7 +2448,14 @@ async function executeRestRequest(spec, request, inv) {
|
|
|
2410
2448
|
throw new Error(`${spec.kind} ${request.method} ${url.pathname} HTTP ${res.status}: ${(await safeErrorText(res)).slice(0, 300)}`);
|
|
2411
2449
|
}
|
|
2412
2450
|
const text = await res.text();
|
|
2413
|
-
|
|
2451
|
+
let data = null;
|
|
2452
|
+
if (text) {
|
|
2453
|
+
try {
|
|
2454
|
+
data = JSON.parse(text);
|
|
2455
|
+
} catch {
|
|
2456
|
+
data = { raw: text };
|
|
2457
|
+
}
|
|
2458
|
+
}
|
|
2414
2459
|
return { data, etag: res.headers.get("etag") ?? void 0 };
|
|
2415
2460
|
}
|
|
2416
2461
|
function resolveBaseUrl(baseUrl, metadata) {
|
|
@@ -2431,28 +2476,47 @@ function credentialToken(credentials) {
|
|
|
2431
2476
|
if (credentials.kind === "api-key") return credentials.apiKey;
|
|
2432
2477
|
throw new Error(`declarative REST connectors require oauth2 or api-key credentials, got ${credentials.kind}`);
|
|
2433
2478
|
}
|
|
2434
|
-
function resolveBody(body, args) {
|
|
2479
|
+
function resolveBody(body, args, requiredArgs) {
|
|
2435
2480
|
if (!body || body === "args") return args;
|
|
2436
|
-
if (typeof body === "string") return renderValue(body, args);
|
|
2437
|
-
return renderObject(body, args);
|
|
2481
|
+
if (typeof body === "string") return renderValue(body, args, requiredArgs);
|
|
2482
|
+
return renderObject(body, args, requiredArgs);
|
|
2438
2483
|
}
|
|
2439
2484
|
function renderHeaders(headers, args) {
|
|
2440
2485
|
return Object.fromEntries(Object.entries(headers).map(([key, value]) => [key, interpolate(value, args)]));
|
|
2441
2486
|
}
|
|
2442
|
-
function renderObject(input, args) {
|
|
2443
|
-
|
|
2487
|
+
function renderObject(input, args, requiredArgs) {
|
|
2488
|
+
const out = {};
|
|
2489
|
+
for (const [key, value] of Object.entries(input)) {
|
|
2490
|
+
if (typeof value === "string") {
|
|
2491
|
+
const exact = value.match(/^\{([a-zA-Z0-9_.-]+)\}$/);
|
|
2492
|
+
if (exact) {
|
|
2493
|
+
const name = exact[1];
|
|
2494
|
+
const resolved = readPath(args, name);
|
|
2495
|
+
if (resolved === void 0 || resolved === null) {
|
|
2496
|
+
if (requiredArgs?.includes(name)) {
|
|
2497
|
+
throw new Error(`missing required argument: ${name}`);
|
|
2498
|
+
}
|
|
2499
|
+
continue;
|
|
2500
|
+
}
|
|
2501
|
+
out[key] = resolved;
|
|
2502
|
+
continue;
|
|
2503
|
+
}
|
|
2504
|
+
}
|
|
2505
|
+
out[key] = renderValue(value, args, requiredArgs);
|
|
2506
|
+
}
|
|
2507
|
+
return out;
|
|
2444
2508
|
}
|
|
2445
|
-
function renderValue(value, args) {
|
|
2509
|
+
function renderValue(value, args, requiredArgs) {
|
|
2446
2510
|
if (typeof value === "string") {
|
|
2447
2511
|
const exact = value.match(/^\{([a-zA-Z0-9_.-]+)\}$/);
|
|
2448
2512
|
if (exact) return readRequiredPath(args, exact[1]);
|
|
2449
2513
|
return interpolate(value, args);
|
|
2450
2514
|
}
|
|
2451
2515
|
if (Array.isArray(value)) {
|
|
2452
|
-
return value.map((entry) => renderValue(entry, args));
|
|
2516
|
+
return value.map((entry) => renderValue(entry, args, requiredArgs));
|
|
2453
2517
|
}
|
|
2454
2518
|
if (value && typeof value === "object") {
|
|
2455
|
-
return renderObject(value, args);
|
|
2519
|
+
return renderObject(value, args, requiredArgs);
|
|
2456
2520
|
}
|
|
2457
2521
|
return value;
|
|
2458
2522
|
}
|
|
@@ -120259,6 +120323,3440 @@ var pipedreamConnector = declarativeRestConnector({
|
|
|
120259
120323
|
]
|
|
120260
120324
|
});
|
|
120261
120325
|
|
|
120326
|
+
// src/connectors/adapters/amplemarket.ts
|
|
120327
|
+
var amplemarketConnector = declarativeRestConnector({
|
|
120328
|
+
kind: "amplemarket",
|
|
120329
|
+
displayName: "Amplemarket",
|
|
120330
|
+
description: "Sales intelligence and outbound platform: search and enrich people and companies, validate emails, and add leads to sequences.",
|
|
120331
|
+
auth: {
|
|
120332
|
+
kind: "api-key",
|
|
120333
|
+
hint: "Generate an API key in the Amplemarket dashboard (Settings -> API). Sent as the Authorization: Bearer header."
|
|
120334
|
+
},
|
|
120335
|
+
category: "crm",
|
|
120336
|
+
defaultConsistencyModel: "authoritative",
|
|
120337
|
+
baseUrl: "https://api.amplemarket.com",
|
|
120338
|
+
credentialPlacement: { kind: "bearer" },
|
|
120339
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
120340
|
+
test: { method: "GET", path: "/account-info" },
|
|
120341
|
+
capabilities: [
|
|
120342
|
+
{
|
|
120343
|
+
name: "people.search",
|
|
120344
|
+
class: "read",
|
|
120345
|
+
description: "Search for people by job function, company, industry and other filters.",
|
|
120346
|
+
parameters: {
|
|
120347
|
+
type: "object",
|
|
120348
|
+
properties: {
|
|
120349
|
+
page: { type: "integer", description: "Page number." },
|
|
120350
|
+
page_size: { type: "integer", description: "Results per page." },
|
|
120351
|
+
job_functions: {
|
|
120352
|
+
type: "array",
|
|
120353
|
+
items: { type: "string" },
|
|
120354
|
+
description: "Job functions to filter by."
|
|
120355
|
+
},
|
|
120356
|
+
industries: {
|
|
120357
|
+
type: "array",
|
|
120358
|
+
items: { type: "string" },
|
|
120359
|
+
description: "Industries to filter by."
|
|
120360
|
+
}
|
|
120361
|
+
},
|
|
120362
|
+
required: []
|
|
120363
|
+
},
|
|
120364
|
+
request: {
|
|
120365
|
+
method: "POST",
|
|
120366
|
+
path: "/people/search",
|
|
120367
|
+
body: {
|
|
120368
|
+
page: "{page}",
|
|
120369
|
+
page_size: "{page_size}",
|
|
120370
|
+
job_functions: "{job_functions}",
|
|
120371
|
+
industries: "{industries}"
|
|
120372
|
+
}
|
|
120373
|
+
}
|
|
120374
|
+
},
|
|
120375
|
+
{
|
|
120376
|
+
name: "people.find",
|
|
120377
|
+
class: "mutation",
|
|
120378
|
+
description: "Enrich a single person by LinkedIn URL, email, or full name plus company. Consumes credits when contact data is revealed.",
|
|
120379
|
+
parameters: {
|
|
120380
|
+
type: "object",
|
|
120381
|
+
properties: {
|
|
120382
|
+
linkedin_url: { type: "string", description: "LinkedIn profile URL." },
|
|
120383
|
+
email: { type: "string", description: "Known email address." },
|
|
120384
|
+
full_name: { type: "string", description: "Person's full name." },
|
|
120385
|
+
company_name: { type: "string", description: "Company name (use with full_name)." }
|
|
120386
|
+
},
|
|
120387
|
+
required: []
|
|
120388
|
+
},
|
|
120389
|
+
request: {
|
|
120390
|
+
method: "GET",
|
|
120391
|
+
path: "/people/find",
|
|
120392
|
+
query: {
|
|
120393
|
+
linkedin_url: "{linkedin_url}",
|
|
120394
|
+
email: "{email}",
|
|
120395
|
+
full_name: "{full_name}",
|
|
120396
|
+
company_name: "{company_name}"
|
|
120397
|
+
}
|
|
120398
|
+
},
|
|
120399
|
+
cas: "native-idempotency",
|
|
120400
|
+
externalEffect: false
|
|
120401
|
+
},
|
|
120402
|
+
{
|
|
120403
|
+
name: "companies.find",
|
|
120404
|
+
class: "read",
|
|
120405
|
+
description: "Enrich a single company by LinkedIn URL, domain, or name.",
|
|
120406
|
+
parameters: {
|
|
120407
|
+
type: "object",
|
|
120408
|
+
properties: {
|
|
120409
|
+
linkedin_url: { type: "string", description: "Company LinkedIn URL." },
|
|
120410
|
+
domain: { type: "string", description: "Company domain." },
|
|
120411
|
+
name: { type: "string", description: "Company name." }
|
|
120412
|
+
},
|
|
120413
|
+
required: []
|
|
120414
|
+
},
|
|
120415
|
+
request: {
|
|
120416
|
+
method: "GET",
|
|
120417
|
+
path: "/companies/find",
|
|
120418
|
+
query: { linkedin_url: "{linkedin_url}", domain: "{domain}", name: "{name}" }
|
|
120419
|
+
}
|
|
120420
|
+
},
|
|
120421
|
+
{
|
|
120422
|
+
name: "email.validate",
|
|
120423
|
+
class: "mutation",
|
|
120424
|
+
description: "Start a batch email validation job. Consumes one email credit per validated address.",
|
|
120425
|
+
parameters: {
|
|
120426
|
+
type: "object",
|
|
120427
|
+
properties: {
|
|
120428
|
+
emails: {
|
|
120429
|
+
type: "array",
|
|
120430
|
+
items: { type: "object", properties: { email: { type: "string" } } },
|
|
120431
|
+
description: "List of email objects to validate."
|
|
120432
|
+
}
|
|
120433
|
+
},
|
|
120434
|
+
required: ["emails"]
|
|
120435
|
+
},
|
|
120436
|
+
request: { method: "POST", path: "/email-validations", body: { emails: "{emails}" } },
|
|
120437
|
+
cas: "native-idempotency",
|
|
120438
|
+
externalEffect: false
|
|
120439
|
+
},
|
|
120440
|
+
{
|
|
120441
|
+
name: "sequence.add_leads",
|
|
120442
|
+
class: "mutation",
|
|
120443
|
+
description: "Add one or more leads to an existing Amplemarket sequence.",
|
|
120444
|
+
parameters: {
|
|
120445
|
+
type: "object",
|
|
120446
|
+
properties: {
|
|
120447
|
+
id: { type: "string", description: "Sequence ID." },
|
|
120448
|
+
leads: {
|
|
120449
|
+
type: "array",
|
|
120450
|
+
items: { type: "object" },
|
|
120451
|
+
description: "Array of lead objects to enroll."
|
|
120452
|
+
}
|
|
120453
|
+
},
|
|
120454
|
+
required: ["id", "leads"]
|
|
120455
|
+
},
|
|
120456
|
+
request: { method: "POST", path: "/sequences/{id}/leads", body: { leads: "{leads}" } },
|
|
120457
|
+
cas: "native-idempotency",
|
|
120458
|
+
externalEffect: true
|
|
120459
|
+
}
|
|
120460
|
+
]
|
|
120461
|
+
});
|
|
120462
|
+
|
|
120463
|
+
// src/connectors/adapters/heyreach.ts
|
|
120464
|
+
var heyreachConnector = declarativeRestConnector({
|
|
120465
|
+
kind: "heyreach",
|
|
120466
|
+
displayName: "HeyReach",
|
|
120467
|
+
description: "LinkedIn outreach automation at agency scale. List campaigns and lists, add leads to campaigns, look up leads, and read inbox conversations.",
|
|
120468
|
+
auth: {
|
|
120469
|
+
kind: "api-key",
|
|
120470
|
+
hint: "Generate an API key in HeyReach (Settings -> Integrations -> Public API). Sent as the X-API-KEY header."
|
|
120471
|
+
},
|
|
120472
|
+
category: "crm",
|
|
120473
|
+
defaultConsistencyModel: "authoritative",
|
|
120474
|
+
baseUrl: "https://api.heyreach.io/api/public",
|
|
120475
|
+
credentialPlacement: { kind: "header", header: "X-API-KEY" },
|
|
120476
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
120477
|
+
test: { method: "GET", path: "/auth/CheckApiKey" },
|
|
120478
|
+
capabilities: [
|
|
120479
|
+
{
|
|
120480
|
+
name: "campaign.list",
|
|
120481
|
+
class: "read",
|
|
120482
|
+
description: "List campaigns in the workspace with pagination.",
|
|
120483
|
+
parameters: {
|
|
120484
|
+
type: "object",
|
|
120485
|
+
properties: {
|
|
120486
|
+
offset: { type: "integer", description: "Number of records to skip." },
|
|
120487
|
+
limit: { type: "integer", description: "Maximum records to return." }
|
|
120488
|
+
},
|
|
120489
|
+
required: ["offset", "limit"]
|
|
120490
|
+
},
|
|
120491
|
+
request: {
|
|
120492
|
+
method: "POST",
|
|
120493
|
+
path: "/campaign/GetAll",
|
|
120494
|
+
body: { offset: "{offset}", limit: "{limit}" }
|
|
120495
|
+
}
|
|
120496
|
+
},
|
|
120497
|
+
{
|
|
120498
|
+
name: "list.list",
|
|
120499
|
+
class: "read",
|
|
120500
|
+
description: "List lead lists in the workspace with pagination.",
|
|
120501
|
+
parameters: {
|
|
120502
|
+
type: "object",
|
|
120503
|
+
properties: {
|
|
120504
|
+
offset: { type: "integer", description: "Number of records to skip." },
|
|
120505
|
+
limit: { type: "integer", description: "Maximum records to return." }
|
|
120506
|
+
},
|
|
120507
|
+
required: ["offset", "limit"]
|
|
120508
|
+
},
|
|
120509
|
+
request: {
|
|
120510
|
+
method: "POST",
|
|
120511
|
+
path: "/list/GetAll",
|
|
120512
|
+
body: { offset: "{offset}", limit: "{limit}" }
|
|
120513
|
+
}
|
|
120514
|
+
},
|
|
120515
|
+
{
|
|
120516
|
+
name: "lead.get",
|
|
120517
|
+
class: "read",
|
|
120518
|
+
description: "Get details for a lead by their LinkedIn profile URL.",
|
|
120519
|
+
parameters: {
|
|
120520
|
+
type: "object",
|
|
120521
|
+
properties: {
|
|
120522
|
+
profileUrl: { type: "string", description: "LinkedIn profile URL of the lead." }
|
|
120523
|
+
},
|
|
120524
|
+
required: ["profileUrl"]
|
|
120525
|
+
},
|
|
120526
|
+
request: {
|
|
120527
|
+
method: "POST",
|
|
120528
|
+
path: "/lead/GetLead",
|
|
120529
|
+
body: { profileUrl: "{profileUrl}" }
|
|
120530
|
+
}
|
|
120531
|
+
},
|
|
120532
|
+
{
|
|
120533
|
+
name: "campaign.add_leads",
|
|
120534
|
+
class: "mutation",
|
|
120535
|
+
description: "Add leads (LinkedIn profiles) to an active campaign, assigned to specific sender accounts.",
|
|
120536
|
+
parameters: {
|
|
120537
|
+
type: "object",
|
|
120538
|
+
properties: {
|
|
120539
|
+
campaignId: {
|
|
120540
|
+
type: "integer",
|
|
120541
|
+
description: "Target campaign ID (must be ACTIVE or IN_PROGRESS)."
|
|
120542
|
+
},
|
|
120543
|
+
accountLeadPairs: {
|
|
120544
|
+
type: "array",
|
|
120545
|
+
description: "Array of pairs, each with an optional linkedInAccountId (sender) and a lead object (profileUrl, firstName, lastName, companyName, position, location, emailAddress).",
|
|
120546
|
+
items: { type: "object" }
|
|
120547
|
+
}
|
|
120548
|
+
},
|
|
120549
|
+
required: ["campaignId", "accountLeadPairs"]
|
|
120550
|
+
},
|
|
120551
|
+
request: {
|
|
120552
|
+
method: "POST",
|
|
120553
|
+
path: "/campaign/AddLeadsToCampaignV2",
|
|
120554
|
+
body: { campaignId: "{campaignId}", accountLeadPairs: "{accountLeadPairs}" }
|
|
120555
|
+
},
|
|
120556
|
+
cas: "native-idempotency",
|
|
120557
|
+
externalEffect: true
|
|
120558
|
+
},
|
|
120559
|
+
{
|
|
120560
|
+
name: "inbox.get_conversations",
|
|
120561
|
+
class: "read",
|
|
120562
|
+
description: "Retrieve inbox conversations with filtering and pagination.",
|
|
120563
|
+
parameters: {
|
|
120564
|
+
type: "object",
|
|
120565
|
+
properties: {
|
|
120566
|
+
offset: { type: "integer", description: "Number of records to skip." },
|
|
120567
|
+
limit: { type: "integer", description: "Maximum records to return." },
|
|
120568
|
+
filters: { type: "object", description: "Optional conversation filters." }
|
|
120569
|
+
},
|
|
120570
|
+
required: ["offset", "limit"]
|
|
120571
|
+
},
|
|
120572
|
+
request: {
|
|
120573
|
+
method: "POST",
|
|
120574
|
+
path: "/inbox/GetConversationsV2",
|
|
120575
|
+
body: { offset: "{offset}", limit: "{limit}", filters: "{filters}" }
|
|
120576
|
+
}
|
|
120577
|
+
}
|
|
120578
|
+
]
|
|
120579
|
+
});
|
|
120580
|
+
|
|
120581
|
+
// src/connectors/adapters/lagrowthmachine.ts
|
|
120582
|
+
var lagrowthmachineConnector = declarativeRestConnector({
|
|
120583
|
+
kind: "lagrowthmachine",
|
|
120584
|
+
displayName: "LaGrowthMachine",
|
|
120585
|
+
description: "Multichannel sales automation (LinkedIn, email, Twitter). Create or update leads in audiences, list campaigns and audiences, and read campaign stats.",
|
|
120586
|
+
auth: {
|
|
120587
|
+
kind: "api-key",
|
|
120588
|
+
hint: "Get your API key at app.lagrowthmachine.com/settings/api. Sent as the 'apikey' query parameter on every request."
|
|
120589
|
+
},
|
|
120590
|
+
category: "crm",
|
|
120591
|
+
defaultConsistencyModel: "authoritative",
|
|
120592
|
+
baseUrl: "https://apiv2.lagrowthmachine.com",
|
|
120593
|
+
credentialPlacement: { kind: "query", parameter: "apikey" },
|
|
120594
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
120595
|
+
test: { method: "GET", path: "/flow/audiences" },
|
|
120596
|
+
capabilities: [
|
|
120597
|
+
{
|
|
120598
|
+
name: "campaigns.list",
|
|
120599
|
+
class: "read",
|
|
120600
|
+
description: "List campaigns with pagination.",
|
|
120601
|
+
parameters: {
|
|
120602
|
+
type: "object",
|
|
120603
|
+
properties: {
|
|
120604
|
+
skip: { type: "integer", description: "Pagination offset." },
|
|
120605
|
+
limit: { type: "integer", description: "Maximum results to return." }
|
|
120606
|
+
},
|
|
120607
|
+
required: []
|
|
120608
|
+
},
|
|
120609
|
+
request: {
|
|
120610
|
+
method: "GET",
|
|
120611
|
+
path: "/flow/campaigns",
|
|
120612
|
+
query: { skip: "{skip}", limit: "{limit}" }
|
|
120613
|
+
}
|
|
120614
|
+
},
|
|
120615
|
+
{
|
|
120616
|
+
name: "audiences.list",
|
|
120617
|
+
class: "read",
|
|
120618
|
+
description: "List the audiences in the workspace.",
|
|
120619
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
120620
|
+
request: { method: "GET", path: "/flow/audiences" }
|
|
120621
|
+
},
|
|
120622
|
+
{
|
|
120623
|
+
name: "campaign.get_stats",
|
|
120624
|
+
class: "read",
|
|
120625
|
+
description: "Get engagement statistics for a campaign.",
|
|
120626
|
+
parameters: {
|
|
120627
|
+
type: "object",
|
|
120628
|
+
properties: { campaignId: { type: "string", description: "Campaign ID." } },
|
|
120629
|
+
required: ["campaignId"]
|
|
120630
|
+
},
|
|
120631
|
+
request: { method: "GET", path: "/flow/campaigns/{campaignId}/stats" }
|
|
120632
|
+
},
|
|
120633
|
+
{
|
|
120634
|
+
name: "lead.create_or_update",
|
|
120635
|
+
class: "mutation",
|
|
120636
|
+
description: "Create or update a lead in an audience, which starts it through the audience's workflow.",
|
|
120637
|
+
parameters: {
|
|
120638
|
+
type: "object",
|
|
120639
|
+
properties: {
|
|
120640
|
+
audience: { type: "string", description: "Audience name or identifier." },
|
|
120641
|
+
proEmail: { type: "string", description: "Professional email." },
|
|
120642
|
+
persoEmail: { type: "string", description: "Personal email." },
|
|
120643
|
+
linkedinUrl: { type: "string", description: "LinkedIn profile URL." },
|
|
120644
|
+
firstname: { type: "string", description: "First name." },
|
|
120645
|
+
lastname: { type: "string", description: "Last name." },
|
|
120646
|
+
companyName: { type: "string", description: "Company name." },
|
|
120647
|
+
jobTitle: { type: "string", description: "Job title." }
|
|
120648
|
+
},
|
|
120649
|
+
required: ["audience"]
|
|
120650
|
+
},
|
|
120651
|
+
request: {
|
|
120652
|
+
method: "POST",
|
|
120653
|
+
path: "/flow/leads",
|
|
120654
|
+
body: {
|
|
120655
|
+
audience: "{audience}",
|
|
120656
|
+
proEmail: "{proEmail}",
|
|
120657
|
+
persoEmail: "{persoEmail}",
|
|
120658
|
+
linkedinUrl: "{linkedinUrl}",
|
|
120659
|
+
firstname: "{firstname}",
|
|
120660
|
+
lastname: "{lastname}",
|
|
120661
|
+
companyName: "{companyName}",
|
|
120662
|
+
jobTitle: "{jobTitle}"
|
|
120663
|
+
}
|
|
120664
|
+
},
|
|
120665
|
+
cas: "native-idempotency",
|
|
120666
|
+
externalEffect: true
|
|
120667
|
+
}
|
|
120668
|
+
]
|
|
120669
|
+
});
|
|
120670
|
+
|
|
120671
|
+
// src/connectors/adapters/saleshandy.ts
|
|
120672
|
+
var saleshandyConnector = declarativeRestConnector({
|
|
120673
|
+
kind: "saleshandy",
|
|
120674
|
+
displayName: "Saleshandy",
|
|
120675
|
+
description: "Cold email outreach platform: manage prospects, build sequences, add prospects to sequence steps, and control sequence status.",
|
|
120676
|
+
auth: {
|
|
120677
|
+
kind: "api-key",
|
|
120678
|
+
hint: "Generate an API key in company Settings -> API Settings. Sent as the x-api-key header."
|
|
120679
|
+
},
|
|
120680
|
+
category: "crm",
|
|
120681
|
+
defaultConsistencyModel: "authoritative",
|
|
120682
|
+
baseUrl: "https://open-api.saleshandy.com",
|
|
120683
|
+
credentialPlacement: { kind: "header", header: "x-api-key" },
|
|
120684
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
120685
|
+
test: { method: "GET", path: "/v1/user/team-member-list" },
|
|
120686
|
+
capabilities: [
|
|
120687
|
+
{
|
|
120688
|
+
name: "sequences.list",
|
|
120689
|
+
class: "read",
|
|
120690
|
+
description: "List sequences and their steps.",
|
|
120691
|
+
parameters: {
|
|
120692
|
+
type: "object",
|
|
120693
|
+
properties: {
|
|
120694
|
+
sequenceName: { type: "string", description: "Filter by sequence name." },
|
|
120695
|
+
page: { type: "integer", description: "Page number." },
|
|
120696
|
+
pageSize: { type: "integer", description: "Results per page." }
|
|
120697
|
+
},
|
|
120698
|
+
required: []
|
|
120699
|
+
},
|
|
120700
|
+
request: {
|
|
120701
|
+
method: "GET",
|
|
120702
|
+
path: "/v1/sequences",
|
|
120703
|
+
query: { sequenceName: "{sequenceName}", page: "{page}", pageSize: "{pageSize}" }
|
|
120704
|
+
}
|
|
120705
|
+
},
|
|
120706
|
+
{
|
|
120707
|
+
name: "prospects.list",
|
|
120708
|
+
class: "read",
|
|
120709
|
+
description: "List all prospects with pagination and search.",
|
|
120710
|
+
parameters: {
|
|
120711
|
+
type: "object",
|
|
120712
|
+
properties: {
|
|
120713
|
+
search: { type: "string", description: "Search term." },
|
|
120714
|
+
page: { type: "integer", description: "Page number." },
|
|
120715
|
+
pageSize: { type: "integer", description: "Results per page." }
|
|
120716
|
+
},
|
|
120717
|
+
required: []
|
|
120718
|
+
},
|
|
120719
|
+
request: {
|
|
120720
|
+
method: "GET",
|
|
120721
|
+
path: "/v1/prospects",
|
|
120722
|
+
query: { search: "{search}", page: "{page}", pageSize: "{pageSize}" }
|
|
120723
|
+
}
|
|
120724
|
+
},
|
|
120725
|
+
{
|
|
120726
|
+
name: "sequence.import_prospects",
|
|
120727
|
+
class: "mutation",
|
|
120728
|
+
description: "Import prospects (keyed by field name) into a sequence at a given step.",
|
|
120729
|
+
parameters: {
|
|
120730
|
+
type: "object",
|
|
120731
|
+
properties: {
|
|
120732
|
+
prospectList: {
|
|
120733
|
+
type: "array",
|
|
120734
|
+
description: "Array of prospect objects keyed by field name (e.g. Email, First Name).",
|
|
120735
|
+
items: { type: "object" }
|
|
120736
|
+
},
|
|
120737
|
+
stepId: { type: "integer", description: "Sequence step ID to add prospects to." },
|
|
120738
|
+
conflictAction: {
|
|
120739
|
+
type: "string",
|
|
120740
|
+
description: "How to handle duplicates (e.g. skip, update)."
|
|
120741
|
+
},
|
|
120742
|
+
verifyProspects: { type: "boolean", description: "Verify emails on import." },
|
|
120743
|
+
tags: { type: "array", items: { type: "string" }, description: "Tags to apply." }
|
|
120744
|
+
},
|
|
120745
|
+
required: ["prospectList", "stepId", "conflictAction"]
|
|
120746
|
+
},
|
|
120747
|
+
request: {
|
|
120748
|
+
method: "POST",
|
|
120749
|
+
path: "/v1/sequences/prospects/import-with-field-name",
|
|
120750
|
+
body: {
|
|
120751
|
+
prospectList: "{prospectList}",
|
|
120752
|
+
stepId: "{stepId}",
|
|
120753
|
+
conflictAction: "{conflictAction}",
|
|
120754
|
+
verifyProspects: "{verifyProspects}",
|
|
120755
|
+
tags: "{tags}"
|
|
120756
|
+
}
|
|
120757
|
+
},
|
|
120758
|
+
cas: "native-idempotency",
|
|
120759
|
+
externalEffect: true
|
|
120760
|
+
},
|
|
120761
|
+
{
|
|
120762
|
+
name: "sequence.set_status",
|
|
120763
|
+
class: "mutation",
|
|
120764
|
+
description: "Activate or pause one or more sequences.",
|
|
120765
|
+
parameters: {
|
|
120766
|
+
type: "object",
|
|
120767
|
+
properties: {
|
|
120768
|
+
sequenceIds: {
|
|
120769
|
+
type: "array",
|
|
120770
|
+
items: { type: "string" },
|
|
120771
|
+
description: "Sequence IDs to update."
|
|
120772
|
+
},
|
|
120773
|
+
status: { type: "string", description: "Target status (e.g. ACTIVE, PAUSED)." }
|
|
120774
|
+
},
|
|
120775
|
+
required: ["sequenceIds", "status"]
|
|
120776
|
+
},
|
|
120777
|
+
request: {
|
|
120778
|
+
method: "POST",
|
|
120779
|
+
path: "/v1/sequences/status",
|
|
120780
|
+
body: { sequenceIds: "{sequenceIds}", status: "{status}" }
|
|
120781
|
+
},
|
|
120782
|
+
cas: "native-idempotency",
|
|
120783
|
+
externalEffect: true
|
|
120784
|
+
}
|
|
120785
|
+
]
|
|
120786
|
+
});
|
|
120787
|
+
|
|
120788
|
+
// src/connectors/adapters/bettercontact.ts
|
|
120789
|
+
var bettercontactConnector = declarativeRestConnector({
|
|
120790
|
+
kind: "bettercontact",
|
|
120791
|
+
displayName: "BetterContact",
|
|
120792
|
+
description: "Waterfall email and phone enrichment that queries 20+ data providers to find a contact's work email and direct phone number.",
|
|
120793
|
+
auth: {
|
|
120794
|
+
kind: "api-key",
|
|
120795
|
+
hint: "API key from the BetterContact dashboard (Settings -> API). Sent as the X-API-Key header."
|
|
120796
|
+
},
|
|
120797
|
+
category: "crm",
|
|
120798
|
+
defaultConsistencyModel: "authoritative",
|
|
120799
|
+
baseUrl: "https://app.bettercontact.rocks/api/v2",
|
|
120800
|
+
credentialPlacement: { kind: "header", header: "X-API-Key" },
|
|
120801
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
120802
|
+
capabilities: [
|
|
120803
|
+
{
|
|
120804
|
+
name: "enrichment.create",
|
|
120805
|
+
class: "mutation",
|
|
120806
|
+
description: "Start an asynchronous waterfall enrichment for 1-100 contacts to find work emails and/or direct phone numbers. Consumes credits per found data point.",
|
|
120807
|
+
parameters: {
|
|
120808
|
+
type: "object",
|
|
120809
|
+
properties: {
|
|
120810
|
+
data: {
|
|
120811
|
+
type: "array",
|
|
120812
|
+
description: "Array of 1-100 lead objects to enrich; each supports first_name, last_name, company, company_domain, linkedin_url, and custom_fields.",
|
|
120813
|
+
items: { type: "object" }
|
|
120814
|
+
},
|
|
120815
|
+
enrich_email_address: { type: "boolean", description: "If true, enrich the work email address." },
|
|
120816
|
+
enrich_phone_number: { type: "boolean", description: "If true, enrich the direct phone number." },
|
|
120817
|
+
webhook: {
|
|
120818
|
+
type: "string",
|
|
120819
|
+
description: "Optional URL to which results are pushed when enrichment completes."
|
|
120820
|
+
}
|
|
120821
|
+
},
|
|
120822
|
+
required: ["data", "enrich_email_address", "enrich_phone_number"]
|
|
120823
|
+
},
|
|
120824
|
+
request: {
|
|
120825
|
+
method: "POST",
|
|
120826
|
+
path: "/async",
|
|
120827
|
+
body: {
|
|
120828
|
+
data: "{data}",
|
|
120829
|
+
enrich_email_address: "{enrich_email_address}",
|
|
120830
|
+
enrich_phone_number: "{enrich_phone_number}",
|
|
120831
|
+
webhook: "{webhook}"
|
|
120832
|
+
}
|
|
120833
|
+
},
|
|
120834
|
+
cas: "native-idempotency",
|
|
120835
|
+
externalEffect: false
|
|
120836
|
+
},
|
|
120837
|
+
{
|
|
120838
|
+
name: "enrichment.get",
|
|
120839
|
+
class: "read",
|
|
120840
|
+
description: "Retrieve the status and enriched results of a previously submitted enrichment request by its request id.",
|
|
120841
|
+
parameters: {
|
|
120842
|
+
type: "object",
|
|
120843
|
+
properties: {
|
|
120844
|
+
request_id: { type: "string", description: "The id returned by enrichment.create." }
|
|
120845
|
+
},
|
|
120846
|
+
required: ["request_id"]
|
|
120847
|
+
},
|
|
120848
|
+
request: { method: "GET", path: "/async/{request_id}" }
|
|
120849
|
+
}
|
|
120850
|
+
]
|
|
120851
|
+
});
|
|
120852
|
+
|
|
120853
|
+
// src/connectors/adapters/contactout.ts
|
|
120854
|
+
var contactoutConnector = declarativeRestConnector({
|
|
120855
|
+
kind: "contactout",
|
|
120856
|
+
displayName: "ContactOut",
|
|
120857
|
+
description: "Find and enrich professional and personal emails, phone numbers, and LinkedIn data for prospects.",
|
|
120858
|
+
auth: {
|
|
120859
|
+
kind: "api-key",
|
|
120860
|
+
hint: "API token from your ContactOut account. Sent as the 'token' header."
|
|
120861
|
+
},
|
|
120862
|
+
category: "crm",
|
|
120863
|
+
defaultConsistencyModel: "authoritative",
|
|
120864
|
+
baseUrl: "https://api.contactout.com",
|
|
120865
|
+
credentialPlacement: { kind: "header", header: "token" },
|
|
120866
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
120867
|
+
capabilities: [
|
|
120868
|
+
{
|
|
120869
|
+
name: "people.search",
|
|
120870
|
+
class: "read",
|
|
120871
|
+
description: "Search for people profiles matching criteria such as name, job title, company, and location.",
|
|
120872
|
+
parameters: {
|
|
120873
|
+
type: "object",
|
|
120874
|
+
properties: {
|
|
120875
|
+
name: { type: "string" },
|
|
120876
|
+
job_title: { type: "array", items: { type: "string" } },
|
|
120877
|
+
company: { type: "array", items: { type: "string" } },
|
|
120878
|
+
location: { type: "array", items: { type: "string" } },
|
|
120879
|
+
page: { type: "integer", description: "Result page number." },
|
|
120880
|
+
reveal_info: {
|
|
120881
|
+
type: "boolean",
|
|
120882
|
+
description: "Include contact data (consumes email/phone credits)."
|
|
120883
|
+
}
|
|
120884
|
+
},
|
|
120885
|
+
required: []
|
|
120886
|
+
},
|
|
120887
|
+
request: {
|
|
120888
|
+
method: "POST",
|
|
120889
|
+
path: "/v1/people/search",
|
|
120890
|
+
body: {
|
|
120891
|
+
name: "{name}",
|
|
120892
|
+
job_title: "{job_title}",
|
|
120893
|
+
company: "{company}",
|
|
120894
|
+
location: "{location}",
|
|
120895
|
+
page: "{page}",
|
|
120896
|
+
reveal_info: "{reveal_info}"
|
|
120897
|
+
}
|
|
120898
|
+
}
|
|
120899
|
+
},
|
|
120900
|
+
{
|
|
120901
|
+
name: "linkedin.enrich",
|
|
120902
|
+
class: "mutation",
|
|
120903
|
+
description: "Look up a LinkedIn profile URL and return contact data including emails and phones. Consumes credits when contact info is found.",
|
|
120904
|
+
parameters: {
|
|
120905
|
+
type: "object",
|
|
120906
|
+
properties: {
|
|
120907
|
+
profile: { type: "string", description: "URL-encoded LinkedIn profile URL." },
|
|
120908
|
+
profile_only: {
|
|
120909
|
+
type: "boolean",
|
|
120910
|
+
description: "If true, return profile data without contact info."
|
|
120911
|
+
}
|
|
120912
|
+
},
|
|
120913
|
+
required: ["profile"]
|
|
120914
|
+
},
|
|
120915
|
+
request: {
|
|
120916
|
+
method: "GET",
|
|
120917
|
+
path: "/v1/linkedin/enrich",
|
|
120918
|
+
query: { profile: "{profile}", profile_only: "{profile_only}" }
|
|
120919
|
+
},
|
|
120920
|
+
cas: "native-idempotency",
|
|
120921
|
+
externalEffect: false
|
|
120922
|
+
},
|
|
120923
|
+
{
|
|
120924
|
+
name: "people.enrich",
|
|
120925
|
+
class: "mutation",
|
|
120926
|
+
description: "Enrich a person from a LinkedIn URL, email, or name plus company. Returns work/personal emails and phones; consumes credits when found.",
|
|
120927
|
+
parameters: {
|
|
120928
|
+
type: "object",
|
|
120929
|
+
properties: {
|
|
120930
|
+
linkedin_url: { type: "string" },
|
|
120931
|
+
email: { type: "string" },
|
|
120932
|
+
full_name: { type: "string" },
|
|
120933
|
+
company: { type: "string" },
|
|
120934
|
+
company_domain: { type: "string" },
|
|
120935
|
+
include: {
|
|
120936
|
+
type: "array",
|
|
120937
|
+
description: "Data types to include, e.g. work_email, personal_email, phone.",
|
|
120938
|
+
items: { type: "string" }
|
|
120939
|
+
}
|
|
120940
|
+
},
|
|
120941
|
+
required: []
|
|
120942
|
+
},
|
|
120943
|
+
request: {
|
|
120944
|
+
method: "POST",
|
|
120945
|
+
path: "/v1/people/enrich",
|
|
120946
|
+
body: {
|
|
120947
|
+
linkedin_url: "{linkedin_url}",
|
|
120948
|
+
email: "{email}",
|
|
120949
|
+
full_name: "{full_name}",
|
|
120950
|
+
company: "{company}",
|
|
120951
|
+
company_domain: "{company_domain}",
|
|
120952
|
+
include: "{include}"
|
|
120953
|
+
}
|
|
120954
|
+
},
|
|
120955
|
+
cas: "native-idempotency",
|
|
120956
|
+
externalEffect: false
|
|
120957
|
+
},
|
|
120958
|
+
{
|
|
120959
|
+
name: "email.verify",
|
|
120960
|
+
class: "mutation",
|
|
120961
|
+
description: "Verify the deliverability of an email address. Consumes a verifier credit for definitive results.",
|
|
120962
|
+
parameters: {
|
|
120963
|
+
type: "object",
|
|
120964
|
+
properties: { email: { type: "string" } },
|
|
120965
|
+
required: ["email"]
|
|
120966
|
+
},
|
|
120967
|
+
request: { method: "GET", path: "/v1/email/verify", query: { email: "{email}" } },
|
|
120968
|
+
cas: "native-idempotency",
|
|
120969
|
+
externalEffect: false
|
|
120970
|
+
}
|
|
120971
|
+
]
|
|
120972
|
+
});
|
|
120973
|
+
|
|
120974
|
+
// src/connectors/adapters/findymail.ts
|
|
120975
|
+
var findymailConnector = declarativeRestConnector({
|
|
120976
|
+
kind: "findymail",
|
|
120977
|
+
displayName: "Findymail",
|
|
120978
|
+
description: "Find verified work email addresses by name and company domain, verify deliverability, and discover emails across a domain.",
|
|
120979
|
+
auth: {
|
|
120980
|
+
kind: "api-key",
|
|
120981
|
+
hint: "API key from your Findymail dashboard. Sent as the Authorization: Bearer header."
|
|
120982
|
+
},
|
|
120983
|
+
category: "crm",
|
|
120984
|
+
defaultConsistencyModel: "authoritative",
|
|
120985
|
+
baseUrl: "https://app.findymail.com",
|
|
120986
|
+
credentialPlacement: { kind: "bearer" },
|
|
120987
|
+
defaultHeaders: { "content-type": "application/json", accept: "application/json" },
|
|
120988
|
+
test: { method: "GET", path: "/api/credits" },
|
|
120989
|
+
capabilities: [
|
|
120990
|
+
{
|
|
120991
|
+
name: "email.find",
|
|
120992
|
+
class: "mutation",
|
|
120993
|
+
description: "Find a person's verified work email from their full name and company domain. Consumes a credit when an email is found.",
|
|
120994
|
+
parameters: {
|
|
120995
|
+
type: "object",
|
|
120996
|
+
properties: {
|
|
120997
|
+
name: { type: "string", description: "Full name of the person." },
|
|
120998
|
+
domain: { type: "string", description: "Company domain." }
|
|
120999
|
+
},
|
|
121000
|
+
required: ["name", "domain"]
|
|
121001
|
+
},
|
|
121002
|
+
request: {
|
|
121003
|
+
method: "POST",
|
|
121004
|
+
path: "/api/search/name",
|
|
121005
|
+
body: { name: "{name}", domain: "{domain}" }
|
|
121006
|
+
},
|
|
121007
|
+
cas: "native-idempotency",
|
|
121008
|
+
externalEffect: false
|
|
121009
|
+
},
|
|
121010
|
+
{
|
|
121011
|
+
name: "email.verify",
|
|
121012
|
+
class: "mutation",
|
|
121013
|
+
description: "Verify the deliverability of an email address and return the email provider. Consumes a verification credit.",
|
|
121014
|
+
parameters: {
|
|
121015
|
+
type: "object",
|
|
121016
|
+
properties: { email: { type: "string" } },
|
|
121017
|
+
required: ["email"]
|
|
121018
|
+
},
|
|
121019
|
+
request: { method: "POST", path: "/api/verify", body: { email: "{email}" } },
|
|
121020
|
+
cas: "native-idempotency",
|
|
121021
|
+
externalEffect: false
|
|
121022
|
+
},
|
|
121023
|
+
{
|
|
121024
|
+
name: "email.find_by_domain",
|
|
121025
|
+
class: "mutation",
|
|
121026
|
+
description: "Find email addresses associated with a company domain. Consumes credits per email returned.",
|
|
121027
|
+
parameters: {
|
|
121028
|
+
type: "object",
|
|
121029
|
+
properties: { domain: { type: "string", description: "Company domain to search." } },
|
|
121030
|
+
required: ["domain"]
|
|
121031
|
+
},
|
|
121032
|
+
request: { method: "POST", path: "/api/search/domain", body: { domain: "{domain}" } },
|
|
121033
|
+
cas: "native-idempotency",
|
|
121034
|
+
externalEffect: false
|
|
121035
|
+
},
|
|
121036
|
+
{
|
|
121037
|
+
name: "credits.get",
|
|
121038
|
+
class: "read",
|
|
121039
|
+
description: "Retrieve the remaining credit balance for the account.",
|
|
121040
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121041
|
+
request: { method: "GET", path: "/api/credits" }
|
|
121042
|
+
}
|
|
121043
|
+
]
|
|
121044
|
+
});
|
|
121045
|
+
|
|
121046
|
+
// src/connectors/adapters/snov-io.ts
|
|
121047
|
+
var snovIoConnector = declarativeRestConnector({
|
|
121048
|
+
kind: "snov-io",
|
|
121049
|
+
displayName: "Snov.io",
|
|
121050
|
+
description: "Find and verify B2B email addresses by domain or by name, and enrich profiles from an email address.",
|
|
121051
|
+
auth: {
|
|
121052
|
+
kind: "api-key",
|
|
121053
|
+
hint: "Exchange your API User ID and Secret (account Settings -> API) for an access token via POST /v1/oauth/access_token, then paste the access token here. Sent as the Authorization: Bearer header."
|
|
121054
|
+
},
|
|
121055
|
+
category: "crm",
|
|
121056
|
+
defaultConsistencyModel: "authoritative",
|
|
121057
|
+
baseUrl: "https://api.snov.io",
|
|
121058
|
+
credentialPlacement: { kind: "bearer" },
|
|
121059
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121060
|
+
test: { method: "GET", path: "/v2/sender-accounts/emails" },
|
|
121061
|
+
capabilities: [
|
|
121062
|
+
{
|
|
121063
|
+
name: "domain_search.start",
|
|
121064
|
+
class: "mutation",
|
|
121065
|
+
description: "Start an asynchronous search for email addresses belonging to a company domain. Returns a task to poll for results.",
|
|
121066
|
+
parameters: {
|
|
121067
|
+
type: "object",
|
|
121068
|
+
properties: { domain: { type: "string", description: "Company domain to search." } },
|
|
121069
|
+
required: ["domain"]
|
|
121070
|
+
},
|
|
121071
|
+
request: {
|
|
121072
|
+
method: "POST",
|
|
121073
|
+
path: "/v2/domain-search/start",
|
|
121074
|
+
body: { domain: "{domain}" }
|
|
121075
|
+
},
|
|
121076
|
+
cas: "native-idempotency",
|
|
121077
|
+
externalEffect: false
|
|
121078
|
+
},
|
|
121079
|
+
{
|
|
121080
|
+
name: "email_finder.start",
|
|
121081
|
+
class: "mutation",
|
|
121082
|
+
description: "Start finding email addresses for one or more people by first name, last name, and company domain. Returns a task to poll; consumes credits when emails are found.",
|
|
121083
|
+
parameters: {
|
|
121084
|
+
type: "object",
|
|
121085
|
+
properties: {
|
|
121086
|
+
rows: {
|
|
121087
|
+
type: "array",
|
|
121088
|
+
description: "Array of objects each with first_name, last_name, and domain.",
|
|
121089
|
+
items: { type: "object" }
|
|
121090
|
+
}
|
|
121091
|
+
},
|
|
121092
|
+
required: ["rows"]
|
|
121093
|
+
},
|
|
121094
|
+
request: {
|
|
121095
|
+
method: "POST",
|
|
121096
|
+
path: "/v2/emails-by-domain-by-name/start",
|
|
121097
|
+
body: { rows: "{rows}" }
|
|
121098
|
+
},
|
|
121099
|
+
cas: "native-idempotency",
|
|
121100
|
+
externalEffect: false
|
|
121101
|
+
},
|
|
121102
|
+
{
|
|
121103
|
+
name: "email_verification.start",
|
|
121104
|
+
class: "mutation",
|
|
121105
|
+
description: "Start verification of up to 10 email addresses. Returns a task to poll for deliverability results. Consumes credits.",
|
|
121106
|
+
parameters: {
|
|
121107
|
+
type: "object",
|
|
121108
|
+
properties: {
|
|
121109
|
+
emails: {
|
|
121110
|
+
type: "array",
|
|
121111
|
+
description: "Array of email addresses to verify (max 10).",
|
|
121112
|
+
items: { type: "string" }
|
|
121113
|
+
}
|
|
121114
|
+
},
|
|
121115
|
+
required: ["emails"]
|
|
121116
|
+
},
|
|
121117
|
+
request: {
|
|
121118
|
+
method: "POST",
|
|
121119
|
+
path: "/v2/email-verification/start",
|
|
121120
|
+
body: { emails: "{emails}" }
|
|
121121
|
+
},
|
|
121122
|
+
cas: "native-idempotency",
|
|
121123
|
+
externalEffect: false
|
|
121124
|
+
},
|
|
121125
|
+
{
|
|
121126
|
+
name: "profile.get_by_email",
|
|
121127
|
+
class: "mutation",
|
|
121128
|
+
description: "Enrich a social/professional profile from an email address. Consumes a credit.",
|
|
121129
|
+
parameters: {
|
|
121130
|
+
type: "object",
|
|
121131
|
+
properties: { email: { type: "string" } },
|
|
121132
|
+
required: ["email"]
|
|
121133
|
+
},
|
|
121134
|
+
request: {
|
|
121135
|
+
method: "POST",
|
|
121136
|
+
path: "/v1/get-profile-by-email",
|
|
121137
|
+
body: { email: "{email}" }
|
|
121138
|
+
},
|
|
121139
|
+
cas: "native-idempotency",
|
|
121140
|
+
externalEffect: false
|
|
121141
|
+
},
|
|
121142
|
+
{
|
|
121143
|
+
name: "domain_emails_count.get",
|
|
121144
|
+
class: "read",
|
|
121145
|
+
description: "Get the count of email addresses available for a domain (free, does not consume credits).",
|
|
121146
|
+
parameters: {
|
|
121147
|
+
type: "object",
|
|
121148
|
+
properties: { domain: { type: "string" } },
|
|
121149
|
+
required: ["domain"]
|
|
121150
|
+
},
|
|
121151
|
+
request: {
|
|
121152
|
+
method: "POST",
|
|
121153
|
+
path: "/v1/get-domain-emails-count",
|
|
121154
|
+
body: { domain: "{domain}" }
|
|
121155
|
+
}
|
|
121156
|
+
}
|
|
121157
|
+
]
|
|
121158
|
+
});
|
|
121159
|
+
|
|
121160
|
+
// src/connectors/adapters/wiza.ts
|
|
121161
|
+
var wizaConnector = declarativeRestConnector({
|
|
121162
|
+
kind: "wiza",
|
|
121163
|
+
displayName: "Wiza",
|
|
121164
|
+
description: "Real-time contact enrichment that reveals a person's work/personal email and phone from a LinkedIn URL, email, or name plus company.",
|
|
121165
|
+
auth: {
|
|
121166
|
+
kind: "api-key",
|
|
121167
|
+
hint: "API key from Wiza account settings. Sent as the Authorization: Bearer header."
|
|
121168
|
+
},
|
|
121169
|
+
category: "crm",
|
|
121170
|
+
defaultConsistencyModel: "authoritative",
|
|
121171
|
+
baseUrl: "https://wiza.co/api",
|
|
121172
|
+
credentialPlacement: { kind: "bearer" },
|
|
121173
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121174
|
+
test: { method: "GET", path: "/meta/credits" },
|
|
121175
|
+
capabilities: [
|
|
121176
|
+
{
|
|
121177
|
+
name: "individual_reveal.create",
|
|
121178
|
+
class: "mutation",
|
|
121179
|
+
description: "Start a real-time individual reveal to enrich one contact's email and phone from a LinkedIn URL, email, or name plus company/domain. Consumes credits.",
|
|
121180
|
+
parameters: {
|
|
121181
|
+
type: "object",
|
|
121182
|
+
properties: {
|
|
121183
|
+
individual_reveal: {
|
|
121184
|
+
type: "object",
|
|
121185
|
+
description: "Contact identifiers: full_name + company or domain, OR email, OR linkedin (profile URL)."
|
|
121186
|
+
},
|
|
121187
|
+
enrichment_level: { type: "string", description: "One of none, partial, phone, or full." },
|
|
121188
|
+
email_options: {
|
|
121189
|
+
type: "object",
|
|
121190
|
+
description: "Object with accept_work and accept_personal booleans."
|
|
121191
|
+
},
|
|
121192
|
+
phone_options: { type: "object", description: "Phone enrichment options." }
|
|
121193
|
+
},
|
|
121194
|
+
required: ["individual_reveal", "enrichment_level"]
|
|
121195
|
+
},
|
|
121196
|
+
request: {
|
|
121197
|
+
method: "POST",
|
|
121198
|
+
path: "/individual_reveals",
|
|
121199
|
+
body: {
|
|
121200
|
+
individual_reveal: "{individual_reveal}",
|
|
121201
|
+
enrichment_level: "{enrichment_level}",
|
|
121202
|
+
email_options: "{email_options}",
|
|
121203
|
+
phone_options: "{phone_options}"
|
|
121204
|
+
}
|
|
121205
|
+
},
|
|
121206
|
+
cas: "native-idempotency",
|
|
121207
|
+
externalEffect: false
|
|
121208
|
+
},
|
|
121209
|
+
{
|
|
121210
|
+
name: "individual_reveal.get",
|
|
121211
|
+
class: "read",
|
|
121212
|
+
description: "Retrieve the status and revealed contact data of an individual reveal by its id.",
|
|
121213
|
+
parameters: {
|
|
121214
|
+
type: "object",
|
|
121215
|
+
properties: {
|
|
121216
|
+
id: {
|
|
121217
|
+
type: "string",
|
|
121218
|
+
description: "The individual reveal id returned by individual_reveal.create."
|
|
121219
|
+
}
|
|
121220
|
+
},
|
|
121221
|
+
required: ["id"]
|
|
121222
|
+
},
|
|
121223
|
+
request: { method: "GET", path: "/individual_reveals/{id}" }
|
|
121224
|
+
},
|
|
121225
|
+
{
|
|
121226
|
+
name: "list.create",
|
|
121227
|
+
class: "mutation",
|
|
121228
|
+
description: "Create a list to enrich up to 2500 profiles in bulk with email and phone data. Consumes credits.",
|
|
121229
|
+
parameters: {
|
|
121230
|
+
type: "object",
|
|
121231
|
+
properties: {
|
|
121232
|
+
list: {
|
|
121233
|
+
type: "object",
|
|
121234
|
+
description: "List config including name, enrichment_level, email_options, and items (array of up to 2500 profiles)."
|
|
121235
|
+
}
|
|
121236
|
+
},
|
|
121237
|
+
required: ["list"]
|
|
121238
|
+
},
|
|
121239
|
+
request: { method: "POST", path: "/lists", body: { list: "{list}" } },
|
|
121240
|
+
cas: "native-idempotency",
|
|
121241
|
+
externalEffect: true
|
|
121242
|
+
},
|
|
121243
|
+
{
|
|
121244
|
+
name: "credits.get",
|
|
121245
|
+
class: "read",
|
|
121246
|
+
description: "Get the account's remaining email, phone, export, and API credit balances.",
|
|
121247
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121248
|
+
request: { method: "GET", path: "/meta/credits" }
|
|
121249
|
+
}
|
|
121250
|
+
]
|
|
121251
|
+
});
|
|
121252
|
+
|
|
121253
|
+
// src/connectors/adapters/builtwith.ts
|
|
121254
|
+
var builtwithConnector = declarativeRestConnector({
|
|
121255
|
+
kind: "builtwith",
|
|
121256
|
+
displayName: "BuiltWith",
|
|
121257
|
+
description: "Look up the technology stack, analytics, hosting, and metadata detected on any website.",
|
|
121258
|
+
auth: {
|
|
121259
|
+
kind: "api-key",
|
|
121260
|
+
hint: "API key (a UUID) from your BuiltWith account dashboard under My Account -> API Access. Sent as the KEY query parameter."
|
|
121261
|
+
},
|
|
121262
|
+
category: "market-intelligence",
|
|
121263
|
+
defaultConsistencyModel: "authoritative",
|
|
121264
|
+
baseUrl: "https://api.builtwith.com/v22",
|
|
121265
|
+
credentialPlacement: { kind: "query", parameter: "KEY" },
|
|
121266
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121267
|
+
test: { method: "GET", path: "/free1/api.json", query: { LOOKUP: "builtwith.com" } },
|
|
121268
|
+
capabilities: [
|
|
121269
|
+
{
|
|
121270
|
+
name: "domain.lookup",
|
|
121271
|
+
class: "read",
|
|
121272
|
+
description: "Return the full set of detected technologies and metadata for one or more root domains.",
|
|
121273
|
+
parameters: {
|
|
121274
|
+
type: "object",
|
|
121275
|
+
properties: {
|
|
121276
|
+
lookup: {
|
|
121277
|
+
type: "string",
|
|
121278
|
+
description: "Root domain to analyze, e.g. stripe.com. Up to 16 domains may be passed as a comma-separated list."
|
|
121279
|
+
}
|
|
121280
|
+
},
|
|
121281
|
+
required: ["lookup"]
|
|
121282
|
+
},
|
|
121283
|
+
request: { method: "GET", path: "/api.json", query: { LOOKUP: "{lookup}" } }
|
|
121284
|
+
},
|
|
121285
|
+
{
|
|
121286
|
+
name: "domain.free",
|
|
121287
|
+
class: "read",
|
|
121288
|
+
description: "Free-tier lookup returning the most popular detected technology groups for a single domain.",
|
|
121289
|
+
parameters: {
|
|
121290
|
+
type: "object",
|
|
121291
|
+
properties: { lookup: { type: "string", description: "Root domain to analyze." } },
|
|
121292
|
+
required: ["lookup"]
|
|
121293
|
+
},
|
|
121294
|
+
request: { method: "GET", path: "/free1/api.json", query: { LOOKUP: "{lookup}" } }
|
|
121295
|
+
},
|
|
121296
|
+
{
|
|
121297
|
+
name: "domain.relationships",
|
|
121298
|
+
class: "read",
|
|
121299
|
+
description: "Return domains that share relationships (e.g. analytics IDs, ad networks) with the given domain.",
|
|
121300
|
+
parameters: {
|
|
121301
|
+
type: "object",
|
|
121302
|
+
properties: {
|
|
121303
|
+
lookup: { type: "string", description: "Root domain to find related domains for." }
|
|
121304
|
+
},
|
|
121305
|
+
required: ["lookup"]
|
|
121306
|
+
},
|
|
121307
|
+
request: { method: "GET", path: "/rv2/api.json", query: { LOOKUP: "{lookup}" } }
|
|
121308
|
+
},
|
|
121309
|
+
{
|
|
121310
|
+
name: "company.to_url",
|
|
121311
|
+
class: "read",
|
|
121312
|
+
description: "Resolve a company name to its most likely website domain.",
|
|
121313
|
+
parameters: {
|
|
121314
|
+
type: "object",
|
|
121315
|
+
properties: {
|
|
121316
|
+
company: { type: "string", description: "Company name to resolve to a domain." }
|
|
121317
|
+
},
|
|
121318
|
+
required: ["company"]
|
|
121319
|
+
},
|
|
121320
|
+
request: { method: "GET", path: "/ctu1/api.json", query: { COMPANY: "{company}" } }
|
|
121321
|
+
}
|
|
121322
|
+
]
|
|
121323
|
+
});
|
|
121324
|
+
|
|
121325
|
+
// src/connectors/adapters/common-room.ts
|
|
121326
|
+
var commonRoomConnector = declarativeRestConnector({
|
|
121327
|
+
kind: "common-room",
|
|
121328
|
+
displayName: "Common Room",
|
|
121329
|
+
description: "Look up community and customer contacts, their activity, segments, and tags from your Common Room workspace.",
|
|
121330
|
+
auth: {
|
|
121331
|
+
kind: "api-key",
|
|
121332
|
+
hint: "Core API token from Common Room Settings -> API tokens (created by a workspace Admin). Sent as the Authorization: Bearer header."
|
|
121333
|
+
},
|
|
121334
|
+
category: "sales-intelligence",
|
|
121335
|
+
defaultConsistencyModel: "authoritative",
|
|
121336
|
+
baseUrl: "https://api.commonroom.io/community/v1",
|
|
121337
|
+
credentialPlacement: { kind: "bearer" },
|
|
121338
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121339
|
+
test: { method: "GET", path: "/api-token-status" },
|
|
121340
|
+
capabilities: [
|
|
121341
|
+
{
|
|
121342
|
+
name: "contact.get_by_email",
|
|
121343
|
+
class: "read",
|
|
121344
|
+
description: "Return a contact's full Common Room profile given their email address.",
|
|
121345
|
+
parameters: {
|
|
121346
|
+
type: "object",
|
|
121347
|
+
properties: {
|
|
121348
|
+
email: { type: "string", description: "Email address of the contact to look up." }
|
|
121349
|
+
},
|
|
121350
|
+
required: ["email"]
|
|
121351
|
+
},
|
|
121352
|
+
request: { method: "GET", path: "/user/{email}" }
|
|
121353
|
+
},
|
|
121354
|
+
{
|
|
121355
|
+
name: "contact.search",
|
|
121356
|
+
class: "read",
|
|
121357
|
+
description: "Find contacts by email or linked social handles (Twitter, GitHub, LinkedIn).",
|
|
121358
|
+
parameters: {
|
|
121359
|
+
type: "object",
|
|
121360
|
+
properties: {
|
|
121361
|
+
email: { type: "string", description: "Email address to search by." },
|
|
121362
|
+
github: { type: "string", description: "GitHub username to search by." },
|
|
121363
|
+
twitter: { type: "string", description: "Twitter/X handle to search by." },
|
|
121364
|
+
linkedin: {
|
|
121365
|
+
type: "string",
|
|
121366
|
+
description: "LinkedIn profile URL or handle to search by."
|
|
121367
|
+
}
|
|
121368
|
+
},
|
|
121369
|
+
required: []
|
|
121370
|
+
},
|
|
121371
|
+
request: {
|
|
121372
|
+
method: "GET",
|
|
121373
|
+
path: "/members",
|
|
121374
|
+
query: {
|
|
121375
|
+
email: "{email}",
|
|
121376
|
+
github: "{github}",
|
|
121377
|
+
twitter: "{twitter}",
|
|
121378
|
+
linkedin: "{linkedin}"
|
|
121379
|
+
}
|
|
121380
|
+
}
|
|
121381
|
+
},
|
|
121382
|
+
{
|
|
121383
|
+
name: "activity_types.list",
|
|
121384
|
+
class: "read",
|
|
121385
|
+
description: "List the activity types available in the workspace.",
|
|
121386
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121387
|
+
request: { method: "GET", path: "/activityTypes" }
|
|
121388
|
+
},
|
|
121389
|
+
{
|
|
121390
|
+
name: "segments.list",
|
|
121391
|
+
class: "read",
|
|
121392
|
+
description: "List the segments defined in the workspace.",
|
|
121393
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121394
|
+
request: { method: "GET", path: "/segments" }
|
|
121395
|
+
},
|
|
121396
|
+
{
|
|
121397
|
+
name: "contact.upsert",
|
|
121398
|
+
class: "mutation",
|
|
121399
|
+
description: "Create or update a contact in a destination source, optionally setting fields and custom fields.",
|
|
121400
|
+
parameters: {
|
|
121401
|
+
type: "object",
|
|
121402
|
+
properties: {
|
|
121403
|
+
destinationSourceId: {
|
|
121404
|
+
type: "string",
|
|
121405
|
+
description: "ID of the destination source to write the contact into."
|
|
121406
|
+
},
|
|
121407
|
+
fullName: { type: "string", description: "Full name of the contact." },
|
|
121408
|
+
email: { type: "string", description: "Email address of the contact." }
|
|
121409
|
+
},
|
|
121410
|
+
required: ["destinationSourceId"]
|
|
121411
|
+
},
|
|
121412
|
+
request: {
|
|
121413
|
+
method: "POST",
|
|
121414
|
+
path: "/source/{destinationSourceId}/user",
|
|
121415
|
+
body: { fullName: "{fullName}", email: "{email}" }
|
|
121416
|
+
},
|
|
121417
|
+
cas: "native-idempotency",
|
|
121418
|
+
externalEffect: true
|
|
121419
|
+
}
|
|
121420
|
+
]
|
|
121421
|
+
});
|
|
121422
|
+
|
|
121423
|
+
// src/connectors/adapters/leadfeeder.ts
|
|
121424
|
+
var leadfeederConnector = declarativeRestConnector({
|
|
121425
|
+
kind: "leadfeeder",
|
|
121426
|
+
displayName: "Leadfeeder",
|
|
121427
|
+
description: "Identify the company behind a website-visitor IP address, returning firmographic details and a confidence score.",
|
|
121428
|
+
auth: {
|
|
121429
|
+
kind: "api-key",
|
|
121430
|
+
hint: "API key from Leadfeeder (Dealfront) Settings -> API keys. Sent in the X-API-KEY request header."
|
|
121431
|
+
},
|
|
121432
|
+
category: "sales-intelligence",
|
|
121433
|
+
defaultConsistencyModel: "authoritative",
|
|
121434
|
+
baseUrl: "https://api.lf-discover.com",
|
|
121435
|
+
credentialPlacement: { kind: "header", header: "X-API-KEY" },
|
|
121436
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121437
|
+
test: { method: "GET", path: "/companies", query: { ip: "185.70.216.139" } },
|
|
121438
|
+
capabilities: [
|
|
121439
|
+
{
|
|
121440
|
+
name: "ip.enrich",
|
|
121441
|
+
class: "read",
|
|
121442
|
+
description: "Resolve an IPv4 or IPv6 address to the company that owns it, including name, domain, industry, size, revenue, location, and confidence.",
|
|
121443
|
+
parameters: {
|
|
121444
|
+
type: "object",
|
|
121445
|
+
properties: {
|
|
121446
|
+
ip: {
|
|
121447
|
+
type: "string",
|
|
121448
|
+
description: "Valid IPv4 or shortened IPv6 address to enrich, e.g. 185.70.216.139."
|
|
121449
|
+
}
|
|
121450
|
+
},
|
|
121451
|
+
required: ["ip"]
|
|
121452
|
+
},
|
|
121453
|
+
request: { method: "GET", path: "/companies", query: { ip: "{ip}" } }
|
|
121454
|
+
}
|
|
121455
|
+
]
|
|
121456
|
+
});
|
|
121457
|
+
|
|
121458
|
+
// src/connectors/adapters/serper.ts
|
|
121459
|
+
var serperConnector = declarativeRestConnector({
|
|
121460
|
+
kind: "serper",
|
|
121461
|
+
displayName: "Serper",
|
|
121462
|
+
description: "Run fast Google searches (web, news, images, places, and scholar) and get structured SERP results as JSON.",
|
|
121463
|
+
auth: {
|
|
121464
|
+
kind: "api-key",
|
|
121465
|
+
hint: "API key from your serper.dev dashboard. Sent in the X-API-KEY request header."
|
|
121466
|
+
},
|
|
121467
|
+
category: "market-intelligence",
|
|
121468
|
+
defaultConsistencyModel: "authoritative",
|
|
121469
|
+
baseUrl: "https://google.serper.dev",
|
|
121470
|
+
credentialPlacement: { kind: "header", header: "X-API-KEY" },
|
|
121471
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121472
|
+
test: { method: "POST", path: "/search", body: { q: "OpenAI" } },
|
|
121473
|
+
capabilities: [
|
|
121474
|
+
{
|
|
121475
|
+
name: "search.web",
|
|
121476
|
+
class: "read",
|
|
121477
|
+
description: "Run a Google web search and return organic results, knowledge graph, answer box, and related searches.",
|
|
121478
|
+
parameters: {
|
|
121479
|
+
type: "object",
|
|
121480
|
+
properties: {
|
|
121481
|
+
q: { type: "string", description: "The search query." },
|
|
121482
|
+
gl: {
|
|
121483
|
+
type: "string",
|
|
121484
|
+
description: "Two-letter country code for geo-targeting, e.g. us."
|
|
121485
|
+
},
|
|
121486
|
+
hl: { type: "string", description: "Two-letter language code, e.g. en." },
|
|
121487
|
+
num: { type: "integer", description: "Number of results to return." },
|
|
121488
|
+
page: { type: "integer", description: "Results page number." }
|
|
121489
|
+
},
|
|
121490
|
+
required: ["q"]
|
|
121491
|
+
},
|
|
121492
|
+
request: {
|
|
121493
|
+
method: "POST",
|
|
121494
|
+
path: "/search",
|
|
121495
|
+
body: { q: "{q}", gl: "{gl}", hl: "{hl}", num: "{num}", page: "{page}" }
|
|
121496
|
+
}
|
|
121497
|
+
},
|
|
121498
|
+
{
|
|
121499
|
+
name: "search.news",
|
|
121500
|
+
class: "read",
|
|
121501
|
+
description: "Run a Google News search and return structured news results.",
|
|
121502
|
+
parameters: {
|
|
121503
|
+
type: "object",
|
|
121504
|
+
properties: {
|
|
121505
|
+
q: { type: "string", description: "The news search query." },
|
|
121506
|
+
gl: { type: "string", description: "Two-letter country code." },
|
|
121507
|
+
hl: { type: "string", description: "Two-letter language code." }
|
|
121508
|
+
},
|
|
121509
|
+
required: ["q"]
|
|
121510
|
+
},
|
|
121511
|
+
request: { method: "POST", path: "/news", body: { q: "{q}", gl: "{gl}", hl: "{hl}" } }
|
|
121512
|
+
},
|
|
121513
|
+
{
|
|
121514
|
+
name: "search.places",
|
|
121515
|
+
class: "read",
|
|
121516
|
+
description: "Run a Google Maps/Places search and return structured place results.",
|
|
121517
|
+
parameters: {
|
|
121518
|
+
type: "object",
|
|
121519
|
+
properties: {
|
|
121520
|
+
q: { type: "string", description: "The places search query." },
|
|
121521
|
+
gl: { type: "string", description: "Two-letter country code." }
|
|
121522
|
+
},
|
|
121523
|
+
required: ["q"]
|
|
121524
|
+
},
|
|
121525
|
+
request: { method: "POST", path: "/places", body: { q: "{q}", gl: "{gl}" } }
|
|
121526
|
+
},
|
|
121527
|
+
{
|
|
121528
|
+
name: "search.scholar",
|
|
121529
|
+
class: "read",
|
|
121530
|
+
description: "Run a Google Scholar search and return structured academic results.",
|
|
121531
|
+
parameters: {
|
|
121532
|
+
type: "object",
|
|
121533
|
+
properties: { q: { type: "string", description: "The scholar search query." } },
|
|
121534
|
+
required: ["q"]
|
|
121535
|
+
},
|
|
121536
|
+
request: { method: "POST", path: "/scholar", body: { q: "{q}" } }
|
|
121537
|
+
},
|
|
121538
|
+
{
|
|
121539
|
+
name: "search.images",
|
|
121540
|
+
class: "read",
|
|
121541
|
+
description: "Run a Google Images search and return structured image results.",
|
|
121542
|
+
parameters: {
|
|
121543
|
+
type: "object",
|
|
121544
|
+
properties: {
|
|
121545
|
+
q: { type: "string", description: "The image search query." },
|
|
121546
|
+
gl: { type: "string", description: "Two-letter country code." }
|
|
121547
|
+
},
|
|
121548
|
+
required: ["q"]
|
|
121549
|
+
},
|
|
121550
|
+
request: { method: "POST", path: "/images", body: { q: "{q}", gl: "{gl}" } }
|
|
121551
|
+
}
|
|
121552
|
+
]
|
|
121553
|
+
});
|
|
121554
|
+
|
|
121555
|
+
// src/connectors/adapters/warmly.ts
|
|
121556
|
+
var warmlyConnector = declarativeRestConnector({
|
|
121557
|
+
kind: "warmly",
|
|
121558
|
+
displayName: "Warmly",
|
|
121559
|
+
description: "List identified website visitors and visiting accounts from your Warmly workspace via its agent-tools API.",
|
|
121560
|
+
auth: {
|
|
121561
|
+
kind: "api-key",
|
|
121562
|
+
hint: "Per-organization API key from the Warmly admin UI. Sent as the Authorization: Bearer header; organizationId must be included in each request body."
|
|
121563
|
+
},
|
|
121564
|
+
category: "sales-intelligence",
|
|
121565
|
+
defaultConsistencyModel: "authoritative",
|
|
121566
|
+
baseUrl: "https://opps-api.getwarmly.com/api",
|
|
121567
|
+
credentialPlacement: { kind: "bearer" },
|
|
121568
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121569
|
+
test: { method: "GET", path: "/agent-tools/tools" },
|
|
121570
|
+
capabilities: [
|
|
121571
|
+
{
|
|
121572
|
+
name: "tools.list",
|
|
121573
|
+
class: "read",
|
|
121574
|
+
description: "Discover the available agent tools and their input JSON schemas for your workspace.",
|
|
121575
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121576
|
+
request: { method: "GET", path: "/agent-tools/tools" }
|
|
121577
|
+
},
|
|
121578
|
+
{
|
|
121579
|
+
name: "visitors.list",
|
|
121580
|
+
class: "mutation",
|
|
121581
|
+
description: "List identified people who visited your website, with optional filters and pagination. This is a billed read executed via the tool-execution endpoint.",
|
|
121582
|
+
parameters: {
|
|
121583
|
+
type: "object",
|
|
121584
|
+
properties: {
|
|
121585
|
+
organizationId: { type: "string", description: "The organization the API key is issued for." },
|
|
121586
|
+
timeWindow: {
|
|
121587
|
+
type: "string",
|
|
121588
|
+
description: "Lookback window: past_day (default) or past_week."
|
|
121589
|
+
},
|
|
121590
|
+
take: {
|
|
121591
|
+
type: "integer",
|
|
121592
|
+
description: "Number of results to return, 1-500 (default 25)."
|
|
121593
|
+
},
|
|
121594
|
+
offset: { type: "integer", description: "Pagination offset." },
|
|
121595
|
+
searchTerm: { type: "string", description: "Substring match on name, email, or company." }
|
|
121596
|
+
},
|
|
121597
|
+
required: ["organizationId"]
|
|
121598
|
+
},
|
|
121599
|
+
request: {
|
|
121600
|
+
method: "POST",
|
|
121601
|
+
path: "/agent-tools/execute",
|
|
121602
|
+
body: {
|
|
121603
|
+
toolName: "list_warm_visitors",
|
|
121604
|
+
organizationId: "{organizationId}",
|
|
121605
|
+
input: {
|
|
121606
|
+
timeWindow: "{timeWindow}",
|
|
121607
|
+
take: "{take}",
|
|
121608
|
+
offset: "{offset}",
|
|
121609
|
+
searchTerm: "{searchTerm}"
|
|
121610
|
+
}
|
|
121611
|
+
}
|
|
121612
|
+
},
|
|
121613
|
+
cas: "native-idempotency",
|
|
121614
|
+
externalEffect: false
|
|
121615
|
+
},
|
|
121616
|
+
{
|
|
121617
|
+
name: "accounts.list",
|
|
121618
|
+
class: "mutation",
|
|
121619
|
+
description: "List company-level aggregations of accounts that visited your website. Billed read executed via the tool-execution endpoint.",
|
|
121620
|
+
parameters: {
|
|
121621
|
+
type: "object",
|
|
121622
|
+
properties: {
|
|
121623
|
+
organizationId: { type: "string", description: "The organization the API key is issued for." },
|
|
121624
|
+
timeWindow: {
|
|
121625
|
+
type: "string",
|
|
121626
|
+
description: "Lookback window: past_day (default) or past_week."
|
|
121627
|
+
},
|
|
121628
|
+
take: { type: "integer", description: "Number of results to return, 1-500." }
|
|
121629
|
+
},
|
|
121630
|
+
required: ["organizationId"]
|
|
121631
|
+
},
|
|
121632
|
+
request: {
|
|
121633
|
+
method: "POST",
|
|
121634
|
+
path: "/agent-tools/execute",
|
|
121635
|
+
body: {
|
|
121636
|
+
toolName: "list_warm_accounts",
|
|
121637
|
+
organizationId: "{organizationId}",
|
|
121638
|
+
input: { timeWindow: "{timeWindow}", take: "{take}" }
|
|
121639
|
+
}
|
|
121640
|
+
},
|
|
121641
|
+
cas: "native-idempotency",
|
|
121642
|
+
externalEffect: false
|
|
121643
|
+
}
|
|
121644
|
+
]
|
|
121645
|
+
});
|
|
121646
|
+
|
|
121647
|
+
// src/connectors/adapters/autobound.ts
|
|
121648
|
+
var autoboundConnector = declarativeRestConnector({
|
|
121649
|
+
kind: "autobound",
|
|
121650
|
+
displayName: "Autobound",
|
|
121651
|
+
description: "AI sales-intelligence API that enriches companies and contacts with buyer-intent signals for personalized outreach.",
|
|
121652
|
+
auth: {
|
|
121653
|
+
kind: "api-key",
|
|
121654
|
+
hint: "API key from your Autobound account (Developer Hub). Sent as the X-API-KEY header. Base host is the Signals API at signals.autobound.ai."
|
|
121655
|
+
},
|
|
121656
|
+
category: "sales-intelligence",
|
|
121657
|
+
defaultConsistencyModel: "authoritative",
|
|
121658
|
+
baseUrl: "https://signals.autobound.ai/v1",
|
|
121659
|
+
credentialPlacement: { kind: "header", header: "X-API-KEY" },
|
|
121660
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121661
|
+
test: { method: "GET", path: "/account" },
|
|
121662
|
+
capabilities: [
|
|
121663
|
+
{
|
|
121664
|
+
name: "account.get",
|
|
121665
|
+
class: "read",
|
|
121666
|
+
description: "Return account details and rate limits. Consumes no credits.",
|
|
121667
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121668
|
+
request: { method: "GET", path: "/account" }
|
|
121669
|
+
},
|
|
121670
|
+
{
|
|
121671
|
+
name: "company.enrich",
|
|
121672
|
+
class: "mutation",
|
|
121673
|
+
description: "Enrich a company with intent and news signals by domain (billed per returned signal).",
|
|
121674
|
+
parameters: {
|
|
121675
|
+
type: "object",
|
|
121676
|
+
properties: {
|
|
121677
|
+
domain: { type: "string" },
|
|
121678
|
+
signal_types: { type: "array", items: { type: "string" } },
|
|
121679
|
+
limit: { type: "integer" }
|
|
121680
|
+
},
|
|
121681
|
+
required: ["domain"]
|
|
121682
|
+
},
|
|
121683
|
+
request: {
|
|
121684
|
+
method: "POST",
|
|
121685
|
+
path: "/companies/enrich",
|
|
121686
|
+
body: { domain: "{domain}", signal_types: "{signal_types}", limit: "{limit}" }
|
|
121687
|
+
},
|
|
121688
|
+
cas: "native-idempotency",
|
|
121689
|
+
externalEffect: false
|
|
121690
|
+
},
|
|
121691
|
+
{
|
|
121692
|
+
name: "company.search",
|
|
121693
|
+
class: "read",
|
|
121694
|
+
description: "Search companies aggregated by entity, filtered by signal type and firmographics.",
|
|
121695
|
+
parameters: {
|
|
121696
|
+
type: "object",
|
|
121697
|
+
properties: {
|
|
121698
|
+
signal_types: { type: "array", items: { type: "string" } },
|
|
121699
|
+
company_domains: { type: "array", items: { type: "string" } },
|
|
121700
|
+
limit: { type: "integer" }
|
|
121701
|
+
},
|
|
121702
|
+
required: ["signal_types"]
|
|
121703
|
+
},
|
|
121704
|
+
request: {
|
|
121705
|
+
method: "POST",
|
|
121706
|
+
path: "/companies/search",
|
|
121707
|
+
body: {
|
|
121708
|
+
signal_types: "{signal_types}",
|
|
121709
|
+
company_domains: "{company_domains}",
|
|
121710
|
+
limit: "{limit}"
|
|
121711
|
+
}
|
|
121712
|
+
}
|
|
121713
|
+
},
|
|
121714
|
+
{
|
|
121715
|
+
name: "contact.enrich",
|
|
121716
|
+
class: "mutation",
|
|
121717
|
+
description: "Enrich a contact with personal signals by email or LinkedIn URL (billed per returned signal).",
|
|
121718
|
+
parameters: {
|
|
121719
|
+
type: "object",
|
|
121720
|
+
properties: {
|
|
121721
|
+
contact_email: { type: "string" },
|
|
121722
|
+
contact_linkedin_url: { type: "string" },
|
|
121723
|
+
signal_types: { type: "array", items: { type: "string" } },
|
|
121724
|
+
limit: { type: "integer" }
|
|
121725
|
+
},
|
|
121726
|
+
required: ["contact_email"]
|
|
121727
|
+
},
|
|
121728
|
+
request: {
|
|
121729
|
+
method: "POST",
|
|
121730
|
+
path: "/contacts/enrich",
|
|
121731
|
+
body: {
|
|
121732
|
+
contact_email: "{contact_email}",
|
|
121733
|
+
contact_linkedin_url: "{contact_linkedin_url}",
|
|
121734
|
+
signal_types: "{signal_types}",
|
|
121735
|
+
limit: "{limit}"
|
|
121736
|
+
}
|
|
121737
|
+
},
|
|
121738
|
+
cas: "native-idempotency",
|
|
121739
|
+
externalEffect: false
|
|
121740
|
+
},
|
|
121741
|
+
{
|
|
121742
|
+
name: "contact.search",
|
|
121743
|
+
class: "read",
|
|
121744
|
+
description: "Search contacts aggregated by entity, filtered by signal type.",
|
|
121745
|
+
parameters: {
|
|
121746
|
+
type: "object",
|
|
121747
|
+
properties: {
|
|
121748
|
+
signal_types: { type: "array", items: { type: "string" } },
|
|
121749
|
+
limit: { type: "integer" }
|
|
121750
|
+
},
|
|
121751
|
+
required: ["signal_types"]
|
|
121752
|
+
},
|
|
121753
|
+
request: {
|
|
121754
|
+
method: "POST",
|
|
121755
|
+
path: "/contacts/search",
|
|
121756
|
+
body: { signal_types: "{signal_types}", limit: "{limit}" }
|
|
121757
|
+
}
|
|
121758
|
+
}
|
|
121759
|
+
]
|
|
121760
|
+
});
|
|
121761
|
+
|
|
121762
|
+
// src/connectors/adapters/crustdata.ts
|
|
121763
|
+
var crustdataConnector = declarativeRestConnector({
|
|
121764
|
+
kind: "crustdata",
|
|
121765
|
+
displayName: "Crustdata",
|
|
121766
|
+
description: "Real-time B2B company and people data API for enriching, identifying, and searching companies and professional profiles.",
|
|
121767
|
+
auth: {
|
|
121768
|
+
kind: "api-key",
|
|
121769
|
+
hint: "API key (token) from the Crustdata dashboard. Sent as the Authorization: Bearer header. Requests also send the x-api-version: 2025-11-01 header."
|
|
121770
|
+
},
|
|
121771
|
+
category: "sales-intelligence",
|
|
121772
|
+
defaultConsistencyModel: "authoritative",
|
|
121773
|
+
baseUrl: "https://api.crustdata.com",
|
|
121774
|
+
credentialPlacement: { kind: "bearer" },
|
|
121775
|
+
defaultHeaders: { "content-type": "application/json", "x-api-version": "2025-11-01" },
|
|
121776
|
+
capabilities: [
|
|
121777
|
+
{
|
|
121778
|
+
name: "company.identify",
|
|
121779
|
+
class: "read",
|
|
121780
|
+
description: "Resolve company domains to Crustdata company records.",
|
|
121781
|
+
parameters: {
|
|
121782
|
+
type: "object",
|
|
121783
|
+
properties: { domains: { type: "array", items: { type: "string" } } },
|
|
121784
|
+
required: ["domains"]
|
|
121785
|
+
},
|
|
121786
|
+
request: { method: "POST", path: "/company/identify", body: { domains: "{domains}" } }
|
|
121787
|
+
},
|
|
121788
|
+
{
|
|
121789
|
+
name: "company.enrich",
|
|
121790
|
+
class: "read",
|
|
121791
|
+
description: "Retrieve full company profiles for one or more domains.",
|
|
121792
|
+
parameters: {
|
|
121793
|
+
type: "object",
|
|
121794
|
+
properties: {
|
|
121795
|
+
domains: { type: "array", items: { type: "string" } },
|
|
121796
|
+
fields: { type: "array", items: { type: "string" } }
|
|
121797
|
+
},
|
|
121798
|
+
required: ["domains"]
|
|
121799
|
+
},
|
|
121800
|
+
request: {
|
|
121801
|
+
method: "POST",
|
|
121802
|
+
path: "/company/enrich",
|
|
121803
|
+
body: { domains: "{domains}", fields: "{fields}" }
|
|
121804
|
+
}
|
|
121805
|
+
},
|
|
121806
|
+
{
|
|
121807
|
+
name: "company.search",
|
|
121808
|
+
class: "read",
|
|
121809
|
+
description: "Search companies with filters and sorting.",
|
|
121810
|
+
parameters: {
|
|
121811
|
+
type: "object",
|
|
121812
|
+
properties: { filters: { type: "object" }, page: { type: "integer" } },
|
|
121813
|
+
required: ["filters"]
|
|
121814
|
+
},
|
|
121815
|
+
request: {
|
|
121816
|
+
method: "POST",
|
|
121817
|
+
path: "/company/search",
|
|
121818
|
+
body: { filters: "{filters}", page: "{page}" }
|
|
121819
|
+
}
|
|
121820
|
+
},
|
|
121821
|
+
{
|
|
121822
|
+
name: "person.enrich",
|
|
121823
|
+
class: "read",
|
|
121824
|
+
description: "Enrich people by LinkedIn profile URL or business email; optionally select returned fields.",
|
|
121825
|
+
parameters: {
|
|
121826
|
+
type: "object",
|
|
121827
|
+
properties: {
|
|
121828
|
+
professional_network_profile_urls: { type: "array", items: { type: "string" } },
|
|
121829
|
+
business_emails: { type: "array", items: { type: "string" } },
|
|
121830
|
+
fields: { type: "array", items: { type: "string" } }
|
|
121831
|
+
},
|
|
121832
|
+
required: ["professional_network_profile_urls"]
|
|
121833
|
+
},
|
|
121834
|
+
request: {
|
|
121835
|
+
method: "POST",
|
|
121836
|
+
path: "/person/enrich",
|
|
121837
|
+
body: {
|
|
121838
|
+
professional_network_profile_urls: "{professional_network_profile_urls}",
|
|
121839
|
+
business_emails: "{business_emails}",
|
|
121840
|
+
fields: "{fields}"
|
|
121841
|
+
}
|
|
121842
|
+
}
|
|
121843
|
+
},
|
|
121844
|
+
{
|
|
121845
|
+
name: "person.search",
|
|
121846
|
+
class: "read",
|
|
121847
|
+
description: "Search people with filters and sorting.",
|
|
121848
|
+
parameters: {
|
|
121849
|
+
type: "object",
|
|
121850
|
+
properties: { filters: { type: "object" }, page: { type: "integer" } },
|
|
121851
|
+
required: ["filters"]
|
|
121852
|
+
},
|
|
121853
|
+
request: {
|
|
121854
|
+
method: "POST",
|
|
121855
|
+
path: "/person/search",
|
|
121856
|
+
body: { filters: "{filters}", page: "{page}" }
|
|
121857
|
+
}
|
|
121858
|
+
}
|
|
121859
|
+
]
|
|
121860
|
+
});
|
|
121861
|
+
|
|
121862
|
+
// src/connectors/adapters/fullenrich.ts
|
|
121863
|
+
var fullenrichConnector = declarativeRestConnector({
|
|
121864
|
+
kind: "fullenrich",
|
|
121865
|
+
displayName: "FullEnrich",
|
|
121866
|
+
description: "Waterfall B2B contact enrichment API that finds work emails and phone numbers for a contact from name, company, or LinkedIn URL.",
|
|
121867
|
+
auth: {
|
|
121868
|
+
kind: "api-key",
|
|
121869
|
+
hint: "API key from the FullEnrich dashboard (app.fullenrich.com/app/api). Sent as the Authorization: Bearer header."
|
|
121870
|
+
},
|
|
121871
|
+
category: "sales-intelligence",
|
|
121872
|
+
defaultConsistencyModel: "authoritative",
|
|
121873
|
+
baseUrl: "https://app.fullenrich.com/api/v2",
|
|
121874
|
+
credentialPlacement: { kind: "bearer" },
|
|
121875
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121876
|
+
test: { method: "GET", path: "/account/credits" },
|
|
121877
|
+
capabilities: [
|
|
121878
|
+
{
|
|
121879
|
+
name: "account.credits",
|
|
121880
|
+
class: "read",
|
|
121881
|
+
description: "Return the current credit balance for the account.",
|
|
121882
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121883
|
+
request: { method: "GET", path: "/account/credits" }
|
|
121884
|
+
},
|
|
121885
|
+
{
|
|
121886
|
+
name: "contact.enrich.start",
|
|
121887
|
+
class: "mutation",
|
|
121888
|
+
description: "Start an async waterfall enrichment for up to 100 contacts; returns an enrichment id and bills per found data point.",
|
|
121889
|
+
parameters: {
|
|
121890
|
+
type: "object",
|
|
121891
|
+
properties: {
|
|
121892
|
+
name: { type: "string" },
|
|
121893
|
+
data: {
|
|
121894
|
+
type: "array",
|
|
121895
|
+
items: {
|
|
121896
|
+
type: "object",
|
|
121897
|
+
properties: {
|
|
121898
|
+
first_name: { type: "string" },
|
|
121899
|
+
last_name: { type: "string" },
|
|
121900
|
+
domain: { type: "string" },
|
|
121901
|
+
company_name: { type: "string" },
|
|
121902
|
+
linkedin_url: { type: "string" },
|
|
121903
|
+
enrich_fields: { type: "array", items: { type: "string" } }
|
|
121904
|
+
}
|
|
121905
|
+
}
|
|
121906
|
+
},
|
|
121907
|
+
webhook_url: { type: "string" }
|
|
121908
|
+
},
|
|
121909
|
+
required: ["name", "data"]
|
|
121910
|
+
},
|
|
121911
|
+
request: {
|
|
121912
|
+
method: "POST",
|
|
121913
|
+
path: "/contact/enrich/bulk",
|
|
121914
|
+
body: { name: "{name}", data: "{data}", webhook_url: "{webhook_url}" }
|
|
121915
|
+
},
|
|
121916
|
+
cas: "native-idempotency",
|
|
121917
|
+
externalEffect: false
|
|
121918
|
+
},
|
|
121919
|
+
{
|
|
121920
|
+
name: "contact.enrich.result",
|
|
121921
|
+
class: "read",
|
|
121922
|
+
description: "Retrieve the result of a previously started bulk enrichment by its id.",
|
|
121923
|
+
parameters: {
|
|
121924
|
+
type: "object",
|
|
121925
|
+
properties: { enrichment_id: { type: "string" } },
|
|
121926
|
+
required: ["enrichment_id"]
|
|
121927
|
+
},
|
|
121928
|
+
request: { method: "GET", path: "/contact/enrich/bulk/{enrichment_id}" }
|
|
121929
|
+
},
|
|
121930
|
+
{
|
|
121931
|
+
name: "contact.reverse_email.start",
|
|
121932
|
+
class: "mutation",
|
|
121933
|
+
description: "Start an async reverse-email lookup to find profiles/identities behind email addresses.",
|
|
121934
|
+
parameters: {
|
|
121935
|
+
type: "object",
|
|
121936
|
+
properties: {
|
|
121937
|
+
name: { type: "string" },
|
|
121938
|
+
data: {
|
|
121939
|
+
type: "array",
|
|
121940
|
+
items: { type: "object", properties: { email: { type: "string" } } }
|
|
121941
|
+
},
|
|
121942
|
+
webhook_url: { type: "string" }
|
|
121943
|
+
},
|
|
121944
|
+
required: ["name", "data"]
|
|
121945
|
+
},
|
|
121946
|
+
request: {
|
|
121947
|
+
method: "POST",
|
|
121948
|
+
path: "/contact/reverse/email/bulk",
|
|
121949
|
+
body: { name: "{name}", data: "{data}", webhook_url: "{webhook_url}" }
|
|
121950
|
+
},
|
|
121951
|
+
cas: "native-idempotency",
|
|
121952
|
+
externalEffect: false
|
|
121953
|
+
}
|
|
121954
|
+
]
|
|
121955
|
+
});
|
|
121956
|
+
|
|
121957
|
+
// src/connectors/adapters/leadmagic.ts
|
|
121958
|
+
var leadmagicConnector = declarativeRestConnector({
|
|
121959
|
+
kind: "leadmagic",
|
|
121960
|
+
displayName: "LeadMagic",
|
|
121961
|
+
description: "B2B data enrichment API for finding and validating work emails, mobile numbers, and enriching people and company profiles.",
|
|
121962
|
+
auth: {
|
|
121963
|
+
kind: "api-key",
|
|
121964
|
+
hint: "API key from LeadMagic Settings -> API. Sent as the X-API-Key header."
|
|
121965
|
+
},
|
|
121966
|
+
category: "sales-intelligence",
|
|
121967
|
+
defaultConsistencyModel: "authoritative",
|
|
121968
|
+
baseUrl: "https://api.leadmagic.io",
|
|
121969
|
+
credentialPlacement: { kind: "header", header: "X-API-Key" },
|
|
121970
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
121971
|
+
test: { method: "GET", path: "/v1/credits" },
|
|
121972
|
+
capabilities: [
|
|
121973
|
+
{
|
|
121974
|
+
name: "credits.get",
|
|
121975
|
+
class: "read",
|
|
121976
|
+
description: "Return the current API key credit balance. Free, no credits consumed.",
|
|
121977
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
121978
|
+
request: { method: "GET", path: "/v1/credits" }
|
|
121979
|
+
},
|
|
121980
|
+
{
|
|
121981
|
+
name: "email.find",
|
|
121982
|
+
class: "mutation",
|
|
121983
|
+
description: "Find a verified work email from a person's name and company (charged only when an email is found).",
|
|
121984
|
+
parameters: {
|
|
121985
|
+
type: "object",
|
|
121986
|
+
properties: {
|
|
121987
|
+
first_name: { type: "string" },
|
|
121988
|
+
last_name: { type: "string" },
|
|
121989
|
+
domain: { type: "string" },
|
|
121990
|
+
company_name: { type: "string" }
|
|
121991
|
+
},
|
|
121992
|
+
required: ["first_name", "last_name", "domain"]
|
|
121993
|
+
},
|
|
121994
|
+
request: {
|
|
121995
|
+
method: "POST",
|
|
121996
|
+
path: "/v1/people/email-finder",
|
|
121997
|
+
body: {
|
|
121998
|
+
first_name: "{first_name}",
|
|
121999
|
+
last_name: "{last_name}",
|
|
122000
|
+
domain: "{domain}",
|
|
122001
|
+
company_name: "{company_name}"
|
|
122002
|
+
}
|
|
122003
|
+
},
|
|
122004
|
+
cas: "native-idempotency",
|
|
122005
|
+
externalEffect: false
|
|
122006
|
+
},
|
|
122007
|
+
{
|
|
122008
|
+
name: "email.validate",
|
|
122009
|
+
class: "mutation",
|
|
122010
|
+
description: "Validate an email address and return valid/invalid/unknown (charged only for definitive results).",
|
|
122011
|
+
parameters: {
|
|
122012
|
+
type: "object",
|
|
122013
|
+
properties: { email: { type: "string" } },
|
|
122014
|
+
required: ["email"]
|
|
122015
|
+
},
|
|
122016
|
+
request: {
|
|
122017
|
+
method: "POST",
|
|
122018
|
+
path: "/v1/people/email-validation",
|
|
122019
|
+
body: { email: "{email}" }
|
|
122020
|
+
},
|
|
122021
|
+
cas: "native-idempotency",
|
|
122022
|
+
externalEffect: false
|
|
122023
|
+
},
|
|
122024
|
+
{
|
|
122025
|
+
name: "profile.search",
|
|
122026
|
+
class: "read",
|
|
122027
|
+
description: "Enrich a B2B profile from a profile URL or username.",
|
|
122028
|
+
parameters: {
|
|
122029
|
+
type: "object",
|
|
122030
|
+
properties: { profile_url: { type: "string" } },
|
|
122031
|
+
required: ["profile_url"]
|
|
122032
|
+
},
|
|
122033
|
+
request: {
|
|
122034
|
+
method: "POST",
|
|
122035
|
+
path: "/v1/people/profile-search",
|
|
122036
|
+
body: { profile_url: "{profile_url}" }
|
|
122037
|
+
}
|
|
122038
|
+
},
|
|
122039
|
+
{
|
|
122040
|
+
name: "mobile.find",
|
|
122041
|
+
class: "mutation",
|
|
122042
|
+
description: "Find a mobile phone number from a profile URL or email (charged only on a successful match).",
|
|
122043
|
+
parameters: {
|
|
122044
|
+
type: "object",
|
|
122045
|
+
properties: {
|
|
122046
|
+
profile_url: { type: "string" },
|
|
122047
|
+
work_email: { type: "string" },
|
|
122048
|
+
personal_email: { type: "string" }
|
|
122049
|
+
},
|
|
122050
|
+
required: ["profile_url"]
|
|
122051
|
+
},
|
|
122052
|
+
request: {
|
|
122053
|
+
method: "POST",
|
|
122054
|
+
path: "/v1/people/mobile-finder",
|
|
122055
|
+
body: {
|
|
122056
|
+
profile_url: "{profile_url}",
|
|
122057
|
+
work_email: "{work_email}",
|
|
122058
|
+
personal_email: "{personal_email}"
|
|
122059
|
+
}
|
|
122060
|
+
},
|
|
122061
|
+
cas: "native-idempotency",
|
|
122062
|
+
externalEffect: false
|
|
122063
|
+
},
|
|
122064
|
+
{
|
|
122065
|
+
name: "company.search",
|
|
122066
|
+
class: "mutation",
|
|
122067
|
+
description: "Enrich a company's firmographics from its domain, name, or profile URL (charged per company found).",
|
|
122068
|
+
parameters: {
|
|
122069
|
+
type: "object",
|
|
122070
|
+
properties: {
|
|
122071
|
+
company_domain: { type: "string" },
|
|
122072
|
+
company_name: { type: "string" },
|
|
122073
|
+
profile_url: { type: "string" }
|
|
122074
|
+
},
|
|
122075
|
+
required: ["company_domain"]
|
|
122076
|
+
},
|
|
122077
|
+
request: {
|
|
122078
|
+
method: "POST",
|
|
122079
|
+
path: "/v1/companies/company-search",
|
|
122080
|
+
body: {
|
|
122081
|
+
company_domain: "{company_domain}",
|
|
122082
|
+
company_name: "{company_name}",
|
|
122083
|
+
profile_url: "{profile_url}"
|
|
122084
|
+
}
|
|
122085
|
+
},
|
|
122086
|
+
cas: "native-idempotency",
|
|
122087
|
+
externalEffect: false
|
|
122088
|
+
}
|
|
122089
|
+
]
|
|
122090
|
+
});
|
|
122091
|
+
|
|
122092
|
+
// src/connectors/adapters/brightdata.ts
|
|
122093
|
+
var brightdataConnector = declarativeRestConnector({
|
|
122094
|
+
kind: "brightdata",
|
|
122095
|
+
displayName: "Bright Data",
|
|
122096
|
+
description: "Scrape any website at scale using Bright Data's Web Unlocker (bypasses anti-bot protection) and Web Scraper API (structured dataset collection jobs).",
|
|
122097
|
+
auth: {
|
|
122098
|
+
kind: "api-key",
|
|
122099
|
+
hint: "API token from your Bright Data dashboard (Account settings -> API tokens). Sent as the Authorization: Bearer header."
|
|
122100
|
+
},
|
|
122101
|
+
category: "other",
|
|
122102
|
+
defaultConsistencyModel: "authoritative",
|
|
122103
|
+
baseUrl: "https://api.brightdata.com",
|
|
122104
|
+
credentialPlacement: { kind: "bearer" },
|
|
122105
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122106
|
+
capabilities: [
|
|
122107
|
+
{
|
|
122108
|
+
name: "unlocker.request",
|
|
122109
|
+
class: "read",
|
|
122110
|
+
description: "Fetch a target URL through the Web Unlocker, returning the page content with anti-bot bypass, CAPTCHA solving, and JS rendering handled.",
|
|
122111
|
+
parameters: {
|
|
122112
|
+
type: "object",
|
|
122113
|
+
properties: {
|
|
122114
|
+
zone: { type: "string", description: "Your Web Unlocker API zone name." },
|
|
122115
|
+
url: { type: "string", description: "Target URL to fetch." },
|
|
122116
|
+
format: {
|
|
122117
|
+
type: "string",
|
|
122118
|
+
description: "Response format, e.g. 'raw' for the unmodified site response or 'json'."
|
|
122119
|
+
},
|
|
122120
|
+
body: {
|
|
122121
|
+
type: "string",
|
|
122122
|
+
description: "Optional raw POST payload to send to the target URL."
|
|
122123
|
+
}
|
|
122124
|
+
},
|
|
122125
|
+
required: ["zone", "url"]
|
|
122126
|
+
},
|
|
122127
|
+
request: {
|
|
122128
|
+
method: "POST",
|
|
122129
|
+
path: "/request",
|
|
122130
|
+
body: { zone: "{zone}", url: "{url}", format: "{format}", body: "{body}" }
|
|
122131
|
+
}
|
|
122132
|
+
},
|
|
122133
|
+
{
|
|
122134
|
+
name: "scraper.trigger",
|
|
122135
|
+
class: "mutation",
|
|
122136
|
+
description: "Trigger an asynchronous Web Scraper data collection job for a given dataset, returning a snapshot_id used to poll progress and download results.",
|
|
122137
|
+
parameters: {
|
|
122138
|
+
type: "object",
|
|
122139
|
+
properties: {
|
|
122140
|
+
dataset_id: {
|
|
122141
|
+
type: "string",
|
|
122142
|
+
description: "Scraper dataset id, e.g. gd_xxxxxxxxxxxxxxxxx."
|
|
122143
|
+
},
|
|
122144
|
+
format: { type: "string", description: "Delivery format of results, e.g. json." },
|
|
122145
|
+
include_errors: { type: "boolean", description: "Include error records in the result set." },
|
|
122146
|
+
inputs: {
|
|
122147
|
+
type: "array",
|
|
122148
|
+
description: "Array of input objects, each typically containing a url to scrape.",
|
|
122149
|
+
items: { type: "object" }
|
|
122150
|
+
}
|
|
122151
|
+
},
|
|
122152
|
+
required: ["dataset_id", "inputs"]
|
|
122153
|
+
},
|
|
122154
|
+
request: {
|
|
122155
|
+
method: "POST",
|
|
122156
|
+
path: "/datasets/v3/trigger",
|
|
122157
|
+
query: {
|
|
122158
|
+
dataset_id: "{dataset_id}",
|
|
122159
|
+
format: "{format}",
|
|
122160
|
+
include_errors: "{include_errors}"
|
|
122161
|
+
},
|
|
122162
|
+
body: "{inputs}"
|
|
122163
|
+
},
|
|
122164
|
+
cas: "native-idempotency",
|
|
122165
|
+
externalEffect: true
|
|
122166
|
+
},
|
|
122167
|
+
{
|
|
122168
|
+
name: "scraper.progress",
|
|
122169
|
+
class: "read",
|
|
122170
|
+
description: "Check the status of a Web Scraper collection job (starting, running, ready, or failed) by its snapshot_id.",
|
|
122171
|
+
parameters: {
|
|
122172
|
+
type: "object",
|
|
122173
|
+
properties: {
|
|
122174
|
+
snapshot_id: { type: "string", description: "Snapshot id returned by scraper.trigger." }
|
|
122175
|
+
},
|
|
122176
|
+
required: ["snapshot_id"]
|
|
122177
|
+
},
|
|
122178
|
+
request: { method: "GET", path: "/datasets/v3/progress/{snapshot_id}" }
|
|
122179
|
+
},
|
|
122180
|
+
{
|
|
122181
|
+
name: "scraper.snapshot",
|
|
122182
|
+
class: "read",
|
|
122183
|
+
description: "Download the collected records for a completed Web Scraper snapshot in the requested format.",
|
|
122184
|
+
parameters: {
|
|
122185
|
+
type: "object",
|
|
122186
|
+
properties: {
|
|
122187
|
+
snapshot_id: { type: "string", description: "Snapshot id returned by scraper.trigger." },
|
|
122188
|
+
format: {
|
|
122189
|
+
type: "string",
|
|
122190
|
+
description: "Output format, e.g. json, ndjson, jsonl, or csv."
|
|
122191
|
+
}
|
|
122192
|
+
},
|
|
122193
|
+
required: ["snapshot_id"]
|
|
122194
|
+
},
|
|
122195
|
+
request: {
|
|
122196
|
+
method: "GET",
|
|
122197
|
+
path: "/datasets/v3/snapshot/{snapshot_id}",
|
|
122198
|
+
query: { format: "{format}" }
|
|
122199
|
+
}
|
|
122200
|
+
}
|
|
122201
|
+
]
|
|
122202
|
+
});
|
|
122203
|
+
|
|
122204
|
+
// src/connectors/adapters/phantombuster.ts
|
|
122205
|
+
var phantombusterConnector = declarativeRestConnector({
|
|
122206
|
+
kind: "phantombuster",
|
|
122207
|
+
displayName: "PhantomBuster",
|
|
122208
|
+
description: "Launch PhantomBuster Phantoms (automation agents) that scrape and extract data from sites like LinkedIn, then retrieve their output and results.",
|
|
122209
|
+
auth: {
|
|
122210
|
+
kind: "api-key",
|
|
122211
|
+
hint: "API key from your PhantomBuster dashboard (Workspace settings -> API key). Sent in the X-Phantombuster-Key header."
|
|
122212
|
+
},
|
|
122213
|
+
category: "other",
|
|
122214
|
+
defaultConsistencyModel: "authoritative",
|
|
122215
|
+
baseUrl: "https://api.phantombuster.com/api/v2",
|
|
122216
|
+
credentialPlacement: { kind: "header", header: "X-Phantombuster-Key" },
|
|
122217
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122218
|
+
test: { method: "GET", path: "/agents/fetch-all" },
|
|
122219
|
+
capabilities: [
|
|
122220
|
+
{
|
|
122221
|
+
name: "agents.fetch_all",
|
|
122222
|
+
class: "read",
|
|
122223
|
+
description: "List all Phantoms (agents) in the current organization.",
|
|
122224
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
122225
|
+
request: { method: "GET", path: "/agents/fetch-all" }
|
|
122226
|
+
},
|
|
122227
|
+
{
|
|
122228
|
+
name: "agents.fetch",
|
|
122229
|
+
class: "read",
|
|
122230
|
+
description: "Fetch the configuration and metadata of a single Phantom by its agent id.",
|
|
122231
|
+
parameters: {
|
|
122232
|
+
type: "object",
|
|
122233
|
+
properties: { id: { type: "string", description: "Id of the agent (Phantom) to fetch." } },
|
|
122234
|
+
required: ["id"]
|
|
122235
|
+
},
|
|
122236
|
+
request: { method: "GET", path: "/agents/fetch", query: { id: "{id}" } }
|
|
122237
|
+
},
|
|
122238
|
+
{
|
|
122239
|
+
name: "agents.launch",
|
|
122240
|
+
class: "mutation",
|
|
122241
|
+
description: "Launch a Phantom (agent), optionally passing arguments, and start a new run (container).",
|
|
122242
|
+
parameters: {
|
|
122243
|
+
type: "object",
|
|
122244
|
+
properties: {
|
|
122245
|
+
id: { type: "string", description: "Id of the agent (Phantom) to launch." },
|
|
122246
|
+
argument: {
|
|
122247
|
+
type: "object",
|
|
122248
|
+
description: "JSON object of arguments overriding the Phantom's saved configuration for this run."
|
|
122249
|
+
},
|
|
122250
|
+
bonusArgument: {
|
|
122251
|
+
type: "object",
|
|
122252
|
+
description: "Additional one-off arguments merged for this launch only."
|
|
122253
|
+
},
|
|
122254
|
+
saveArgument: {
|
|
122255
|
+
type: "boolean",
|
|
122256
|
+
description: "Persist the provided argument as the Phantom's default configuration."
|
|
122257
|
+
},
|
|
122258
|
+
manualLaunch: { type: "boolean", description: "Mark the launch as manual." }
|
|
122259
|
+
},
|
|
122260
|
+
required: ["id"]
|
|
122261
|
+
},
|
|
122262
|
+
request: {
|
|
122263
|
+
method: "POST",
|
|
122264
|
+
path: "/agents/launch",
|
|
122265
|
+
body: {
|
|
122266
|
+
id: "{id}",
|
|
122267
|
+
argument: "{argument}",
|
|
122268
|
+
bonusArgument: "{bonusArgument}",
|
|
122269
|
+
saveArgument: "{saveArgument}",
|
|
122270
|
+
manualLaunch: "{manualLaunch}"
|
|
122271
|
+
}
|
|
122272
|
+
},
|
|
122273
|
+
cas: "native-idempotency",
|
|
122274
|
+
externalEffect: true
|
|
122275
|
+
},
|
|
122276
|
+
{
|
|
122277
|
+
name: "agents.fetch_output",
|
|
122278
|
+
class: "read",
|
|
122279
|
+
description: "Retrieve the console output and most recent container status of a Phantom's run by agent id.",
|
|
122280
|
+
parameters: {
|
|
122281
|
+
type: "object",
|
|
122282
|
+
properties: {
|
|
122283
|
+
id: { type: "string", description: "Id of the agent to fetch output from." },
|
|
122284
|
+
fromOutputPos: {
|
|
122285
|
+
type: "number",
|
|
122286
|
+
description: "Position from which to start returning output."
|
|
122287
|
+
}
|
|
122288
|
+
},
|
|
122289
|
+
required: ["id"]
|
|
122290
|
+
},
|
|
122291
|
+
request: {
|
|
122292
|
+
method: "GET",
|
|
122293
|
+
path: "/agents/fetch-output",
|
|
122294
|
+
query: { id: "{id}", fromOutputPos: "{fromOutputPos}" }
|
|
122295
|
+
}
|
|
122296
|
+
},
|
|
122297
|
+
{
|
|
122298
|
+
name: "containers.fetch_output",
|
|
122299
|
+
class: "read",
|
|
122300
|
+
description: "Retrieve the console output of a specific Phantom run (container) by its container id.",
|
|
122301
|
+
parameters: {
|
|
122302
|
+
type: "object",
|
|
122303
|
+
properties: {
|
|
122304
|
+
id: {
|
|
122305
|
+
type: "string",
|
|
122306
|
+
description: "Id of the container (run) to fetch output from."
|
|
122307
|
+
}
|
|
122308
|
+
},
|
|
122309
|
+
required: ["id"]
|
|
122310
|
+
},
|
|
122311
|
+
request: { method: "GET", path: "/containers/fetch-output", query: { id: "{id}" } }
|
|
122312
|
+
}
|
|
122313
|
+
]
|
|
122314
|
+
});
|
|
122315
|
+
|
|
122316
|
+
// src/connectors/adapters/zenrows.ts
|
|
122317
|
+
var zenrowsConnector = declarativeRestConnector({
|
|
122318
|
+
kind: "zenrows",
|
|
122319
|
+
displayName: "ZenRows",
|
|
122320
|
+
description: "Render and scrape any web page through ZenRows' Universal Scraper API, handling proxy rotation, headless browsers, and anti-bot bypass.",
|
|
122321
|
+
auth: {
|
|
122322
|
+
kind: "api-key",
|
|
122323
|
+
hint: "API key from your ZenRows dashboard. Sent as the apikey query parameter."
|
|
122324
|
+
},
|
|
122325
|
+
category: "other",
|
|
122326
|
+
defaultConsistencyModel: "authoritative",
|
|
122327
|
+
baseUrl: "https://api.zenrows.com/v1/",
|
|
122328
|
+
credentialPlacement: { kind: "query", parameter: "apikey" },
|
|
122329
|
+
capabilities: [
|
|
122330
|
+
{
|
|
122331
|
+
name: "page.scrape",
|
|
122332
|
+
class: "read",
|
|
122333
|
+
description: "Fetch a URL and return its HTML, optionally rendering JavaScript and routing through premium residential proxies.",
|
|
122334
|
+
parameters: {
|
|
122335
|
+
type: "object",
|
|
122336
|
+
properties: {
|
|
122337
|
+
url: { type: "string", description: "Target URL to scrape." },
|
|
122338
|
+
js_render: { type: "boolean", description: "Render the page with a headless browser." },
|
|
122339
|
+
premium_proxy: {
|
|
122340
|
+
type: "boolean",
|
|
122341
|
+
description: "Route the request through residential proxies."
|
|
122342
|
+
},
|
|
122343
|
+
proxy_country: {
|
|
122344
|
+
type: "string",
|
|
122345
|
+
description: "Two-letter country code for proxy geolocation."
|
|
122346
|
+
},
|
|
122347
|
+
wait: {
|
|
122348
|
+
type: "integer",
|
|
122349
|
+
description: "Fixed delay in milliseconds after page load."
|
|
122350
|
+
},
|
|
122351
|
+
wait_for: {
|
|
122352
|
+
type: "string",
|
|
122353
|
+
description: "CSS selector to wait for in the DOM before returning."
|
|
122354
|
+
}
|
|
122355
|
+
},
|
|
122356
|
+
required: ["url"]
|
|
122357
|
+
},
|
|
122358
|
+
request: {
|
|
122359
|
+
method: "GET",
|
|
122360
|
+
path: "/",
|
|
122361
|
+
query: {
|
|
122362
|
+
url: "{url}",
|
|
122363
|
+
js_render: "{js_render}",
|
|
122364
|
+
premium_proxy: "{premium_proxy}",
|
|
122365
|
+
proxy_country: "{proxy_country}",
|
|
122366
|
+
wait: "{wait}",
|
|
122367
|
+
wait_for: "{wait_for}"
|
|
122368
|
+
}
|
|
122369
|
+
}
|
|
122370
|
+
},
|
|
122371
|
+
{
|
|
122372
|
+
name: "page.extract",
|
|
122373
|
+
class: "read",
|
|
122374
|
+
description: "Scrape a URL and return structured data extracted via CSS selectors or ZenRows' automatic parser.",
|
|
122375
|
+
parameters: {
|
|
122376
|
+
type: "object",
|
|
122377
|
+
properties: {
|
|
122378
|
+
url: { type: "string", description: "Target URL to scrape." },
|
|
122379
|
+
css_extractor: {
|
|
122380
|
+
type: "string",
|
|
122381
|
+
description: "JSON string mapping output keys to CSS selectors."
|
|
122382
|
+
},
|
|
122383
|
+
autoparse: {
|
|
122384
|
+
type: "boolean",
|
|
122385
|
+
description: "Automatically extract structured data from supported sites."
|
|
122386
|
+
},
|
|
122387
|
+
js_render: { type: "boolean", description: "Render the page with a headless browser." }
|
|
122388
|
+
},
|
|
122389
|
+
required: ["url"]
|
|
122390
|
+
},
|
|
122391
|
+
request: {
|
|
122392
|
+
method: "GET",
|
|
122393
|
+
path: "/",
|
|
122394
|
+
query: {
|
|
122395
|
+
url: "{url}",
|
|
122396
|
+
css_extractor: "{css_extractor}",
|
|
122397
|
+
autoparse: "{autoparse}",
|
|
122398
|
+
js_render: "{js_render}"
|
|
122399
|
+
}
|
|
122400
|
+
}
|
|
122401
|
+
},
|
|
122402
|
+
{
|
|
122403
|
+
name: "page.markdown",
|
|
122404
|
+
class: "read",
|
|
122405
|
+
description: "Fetch a URL and return its content converted to Markdown, plaintext, or PDF.",
|
|
122406
|
+
parameters: {
|
|
122407
|
+
type: "object",
|
|
122408
|
+
properties: {
|
|
122409
|
+
url: { type: "string", description: "Target URL to scrape." },
|
|
122410
|
+
response_type: {
|
|
122411
|
+
type: "string",
|
|
122412
|
+
description: "Output conversion type, e.g. markdown, plaintext, or pdf."
|
|
122413
|
+
},
|
|
122414
|
+
js_render: { type: "boolean", description: "Render the page with a headless browser." }
|
|
122415
|
+
},
|
|
122416
|
+
required: ["url"]
|
|
122417
|
+
},
|
|
122418
|
+
request: {
|
|
122419
|
+
method: "GET",
|
|
122420
|
+
path: "/",
|
|
122421
|
+
query: { url: "{url}", response_type: "{response_type}", js_render: "{js_render}" }
|
|
122422
|
+
}
|
|
122423
|
+
}
|
|
122424
|
+
]
|
|
122425
|
+
});
|
|
122426
|
+
|
|
122427
|
+
// src/connectors/adapters/ocean-io.ts
|
|
122428
|
+
var oceanIoConnector = declarativeRestConnector({
|
|
122429
|
+
kind: "ocean-io",
|
|
122430
|
+
displayName: "Ocean.io",
|
|
122431
|
+
description: "Lookalike B2B company and people search plus firmographic and contact enrichment. Build target lists from an ideal customer profile and enrich records.",
|
|
122432
|
+
auth: {
|
|
122433
|
+
kind: "api-key",
|
|
122434
|
+
hint: "API token from Settings -> API tokens. Sent as the X-Api-Token header."
|
|
122435
|
+
},
|
|
122436
|
+
category: "sales-intelligence",
|
|
122437
|
+
defaultConsistencyModel: "authoritative",
|
|
122438
|
+
baseUrl: "https://api.ocean.io",
|
|
122439
|
+
credentialPlacement: { kind: "header", header: "X-Api-Token" },
|
|
122440
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122441
|
+
capabilities: [
|
|
122442
|
+
{
|
|
122443
|
+
name: "companies.search",
|
|
122444
|
+
class: "read",
|
|
122445
|
+
description: "Search/lookalike companies by filters (location, size, industry, technologies) and/or seed lookalike domains.",
|
|
122446
|
+
parameters: {
|
|
122447
|
+
type: "object",
|
|
122448
|
+
properties: {
|
|
122449
|
+
companiesFilters: { type: "object" },
|
|
122450
|
+
lookalikeDomains: { type: "array", items: { type: "string" } },
|
|
122451
|
+
size: { type: "integer" },
|
|
122452
|
+
searchAfter: { type: "string" }
|
|
122453
|
+
},
|
|
122454
|
+
required: ["size"]
|
|
122455
|
+
},
|
|
122456
|
+
request: {
|
|
122457
|
+
method: "POST",
|
|
122458
|
+
path: "/v3/search/companies",
|
|
122459
|
+
body: {
|
|
122460
|
+
companiesFilters: "{companiesFilters}",
|
|
122461
|
+
lookalikeDomains: "{lookalikeDomains}",
|
|
122462
|
+
size: "{size}",
|
|
122463
|
+
searchAfter: "{searchAfter}"
|
|
122464
|
+
}
|
|
122465
|
+
}
|
|
122466
|
+
},
|
|
122467
|
+
{
|
|
122468
|
+
name: "people.search",
|
|
122469
|
+
class: "read",
|
|
122470
|
+
description: "Search people by persona filters (seniority, department) optionally scoped by company filters.",
|
|
122471
|
+
parameters: {
|
|
122472
|
+
type: "object",
|
|
122473
|
+
properties: {
|
|
122474
|
+
peopleFilters: { type: "object" },
|
|
122475
|
+
companiesFilters: { type: "object" },
|
|
122476
|
+
size: { type: "integer" },
|
|
122477
|
+
searchAfter: { type: "string" }
|
|
122478
|
+
},
|
|
122479
|
+
required: ["size"]
|
|
122480
|
+
},
|
|
122481
|
+
request: {
|
|
122482
|
+
method: "POST",
|
|
122483
|
+
path: "/v3/search/people",
|
|
122484
|
+
body: {
|
|
122485
|
+
peopleFilters: "{peopleFilters}",
|
|
122486
|
+
companiesFilters: "{companiesFilters}",
|
|
122487
|
+
size: "{size}",
|
|
122488
|
+
searchAfter: "{searchAfter}"
|
|
122489
|
+
}
|
|
122490
|
+
}
|
|
122491
|
+
},
|
|
122492
|
+
{
|
|
122493
|
+
name: "companies.enrich",
|
|
122494
|
+
class: "mutation",
|
|
122495
|
+
description: "Match one company against Ocean's database and return firmographic, technographic, and funding data. Costs 0.1 credits per result.",
|
|
122496
|
+
parameters: {
|
|
122497
|
+
type: "object",
|
|
122498
|
+
properties: { company: { type: "object" } },
|
|
122499
|
+
required: ["company"]
|
|
122500
|
+
},
|
|
122501
|
+
request: { method: "POST", path: "/v2/enrich/company", body: { company: "{company}" } },
|
|
122502
|
+
cas: "native-idempotency",
|
|
122503
|
+
externalEffect: false
|
|
122504
|
+
},
|
|
122505
|
+
{
|
|
122506
|
+
name: "people.enrich",
|
|
122507
|
+
class: "mutation",
|
|
122508
|
+
description: "Match one person against Ocean's database and return profile data; optionally trigger asynchronous email/phone reveal via webhook. Costs 0.1 credits per result.",
|
|
122509
|
+
parameters: {
|
|
122510
|
+
type: "object",
|
|
122511
|
+
properties: { person: { type: "object" }, revealEmails: { type: "object" } },
|
|
122512
|
+
required: ["person"]
|
|
122513
|
+
},
|
|
122514
|
+
request: {
|
|
122515
|
+
method: "POST",
|
|
122516
|
+
path: "/v2/enrich/person",
|
|
122517
|
+
body: { person: "{person}", revealEmails: "{revealEmails}" }
|
|
122518
|
+
},
|
|
122519
|
+
cas: "native-idempotency",
|
|
122520
|
+
externalEffect: false
|
|
122521
|
+
},
|
|
122522
|
+
{
|
|
122523
|
+
name: "companies.autocomplete",
|
|
122524
|
+
class: "read",
|
|
122525
|
+
description: "Type-ahead autocomplete for company name or domain, useful for picking seed companies for a lookalike search.",
|
|
122526
|
+
parameters: {
|
|
122527
|
+
type: "object",
|
|
122528
|
+
properties: { name: { type: "string" } },
|
|
122529
|
+
required: ["name"]
|
|
122530
|
+
},
|
|
122531
|
+
request: {
|
|
122532
|
+
method: "POST",
|
|
122533
|
+
path: "/v2/autocomplete/companies",
|
|
122534
|
+
body: { name: "{name}" }
|
|
122535
|
+
}
|
|
122536
|
+
}
|
|
122537
|
+
]
|
|
122538
|
+
});
|
|
122539
|
+
|
|
122540
|
+
// src/connectors/adapters/seamless-ai.ts
|
|
122541
|
+
var seamlessAiConnector = declarativeRestConnector({
|
|
122542
|
+
kind: "seamless-ai",
|
|
122543
|
+
displayName: "Seamless.ai",
|
|
122544
|
+
description: "Search and enrich B2B contact and company data, including verified emails, phone numbers, and job-change signals, for go-to-market prospecting.",
|
|
122545
|
+
auth: {
|
|
122546
|
+
kind: "api-key",
|
|
122547
|
+
hint: "API key from Settings -> API Key (Create New Connection). Sent as the Token header."
|
|
122548
|
+
},
|
|
122549
|
+
category: "sales-intelligence",
|
|
122550
|
+
defaultConsistencyModel: "authoritative",
|
|
122551
|
+
baseUrl: "https://api.seamless.ai/api/client/v1",
|
|
122552
|
+
credentialPlacement: { kind: "header", header: "Token" },
|
|
122553
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122554
|
+
capabilities: [
|
|
122555
|
+
{
|
|
122556
|
+
name: "contacts.search",
|
|
122557
|
+
class: "read",
|
|
122558
|
+
description: "Search for contacts by company, location, department, job title, seniority, and technologies. Returns search result ids used for research/enrichment.",
|
|
122559
|
+
parameters: {
|
|
122560
|
+
type: "object",
|
|
122561
|
+
properties: {
|
|
122562
|
+
jobTitle: { type: "array", items: { type: "string" } },
|
|
122563
|
+
seniority: { type: "array", items: { type: "string" } },
|
|
122564
|
+
companyDomain: { type: "array", items: { type: "string" } },
|
|
122565
|
+
industry: { type: "array", items: { type: "string" } },
|
|
122566
|
+
limit: { type: "integer" },
|
|
122567
|
+
nextToken: { type: "string" }
|
|
122568
|
+
},
|
|
122569
|
+
required: []
|
|
122570
|
+
},
|
|
122571
|
+
request: {
|
|
122572
|
+
method: "POST",
|
|
122573
|
+
path: "/search/contacts",
|
|
122574
|
+
body: {
|
|
122575
|
+
jobTitle: "{jobTitle}",
|
|
122576
|
+
seniority: "{seniority}",
|
|
122577
|
+
companyDomain: "{companyDomain}",
|
|
122578
|
+
industry: "{industry}",
|
|
122579
|
+
limit: "{limit}",
|
|
122580
|
+
nextToken: "{nextToken}"
|
|
122581
|
+
}
|
|
122582
|
+
}
|
|
122583
|
+
},
|
|
122584
|
+
{
|
|
122585
|
+
name: "companies.search",
|
|
122586
|
+
class: "read",
|
|
122587
|
+
description: "Search for companies by name, domain, location, industry, size, revenue, and technologies. Returns search result ids used for research/enrichment.",
|
|
122588
|
+
parameters: {
|
|
122589
|
+
type: "object",
|
|
122590
|
+
properties: {
|
|
122591
|
+
companyName: { type: "array", items: { type: "string" } },
|
|
122592
|
+
companyDomain: { type: "array", items: { type: "string" } },
|
|
122593
|
+
industry: { type: "array", items: { type: "string" } },
|
|
122594
|
+
companySize: { type: "array", items: { type: "string" } },
|
|
122595
|
+
technologies: { type: "array", items: { type: "string" } },
|
|
122596
|
+
limit: { type: "integer" },
|
|
122597
|
+
nextToken: { type: "string" }
|
|
122598
|
+
},
|
|
122599
|
+
required: []
|
|
122600
|
+
},
|
|
122601
|
+
request: {
|
|
122602
|
+
method: "POST",
|
|
122603
|
+
path: "/search/companies",
|
|
122604
|
+
body: {
|
|
122605
|
+
companyName: "{companyName}",
|
|
122606
|
+
companyDomain: "{companyDomain}",
|
|
122607
|
+
industry: "{industry}",
|
|
122608
|
+
companySize: "{companySize}",
|
|
122609
|
+
technologies: "{technologies}",
|
|
122610
|
+
limit: "{limit}",
|
|
122611
|
+
nextToken: "{nextToken}"
|
|
122612
|
+
}
|
|
122613
|
+
}
|
|
122614
|
+
},
|
|
122615
|
+
{
|
|
122616
|
+
name: "contacts.research",
|
|
122617
|
+
class: "mutation",
|
|
122618
|
+
description: "Research (enrich) contacts asynchronously by searchResultIds from a contact search, or by explicit contact identifiers, to reveal full profile, email, and phone.",
|
|
122619
|
+
parameters: {
|
|
122620
|
+
type: "object",
|
|
122621
|
+
properties: {
|
|
122622
|
+
searchResultIds: { type: "array", items: { type: "string" } },
|
|
122623
|
+
contacts: { type: "array", items: { type: "object" } },
|
|
122624
|
+
isJobChange: { type: "boolean" },
|
|
122625
|
+
skipDeduplicationCheck: { type: "boolean" }
|
|
122626
|
+
},
|
|
122627
|
+
required: []
|
|
122628
|
+
},
|
|
122629
|
+
request: {
|
|
122630
|
+
method: "POST",
|
|
122631
|
+
path: "/contacts/research",
|
|
122632
|
+
body: {
|
|
122633
|
+
searchResultIds: "{searchResultIds}",
|
|
122634
|
+
contacts: "{contacts}",
|
|
122635
|
+
isJobChange: "{isJobChange}",
|
|
122636
|
+
skipDeduplicationCheck: "{skipDeduplicationCheck}"
|
|
122637
|
+
}
|
|
122638
|
+
},
|
|
122639
|
+
cas: "native-idempotency",
|
|
122640
|
+
externalEffect: false
|
|
122641
|
+
},
|
|
122642
|
+
{
|
|
122643
|
+
name: "companies.research",
|
|
122644
|
+
class: "mutation",
|
|
122645
|
+
description: "Research (enrich) companies asynchronously by searchResultIds from a company search, or by direct company identifiers.",
|
|
122646
|
+
parameters: {
|
|
122647
|
+
type: "object",
|
|
122648
|
+
properties: {
|
|
122649
|
+
searchResultIds: { type: "array", items: { type: "string" } },
|
|
122650
|
+
companies: { type: "array", items: { type: "object" } },
|
|
122651
|
+
skipDeduplicationCheck: { type: "boolean" }
|
|
122652
|
+
},
|
|
122653
|
+
required: []
|
|
122654
|
+
},
|
|
122655
|
+
request: {
|
|
122656
|
+
method: "POST",
|
|
122657
|
+
path: "/companies/research",
|
|
122658
|
+
body: {
|
|
122659
|
+
searchResultIds: "{searchResultIds}",
|
|
122660
|
+
companies: "{companies}",
|
|
122661
|
+
skipDeduplicationCheck: "{skipDeduplicationCheck}"
|
|
122662
|
+
}
|
|
122663
|
+
},
|
|
122664
|
+
cas: "native-idempotency",
|
|
122665
|
+
externalEffect: false
|
|
122666
|
+
},
|
|
122667
|
+
{
|
|
122668
|
+
name: "contacts.research.poll",
|
|
122669
|
+
class: "read",
|
|
122670
|
+
description: "Poll for the results of a previously submitted contact research (enrichment) request by request id.",
|
|
122671
|
+
parameters: {
|
|
122672
|
+
type: "object",
|
|
122673
|
+
properties: { requestIds: { type: "array", items: { type: "string" } } },
|
|
122674
|
+
required: ["requestIds"]
|
|
122675
|
+
},
|
|
122676
|
+
request: {
|
|
122677
|
+
method: "GET",
|
|
122678
|
+
path: "/contacts/research/poll",
|
|
122679
|
+
query: { requestIds: "{requestIds}" }
|
|
122680
|
+
}
|
|
122681
|
+
}
|
|
122682
|
+
]
|
|
122683
|
+
});
|
|
122684
|
+
|
|
122685
|
+
// src/connectors/adapters/theirstack.ts
|
|
122686
|
+
var theirstackConnector = declarativeRestConnector({
|
|
122687
|
+
kind: "theirstack",
|
|
122688
|
+
displayName: "TheirStack",
|
|
122689
|
+
description: "Jobs and technographics data API. Search job postings and companies across 100+ countries, look up a company's tech stack, and detect buying intent.",
|
|
122690
|
+
auth: {
|
|
122691
|
+
kind: "api-key",
|
|
122692
|
+
hint: "API key from app.theirstack.com/settings/api. Sent as the Authorization: Bearer header."
|
|
122693
|
+
},
|
|
122694
|
+
category: "sales-intelligence",
|
|
122695
|
+
defaultConsistencyModel: "authoritative",
|
|
122696
|
+
baseUrl: "https://api.theirstack.com",
|
|
122697
|
+
credentialPlacement: { kind: "bearer" },
|
|
122698
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122699
|
+
test: { method: "GET", path: "/v0/billing/credit-balance" },
|
|
122700
|
+
capabilities: [
|
|
122701
|
+
{
|
|
122702
|
+
name: "jobs.search",
|
|
122703
|
+
class: "read",
|
|
122704
|
+
description: "Search job postings with filters (title, country, technology, posting recency, company). Requires at least one filter such as posted_at_max_age_days. Costs 1 credit per job returned.",
|
|
122705
|
+
parameters: {
|
|
122706
|
+
type: "object",
|
|
122707
|
+
properties: {
|
|
122708
|
+
posted_at_max_age_days: { type: "integer" },
|
|
122709
|
+
job_title_or: { type: "array", items: { type: "string" } },
|
|
122710
|
+
job_country_code_or: { type: "array", items: { type: "string" } },
|
|
122711
|
+
company_technology_slug_or: { type: "array", items: { type: "string" } },
|
|
122712
|
+
company_name_or: { type: "array", items: { type: "string" } },
|
|
122713
|
+
limit: { type: "integer" },
|
|
122714
|
+
page: { type: "integer" }
|
|
122715
|
+
},
|
|
122716
|
+
required: ["posted_at_max_age_days", "limit", "page"]
|
|
122717
|
+
},
|
|
122718
|
+
request: {
|
|
122719
|
+
method: "POST",
|
|
122720
|
+
path: "/v1/jobs/search",
|
|
122721
|
+
body: {
|
|
122722
|
+
posted_at_max_age_days: "{posted_at_max_age_days}",
|
|
122723
|
+
job_title_or: "{job_title_or}",
|
|
122724
|
+
job_country_code_or: "{job_country_code_or}",
|
|
122725
|
+
company_technology_slug_or: "{company_technology_slug_or}",
|
|
122726
|
+
company_name_or: "{company_name_or}",
|
|
122727
|
+
limit: "{limit}",
|
|
122728
|
+
page: "{page}"
|
|
122729
|
+
}
|
|
122730
|
+
}
|
|
122731
|
+
},
|
|
122732
|
+
{
|
|
122733
|
+
name: "companies.search",
|
|
122734
|
+
class: "read",
|
|
122735
|
+
description: "Search companies by country, technologies used, industry, funding, and nested job filters. Costs 3 credits per company returned.",
|
|
122736
|
+
parameters: {
|
|
122737
|
+
type: "object",
|
|
122738
|
+
properties: {
|
|
122739
|
+
company_country_code_or: { type: "array", items: { type: "string" } },
|
|
122740
|
+
company_technology_slug_or: { type: "array", items: { type: "string" } },
|
|
122741
|
+
industry_id_or: { type: "array", items: { type: "integer" } },
|
|
122742
|
+
min_funding_usd: { type: "integer" },
|
|
122743
|
+
max_funding_usd: { type: "integer" },
|
|
122744
|
+
limit: { type: "integer" },
|
|
122745
|
+
page: { type: "integer" }
|
|
122746
|
+
},
|
|
122747
|
+
required: ["limit", "page"]
|
|
122748
|
+
},
|
|
122749
|
+
request: {
|
|
122750
|
+
method: "POST",
|
|
122751
|
+
path: "/v1/companies/search",
|
|
122752
|
+
body: {
|
|
122753
|
+
company_country_code_or: "{company_country_code_or}",
|
|
122754
|
+
company_technology_slug_or: "{company_technology_slug_or}",
|
|
122755
|
+
industry_id_or: "{industry_id_or}",
|
|
122756
|
+
min_funding_usd: "{min_funding_usd}",
|
|
122757
|
+
max_funding_usd: "{max_funding_usd}",
|
|
122758
|
+
limit: "{limit}",
|
|
122759
|
+
page: "{page}"
|
|
122760
|
+
}
|
|
122761
|
+
}
|
|
122762
|
+
},
|
|
122763
|
+
{
|
|
122764
|
+
name: "companies.technologies",
|
|
122765
|
+
class: "read",
|
|
122766
|
+
description: "Look up the technologies (tech stack) detected for a company identified by domain, name, or LinkedIn URL. Costs 3 credits per company lookup.",
|
|
122767
|
+
parameters: {
|
|
122768
|
+
type: "object",
|
|
122769
|
+
properties: {
|
|
122770
|
+
company_domain: { type: "string" },
|
|
122771
|
+
company_name: { type: "string" },
|
|
122772
|
+
company_linkedin_url: { type: "string" },
|
|
122773
|
+
technology_slug_or: { type: "array", items: { type: "string" } }
|
|
122774
|
+
},
|
|
122775
|
+
required: ["company_domain"]
|
|
122776
|
+
},
|
|
122777
|
+
request: {
|
|
122778
|
+
method: "POST",
|
|
122779
|
+
path: "/v1/companies/technologies",
|
|
122780
|
+
body: {
|
|
122781
|
+
company_domain: "{company_domain}",
|
|
122782
|
+
company_name: "{company_name}",
|
|
122783
|
+
company_linkedin_url: "{company_linkedin_url}",
|
|
122784
|
+
technology_slug_or: "{technology_slug_or}"
|
|
122785
|
+
}
|
|
122786
|
+
}
|
|
122787
|
+
},
|
|
122788
|
+
{
|
|
122789
|
+
name: "companies.buying_intents",
|
|
122790
|
+
class: "read",
|
|
122791
|
+
description: "Retrieve buying-intent signals for a company identified by domain, name, or LinkedIn URL. Costs 3 credits per company lookup.",
|
|
122792
|
+
parameters: {
|
|
122793
|
+
type: "object",
|
|
122794
|
+
properties: {
|
|
122795
|
+
company_domain: { type: "string" },
|
|
122796
|
+
company_name: { type: "string" },
|
|
122797
|
+
company_linkedin_url: { type: "string" }
|
|
122798
|
+
},
|
|
122799
|
+
required: ["company_domain"]
|
|
122800
|
+
},
|
|
122801
|
+
request: {
|
|
122802
|
+
method: "POST",
|
|
122803
|
+
path: "/v1/companies/buying_intents",
|
|
122804
|
+
body: {
|
|
122805
|
+
company_domain: "{company_domain}",
|
|
122806
|
+
company_name: "{company_name}",
|
|
122807
|
+
company_linkedin_url: "{company_linkedin_url}"
|
|
122808
|
+
}
|
|
122809
|
+
}
|
|
122810
|
+
}
|
|
122811
|
+
]
|
|
122812
|
+
});
|
|
122813
|
+
|
|
122814
|
+
// src/connectors/adapters/usergems.ts
|
|
122815
|
+
var usergemsConnector = declarativeRestConnector({
|
|
122816
|
+
kind: "usergems",
|
|
122817
|
+
displayName: "UserGems",
|
|
122818
|
+
description: "Job-change and relationship tracking ingestion API. Add or remove contacts and accounts on watchlists so UserGems surfaces job-change and buying signals for them.",
|
|
122819
|
+
auth: {
|
|
122820
|
+
kind: "api-key",
|
|
122821
|
+
hint: "API key requested via support@usergems.com. Sent as the X-Api-Key header."
|
|
122822
|
+
},
|
|
122823
|
+
category: "sales-intelligence",
|
|
122824
|
+
defaultConsistencyModel: "authoritative",
|
|
122825
|
+
baseUrl: "https://api.usergems.com/v1",
|
|
122826
|
+
credentialPlacement: { kind: "header", header: "X-Api-Key" },
|
|
122827
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122828
|
+
capabilities: [
|
|
122829
|
+
{
|
|
122830
|
+
name: "contacts.add",
|
|
122831
|
+
class: "mutation",
|
|
122832
|
+
description: "Add a contact to your UserGems tracking list so job changes and signals are monitored. Email is required; many profile and custom signal fields are optional.",
|
|
122833
|
+
parameters: {
|
|
122834
|
+
type: "object",
|
|
122835
|
+
properties: {
|
|
122836
|
+
email: { type: "string" },
|
|
122837
|
+
firstName: { type: "string" },
|
|
122838
|
+
lastName: { type: "string" },
|
|
122839
|
+
fullName: { type: "string" },
|
|
122840
|
+
company: { type: "string" },
|
|
122841
|
+
relationshipType: { type: "string" },
|
|
122842
|
+
linkedinUrl: { type: "string" },
|
|
122843
|
+
signal: { type: "string" },
|
|
122844
|
+
custom: { type: "object" }
|
|
122845
|
+
},
|
|
122846
|
+
required: ["email"]
|
|
122847
|
+
},
|
|
122848
|
+
request: {
|
|
122849
|
+
method: "POST",
|
|
122850
|
+
path: "/contact",
|
|
122851
|
+
body: {
|
|
122852
|
+
email: "{email}",
|
|
122853
|
+
firstName: "{firstName}",
|
|
122854
|
+
lastName: "{lastName}",
|
|
122855
|
+
fullName: "{fullName}",
|
|
122856
|
+
company: "{company}",
|
|
122857
|
+
relationshipType: "{relationshipType}",
|
|
122858
|
+
linkedinUrl: "{linkedinUrl}",
|
|
122859
|
+
signal: "{signal}",
|
|
122860
|
+
custom: "{custom}"
|
|
122861
|
+
}
|
|
122862
|
+
},
|
|
122863
|
+
cas: "native-idempotency",
|
|
122864
|
+
externalEffect: true
|
|
122865
|
+
},
|
|
122866
|
+
{
|
|
122867
|
+
name: "contacts.delete",
|
|
122868
|
+
class: "mutation",
|
|
122869
|
+
description: "Remove a contact from your UserGems tracking list by email.",
|
|
122870
|
+
parameters: {
|
|
122871
|
+
type: "object",
|
|
122872
|
+
properties: {
|
|
122873
|
+
email: { type: "string" },
|
|
122874
|
+
relationshipType: { type: "string" },
|
|
122875
|
+
signal: { type: "string" }
|
|
122876
|
+
},
|
|
122877
|
+
required: ["email"]
|
|
122878
|
+
},
|
|
122879
|
+
request: {
|
|
122880
|
+
method: "DELETE",
|
|
122881
|
+
path: "/contact",
|
|
122882
|
+
body: {
|
|
122883
|
+
email: "{email}",
|
|
122884
|
+
relationshipType: "{relationshipType}",
|
|
122885
|
+
signal: "{signal}"
|
|
122886
|
+
}
|
|
122887
|
+
},
|
|
122888
|
+
cas: "native-idempotency",
|
|
122889
|
+
externalEffect: true
|
|
122890
|
+
},
|
|
122891
|
+
{
|
|
122892
|
+
name: "accounts.add",
|
|
122893
|
+
class: "mutation",
|
|
122894
|
+
description: "Add an account (company) for which you want to receive new-prospect and signal reports. Name and domain are required.",
|
|
122895
|
+
parameters: {
|
|
122896
|
+
type: "object",
|
|
122897
|
+
properties: {
|
|
122898
|
+
name: { type: "string" },
|
|
122899
|
+
domain: { type: "string" },
|
|
122900
|
+
reportName: { type: "string" },
|
|
122901
|
+
signal: { type: "string" },
|
|
122902
|
+
salesforceId: { type: "string" },
|
|
122903
|
+
customId: { type: "string" },
|
|
122904
|
+
custom: { type: "object" }
|
|
122905
|
+
},
|
|
122906
|
+
required: ["name", "domain"]
|
|
122907
|
+
},
|
|
122908
|
+
request: {
|
|
122909
|
+
method: "POST",
|
|
122910
|
+
path: "/account",
|
|
122911
|
+
body: {
|
|
122912
|
+
name: "{name}",
|
|
122913
|
+
domain: "{domain}",
|
|
122914
|
+
reportName: "{reportName}",
|
|
122915
|
+
signal: "{signal}",
|
|
122916
|
+
salesforceId: "{salesforceId}",
|
|
122917
|
+
customId: "{customId}",
|
|
122918
|
+
custom: "{custom}"
|
|
122919
|
+
}
|
|
122920
|
+
},
|
|
122921
|
+
cas: "native-idempotency",
|
|
122922
|
+
externalEffect: true
|
|
122923
|
+
},
|
|
122924
|
+
{
|
|
122925
|
+
name: "accounts.delete",
|
|
122926
|
+
class: "mutation",
|
|
122927
|
+
description: "Remove a previously added account by name and domain.",
|
|
122928
|
+
parameters: {
|
|
122929
|
+
type: "object",
|
|
122930
|
+
properties: {
|
|
122931
|
+
name: { type: "string" },
|
|
122932
|
+
domain: { type: "string" },
|
|
122933
|
+
reportName: { type: "string" },
|
|
122934
|
+
signal: { type: "string" },
|
|
122935
|
+
salesforceId: { type: "string" },
|
|
122936
|
+
customId: { type: "string" }
|
|
122937
|
+
},
|
|
122938
|
+
required: ["name", "domain"]
|
|
122939
|
+
},
|
|
122940
|
+
request: {
|
|
122941
|
+
method: "DELETE",
|
|
122942
|
+
path: "/account",
|
|
122943
|
+
body: {
|
|
122944
|
+
name: "{name}",
|
|
122945
|
+
domain: "{domain}",
|
|
122946
|
+
reportName: "{reportName}",
|
|
122947
|
+
signal: "{signal}",
|
|
122948
|
+
salesforceId: "{salesforceId}",
|
|
122949
|
+
customId: "{customId}"
|
|
122950
|
+
}
|
|
122951
|
+
},
|
|
122952
|
+
cas: "native-idempotency",
|
|
122953
|
+
externalEffect: true
|
|
122954
|
+
}
|
|
122955
|
+
]
|
|
122956
|
+
});
|
|
122957
|
+
|
|
122958
|
+
// src/connectors/adapters/hightouch.ts
|
|
122959
|
+
var hightouchConnector = declarativeRestConnector({
|
|
122960
|
+
kind: "hightouch",
|
|
122961
|
+
displayName: "Hightouch",
|
|
122962
|
+
description: "List and inspect Reverse ETL syncs, sources, destinations, and runs, and trigger sync runs.",
|
|
122963
|
+
auth: {
|
|
122964
|
+
kind: "api-key",
|
|
122965
|
+
hint: "API key from Settings -> API keys (Add API key). Sent as the Authorization: Bearer header."
|
|
122966
|
+
},
|
|
122967
|
+
category: "database",
|
|
122968
|
+
defaultConsistencyModel: "authoritative",
|
|
122969
|
+
baseUrl: "https://api.hightouch.com/api/v1",
|
|
122970
|
+
credentialPlacement: { kind: "bearer" },
|
|
122971
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
122972
|
+
test: { method: "GET", path: "/syncs" },
|
|
122973
|
+
capabilities: [
|
|
122974
|
+
{
|
|
122975
|
+
name: "syncs.list",
|
|
122976
|
+
class: "read",
|
|
122977
|
+
description: "List configured syncs in the workspace.",
|
|
122978
|
+
parameters: {
|
|
122979
|
+
type: "object",
|
|
122980
|
+
properties: {
|
|
122981
|
+
limit: { type: "integer" },
|
|
122982
|
+
offset: { type: "integer" },
|
|
122983
|
+
modelId: { type: "number" },
|
|
122984
|
+
slug: { type: "string" },
|
|
122985
|
+
orderBy: { type: "string" }
|
|
122986
|
+
},
|
|
122987
|
+
required: []
|
|
122988
|
+
},
|
|
122989
|
+
request: {
|
|
122990
|
+
method: "GET",
|
|
122991
|
+
path: "/syncs",
|
|
122992
|
+
query: {
|
|
122993
|
+
limit: "{limit}",
|
|
122994
|
+
offset: "{offset}",
|
|
122995
|
+
modelId: "{modelId}",
|
|
122996
|
+
slug: "{slug}",
|
|
122997
|
+
orderBy: "{orderBy}"
|
|
122998
|
+
}
|
|
122999
|
+
}
|
|
123000
|
+
},
|
|
123001
|
+
{
|
|
123002
|
+
name: "syncs.get",
|
|
123003
|
+
class: "read",
|
|
123004
|
+
description: "Retrieve a single sync by its id.",
|
|
123005
|
+
parameters: {
|
|
123006
|
+
type: "object",
|
|
123007
|
+
properties: { syncId: { type: "number" } },
|
|
123008
|
+
required: ["syncId"]
|
|
123009
|
+
},
|
|
123010
|
+
request: { method: "GET", path: "/syncs/{syncId}" }
|
|
123011
|
+
},
|
|
123012
|
+
{
|
|
123013
|
+
name: "syncs.list_runs",
|
|
123014
|
+
class: "read",
|
|
123015
|
+
description: "List the runs (execution history and status) for a sync.",
|
|
123016
|
+
parameters: {
|
|
123017
|
+
type: "object",
|
|
123018
|
+
properties: {
|
|
123019
|
+
syncId: { type: "number" },
|
|
123020
|
+
limit: { type: "integer" },
|
|
123021
|
+
offset: { type: "integer" },
|
|
123022
|
+
runId: { type: "number" },
|
|
123023
|
+
orderBy: { type: "string" }
|
|
123024
|
+
},
|
|
123025
|
+
required: ["syncId"]
|
|
123026
|
+
},
|
|
123027
|
+
request: {
|
|
123028
|
+
method: "GET",
|
|
123029
|
+
path: "/syncs/{syncId}/runs",
|
|
123030
|
+
query: {
|
|
123031
|
+
limit: "{limit}",
|
|
123032
|
+
offset: "{offset}",
|
|
123033
|
+
runId: "{runId}",
|
|
123034
|
+
orderBy: "{orderBy}"
|
|
123035
|
+
}
|
|
123036
|
+
}
|
|
123037
|
+
},
|
|
123038
|
+
{
|
|
123039
|
+
name: "sources.list",
|
|
123040
|
+
class: "read",
|
|
123041
|
+
description: "List configured data sources.",
|
|
123042
|
+
parameters: {
|
|
123043
|
+
type: "object",
|
|
123044
|
+
properties: {
|
|
123045
|
+
limit: { type: "integer" },
|
|
123046
|
+
offset: { type: "integer" },
|
|
123047
|
+
name: { type: "string" },
|
|
123048
|
+
slug: { type: "string" }
|
|
123049
|
+
},
|
|
123050
|
+
required: []
|
|
123051
|
+
},
|
|
123052
|
+
request: {
|
|
123053
|
+
method: "GET",
|
|
123054
|
+
path: "/sources",
|
|
123055
|
+
query: { limit: "{limit}", offset: "{offset}", name: "{name}", slug: "{slug}" }
|
|
123056
|
+
}
|
|
123057
|
+
},
|
|
123058
|
+
{
|
|
123059
|
+
name: "destinations.list",
|
|
123060
|
+
class: "read",
|
|
123061
|
+
description: "List configured destinations.",
|
|
123062
|
+
parameters: {
|
|
123063
|
+
type: "object",
|
|
123064
|
+
properties: {
|
|
123065
|
+
limit: { type: "integer" },
|
|
123066
|
+
offset: { type: "integer" },
|
|
123067
|
+
name: { type: "string" },
|
|
123068
|
+
slug: { type: "string" }
|
|
123069
|
+
},
|
|
123070
|
+
required: []
|
|
123071
|
+
},
|
|
123072
|
+
request: {
|
|
123073
|
+
method: "GET",
|
|
123074
|
+
path: "/destinations",
|
|
123075
|
+
query: { limit: "{limit}", offset: "{offset}", name: "{name}", slug: "{slug}" }
|
|
123076
|
+
}
|
|
123077
|
+
},
|
|
123078
|
+
{
|
|
123079
|
+
name: "syncs.trigger",
|
|
123080
|
+
class: "mutation",
|
|
123081
|
+
description: "Trigger a run of the given sync, optionally forcing a full resync.",
|
|
123082
|
+
parameters: {
|
|
123083
|
+
type: "object",
|
|
123084
|
+
properties: {
|
|
123085
|
+
syncId: { type: "string" },
|
|
123086
|
+
fullResync: { type: "boolean" },
|
|
123087
|
+
resetCDC: { type: "boolean" }
|
|
123088
|
+
},
|
|
123089
|
+
required: ["syncId"]
|
|
123090
|
+
},
|
|
123091
|
+
request: {
|
|
123092
|
+
method: "POST",
|
|
123093
|
+
path: "/syncs/{syncId}/trigger",
|
|
123094
|
+
body: { fullResync: "{fullResync}", resetCDC: "{resetCDC}" }
|
|
123095
|
+
},
|
|
123096
|
+
cas: "native-idempotency",
|
|
123097
|
+
externalEffect: true
|
|
123098
|
+
}
|
|
123099
|
+
]
|
|
123100
|
+
});
|
|
123101
|
+
|
|
123102
|
+
// src/connectors/adapters/polytomic.ts
|
|
123103
|
+
var polytomicConnector = declarativeRestConnector({
|
|
123104
|
+
kind: "polytomic",
|
|
123105
|
+
displayName: "Polytomic",
|
|
123106
|
+
description: "List and create ETL/reverse-ETL syncs, inspect sync status, and list available connection types.",
|
|
123107
|
+
auth: {
|
|
123108
|
+
kind: "api-key",
|
|
123109
|
+
hint: "API key generated in the Polytomic Settings panel. Sent as the Authorization: Bearer header."
|
|
123110
|
+
},
|
|
123111
|
+
category: "database",
|
|
123112
|
+
defaultConsistencyModel: "authoritative",
|
|
123113
|
+
baseUrl: "https://app.polytomic.com/api",
|
|
123114
|
+
credentialPlacement: { kind: "bearer" },
|
|
123115
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
123116
|
+
test: { method: "GET", path: "/me" },
|
|
123117
|
+
capabilities: [
|
|
123118
|
+
{
|
|
123119
|
+
name: "syncs.list",
|
|
123120
|
+
class: "read",
|
|
123121
|
+
description: "List configured syncs.",
|
|
123122
|
+
parameters: {
|
|
123123
|
+
type: "object",
|
|
123124
|
+
properties: {
|
|
123125
|
+
active: { type: "boolean" },
|
|
123126
|
+
mode: { type: "string" },
|
|
123127
|
+
target_connection_id: { type: "string" },
|
|
123128
|
+
limit: { type: "integer" },
|
|
123129
|
+
page_token: { type: "string" }
|
|
123130
|
+
},
|
|
123131
|
+
required: []
|
|
123132
|
+
},
|
|
123133
|
+
request: {
|
|
123134
|
+
method: "GET",
|
|
123135
|
+
path: "/syncs",
|
|
123136
|
+
query: {
|
|
123137
|
+
active: "{active}",
|
|
123138
|
+
mode: "{mode}",
|
|
123139
|
+
target_connection_id: "{target_connection_id}",
|
|
123140
|
+
limit: "{limit}",
|
|
123141
|
+
page_token: "{page_token}"
|
|
123142
|
+
}
|
|
123143
|
+
}
|
|
123144
|
+
},
|
|
123145
|
+
{
|
|
123146
|
+
name: "syncs.status",
|
|
123147
|
+
class: "read",
|
|
123148
|
+
description: "Get the current status of a sync by its id.",
|
|
123149
|
+
parameters: { type: "object", properties: { id: { type: "string" } }, required: ["id"] },
|
|
123150
|
+
request: { method: "GET", path: "/syncs/{id}/status" }
|
|
123151
|
+
},
|
|
123152
|
+
{
|
|
123153
|
+
name: "connection_types.list",
|
|
123154
|
+
class: "read",
|
|
123155
|
+
description: "List all connection types (source/destination connectors) supported by this deployment.",
|
|
123156
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
123157
|
+
request: { method: "GET", path: "/connection_types" }
|
|
123158
|
+
},
|
|
123159
|
+
{
|
|
123160
|
+
name: "syncs.create",
|
|
123161
|
+
class: "mutation",
|
|
123162
|
+
description: "Create a new sync from one or more models to a destination.",
|
|
123163
|
+
parameters: {
|
|
123164
|
+
type: "object",
|
|
123165
|
+
properties: {
|
|
123166
|
+
name: { type: "string" },
|
|
123167
|
+
target: { type: "object" },
|
|
123168
|
+
mode: { type: "string" },
|
|
123169
|
+
fields: { type: "array", items: { type: "object" } },
|
|
123170
|
+
schedule: { type: "object" }
|
|
123171
|
+
},
|
|
123172
|
+
required: ["name", "target", "mode", "fields"]
|
|
123173
|
+
},
|
|
123174
|
+
request: {
|
|
123175
|
+
method: "POST",
|
|
123176
|
+
path: "/syncs",
|
|
123177
|
+
body: {
|
|
123178
|
+
name: "{name}",
|
|
123179
|
+
target: "{target}",
|
|
123180
|
+
mode: "{mode}",
|
|
123181
|
+
fields: "{fields}",
|
|
123182
|
+
schedule: "{schedule}"
|
|
123183
|
+
}
|
|
123184
|
+
},
|
|
123185
|
+
cas: "native-idempotency",
|
|
123186
|
+
externalEffect: true
|
|
123187
|
+
}
|
|
123188
|
+
]
|
|
123189
|
+
});
|
|
123190
|
+
|
|
123191
|
+
// src/connectors/adapters/signwell.ts
|
|
123192
|
+
var signwellConnector = declarativeRestConnector({
|
|
123193
|
+
kind: "signwell",
|
|
123194
|
+
displayName: "SignWell",
|
|
123195
|
+
description: "Create and send documents for electronic signature, and list or retrieve documents.",
|
|
123196
|
+
auth: {
|
|
123197
|
+
kind: "api-key",
|
|
123198
|
+
hint: "API key from Settings -> API (Create API Key). Sent in the X-Api-Key header."
|
|
123199
|
+
},
|
|
123200
|
+
category: "other",
|
|
123201
|
+
defaultConsistencyModel: "authoritative",
|
|
123202
|
+
baseUrl: "https://www.signwell.com/api/v1",
|
|
123203
|
+
credentialPlacement: { kind: "header", header: "X-Api-Key" },
|
|
123204
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
123205
|
+
test: { method: "GET", path: "/me" },
|
|
123206
|
+
capabilities: [
|
|
123207
|
+
{
|
|
123208
|
+
name: "documents.list",
|
|
123209
|
+
class: "read",
|
|
123210
|
+
description: "List documents in the account.",
|
|
123211
|
+
parameters: {
|
|
123212
|
+
type: "object",
|
|
123213
|
+
properties: { page: { type: "integer" }, limit: { type: "integer" } },
|
|
123214
|
+
required: []
|
|
123215
|
+
},
|
|
123216
|
+
request: {
|
|
123217
|
+
method: "GET",
|
|
123218
|
+
path: "/documents",
|
|
123219
|
+
query: { page: "{page}", limit: "{limit}" }
|
|
123220
|
+
}
|
|
123221
|
+
},
|
|
123222
|
+
{
|
|
123223
|
+
name: "documents.get",
|
|
123224
|
+
class: "read",
|
|
123225
|
+
description: "Retrieve a single document by its id.",
|
|
123226
|
+
parameters: { type: "object", properties: { id: { type: "string" } }, required: ["id"] },
|
|
123227
|
+
request: { method: "GET", path: "/documents/{id}" }
|
|
123228
|
+
},
|
|
123229
|
+
{
|
|
123230
|
+
name: "account.get",
|
|
123231
|
+
class: "read",
|
|
123232
|
+
description: "Retrieve the account information associated with the API key.",
|
|
123233
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
123234
|
+
request: { method: "GET", path: "/me" }
|
|
123235
|
+
},
|
|
123236
|
+
{
|
|
123237
|
+
name: "documents.create",
|
|
123238
|
+
class: "mutation",
|
|
123239
|
+
description: "Create and optionally send a new document for signing. Set draft to true to create without sending.",
|
|
123240
|
+
parameters: {
|
|
123241
|
+
type: "object",
|
|
123242
|
+
properties: {
|
|
123243
|
+
files: { type: "array", items: { type: "object" } },
|
|
123244
|
+
recipients: { type: "array", items: { type: "object" } },
|
|
123245
|
+
name: { type: "string" },
|
|
123246
|
+
subject: { type: "string" },
|
|
123247
|
+
message: { type: "string" },
|
|
123248
|
+
draft: { type: "boolean" },
|
|
123249
|
+
test_mode: { type: "boolean" },
|
|
123250
|
+
embedded_signing: { type: "boolean" }
|
|
123251
|
+
},
|
|
123252
|
+
required: ["files", "recipients"]
|
|
123253
|
+
},
|
|
123254
|
+
request: {
|
|
123255
|
+
method: "POST",
|
|
123256
|
+
path: "/documents",
|
|
123257
|
+
body: {
|
|
123258
|
+
files: "{files}",
|
|
123259
|
+
recipients: "{recipients}",
|
|
123260
|
+
name: "{name}",
|
|
123261
|
+
subject: "{subject}",
|
|
123262
|
+
message: "{message}",
|
|
123263
|
+
draft: "{draft}",
|
|
123264
|
+
test_mode: "{test_mode}",
|
|
123265
|
+
embedded_signing: "{embedded_signing}"
|
|
123266
|
+
}
|
|
123267
|
+
},
|
|
123268
|
+
cas: "native-idempotency",
|
|
123269
|
+
externalEffect: true
|
|
123270
|
+
}
|
|
123271
|
+
]
|
|
123272
|
+
});
|
|
123273
|
+
|
|
123274
|
+
// src/connectors/adapters/justcall.ts
|
|
123275
|
+
var justcallConnector = declarativeRestConnector({
|
|
123276
|
+
kind: "justcall",
|
|
123277
|
+
displayName: "JustCall",
|
|
123278
|
+
description: "Cloud phone system and SMS platform. Place and list calls, manage contacts, and send SMS/MMS programmatically.",
|
|
123279
|
+
auth: {
|
|
123280
|
+
kind: "api-key",
|
|
123281
|
+
hint: 'Get your API Key and API Secret from JustCall Settings -> Developers. Paste them joined by a colon as "api_key:api_secret"; sent as the Authorization header.'
|
|
123282
|
+
},
|
|
123283
|
+
category: "comms",
|
|
123284
|
+
defaultConsistencyModel: "authoritative",
|
|
123285
|
+
baseUrl: "https://api.justcall.io/v2.1",
|
|
123286
|
+
credentialPlacement: { kind: "header", header: "Authorization" },
|
|
123287
|
+
defaultHeaders: { "content-type": "application/json", accept: "application/json" },
|
|
123288
|
+
test: { method: "GET", path: "/calls", query: { per_page: "1" } },
|
|
123289
|
+
capabilities: [
|
|
123290
|
+
{
|
|
123291
|
+
name: "calls.list",
|
|
123292
|
+
class: "read",
|
|
123293
|
+
description: "List call records linked to the account, with optional filters for number, direction, type, and date range.",
|
|
123294
|
+
parameters: {
|
|
123295
|
+
type: "object",
|
|
123296
|
+
properties: {
|
|
123297
|
+
page: { type: "integer" },
|
|
123298
|
+
per_page: { type: "integer" },
|
|
123299
|
+
contact_number: { type: "string" },
|
|
123300
|
+
from_datetime: { type: "string" },
|
|
123301
|
+
to_datetime: { type: "string" },
|
|
123302
|
+
call_direction: { type: "string" }
|
|
123303
|
+
},
|
|
123304
|
+
required: []
|
|
123305
|
+
},
|
|
123306
|
+
request: {
|
|
123307
|
+
method: "GET",
|
|
123308
|
+
path: "/calls",
|
|
123309
|
+
query: {
|
|
123310
|
+
page: "{page}",
|
|
123311
|
+
per_page: "{per_page}",
|
|
123312
|
+
contact_number: "{contact_number}",
|
|
123313
|
+
from_datetime: "{from_datetime}",
|
|
123314
|
+
to_datetime: "{to_datetime}",
|
|
123315
|
+
call_direction: "{call_direction}"
|
|
123316
|
+
}
|
|
123317
|
+
}
|
|
123318
|
+
},
|
|
123319
|
+
{
|
|
123320
|
+
name: "calls.get",
|
|
123321
|
+
class: "read",
|
|
123322
|
+
description: "Get a single Sales Dialer call by its unique call id.",
|
|
123323
|
+
parameters: { type: "object", properties: { id: { type: "integer" } }, required: ["id"] },
|
|
123324
|
+
request: { method: "GET", path: "/sales_dialer/calls/{id}" }
|
|
123325
|
+
},
|
|
123326
|
+
{
|
|
123327
|
+
name: "contacts.list",
|
|
123328
|
+
class: "read",
|
|
123329
|
+
description: "List contacts in the account, optionally filtered by name or number.",
|
|
123330
|
+
parameters: {
|
|
123331
|
+
type: "object",
|
|
123332
|
+
properties: {
|
|
123333
|
+
page: { type: "integer" },
|
|
123334
|
+
per_page: { type: "integer" },
|
|
123335
|
+
contact_number: { type: "string" },
|
|
123336
|
+
first_name: { type: "string" },
|
|
123337
|
+
last_name: { type: "string" },
|
|
123338
|
+
across_team: { type: "boolean" }
|
|
123339
|
+
},
|
|
123340
|
+
required: []
|
|
123341
|
+
},
|
|
123342
|
+
request: {
|
|
123343
|
+
method: "GET",
|
|
123344
|
+
path: "/contacts",
|
|
123345
|
+
query: {
|
|
123346
|
+
page: "{page}",
|
|
123347
|
+
per_page: "{per_page}",
|
|
123348
|
+
contact_number: "{contact_number}",
|
|
123349
|
+
first_name: "{first_name}",
|
|
123350
|
+
last_name: "{last_name}",
|
|
123351
|
+
across_team: "{across_team}"
|
|
123352
|
+
}
|
|
123353
|
+
}
|
|
123354
|
+
},
|
|
123355
|
+
{
|
|
123356
|
+
name: "contacts.create",
|
|
123357
|
+
class: "mutation",
|
|
123358
|
+
description: "Create a new contact in Sales Dialer.",
|
|
123359
|
+
parameters: {
|
|
123360
|
+
type: "object",
|
|
123361
|
+
properties: {
|
|
123362
|
+
name: { type: "string" },
|
|
123363
|
+
phone_number: { type: "string" },
|
|
123364
|
+
email: { type: "string" }
|
|
123365
|
+
},
|
|
123366
|
+
required: ["name", "phone_number"]
|
|
123367
|
+
},
|
|
123368
|
+
request: {
|
|
123369
|
+
method: "POST",
|
|
123370
|
+
path: "/sales_dialer/contacts",
|
|
123371
|
+
body: { name: "{name}", phone_number: "{phone_number}", email: "{email}" }
|
|
123372
|
+
},
|
|
123373
|
+
cas: "native-idempotency",
|
|
123374
|
+
externalEffect: true
|
|
123375
|
+
},
|
|
123376
|
+
{
|
|
123377
|
+
name: "sms.send",
|
|
123378
|
+
class: "mutation",
|
|
123379
|
+
description: "Send an SMS or MMS from a JustCall number to a contact number.",
|
|
123380
|
+
parameters: {
|
|
123381
|
+
type: "object",
|
|
123382
|
+
properties: {
|
|
123383
|
+
justcall_number: { type: "string" },
|
|
123384
|
+
contact_number: { type: "string" },
|
|
123385
|
+
body: { type: "string" },
|
|
123386
|
+
media_url: { type: "string" }
|
|
123387
|
+
},
|
|
123388
|
+
required: ["justcall_number", "contact_number", "body"]
|
|
123389
|
+
},
|
|
123390
|
+
request: {
|
|
123391
|
+
method: "POST",
|
|
123392
|
+
path: "/texts/new",
|
|
123393
|
+
body: {
|
|
123394
|
+
justcall_number: "{justcall_number}",
|
|
123395
|
+
contact_number: "{contact_number}",
|
|
123396
|
+
body: "{body}",
|
|
123397
|
+
media_url: "{media_url}"
|
|
123398
|
+
}
|
|
123399
|
+
},
|
|
123400
|
+
cas: "native-idempotency",
|
|
123401
|
+
externalEffect: true
|
|
123402
|
+
}
|
|
123403
|
+
]
|
|
123404
|
+
});
|
|
123405
|
+
|
|
123406
|
+
// src/connectors/adapters/nooks.ts
|
|
123407
|
+
var nooksConnector = declarativeRestConnector({
|
|
123408
|
+
kind: "nooks",
|
|
123409
|
+
displayName: "Nooks",
|
|
123410
|
+
description: "AI sales engagement and dialer platform. Read call records, prospects, and accounts from the Nooks Sequencing API.",
|
|
123411
|
+
auth: {
|
|
123412
|
+
kind: "api-key",
|
|
123413
|
+
hint: "Create a long-lived API key (nooks-api-...) in Nooks Developer Settings -> API Keys. Sent as the Authorization: Bearer header."
|
|
123414
|
+
},
|
|
123415
|
+
category: "comms",
|
|
123416
|
+
defaultConsistencyModel: "authoritative",
|
|
123417
|
+
baseUrl: "https://partner-api.nooks.in/v1",
|
|
123418
|
+
credentialPlacement: { kind: "bearer" },
|
|
123419
|
+
defaultHeaders: { "content-type": "application/json", accept: "application/json" },
|
|
123420
|
+
test: { method: "GET", path: "/me" },
|
|
123421
|
+
capabilities: [
|
|
123422
|
+
{
|
|
123423
|
+
name: "calls.list",
|
|
123424
|
+
class: "read",
|
|
123425
|
+
description: "List call records, with optional filters by prospect, account, or owner.",
|
|
123426
|
+
parameters: {
|
|
123427
|
+
type: "object",
|
|
123428
|
+
properties: {
|
|
123429
|
+
filter_prospect_id: { type: "string" },
|
|
123430
|
+
filter_account_id: { type: "string" },
|
|
123431
|
+
filter_owner_id: { type: "string" },
|
|
123432
|
+
include: { type: "string" }
|
|
123433
|
+
},
|
|
123434
|
+
required: []
|
|
123435
|
+
},
|
|
123436
|
+
request: {
|
|
123437
|
+
method: "GET",
|
|
123438
|
+
path: "/calls",
|
|
123439
|
+
query: {
|
|
123440
|
+
"filter[prospect][id]": "{filter_prospect_id}",
|
|
123441
|
+
"filter[account][id]": "{filter_account_id}",
|
|
123442
|
+
"filter[owner][id]": "{filter_owner_id}",
|
|
123443
|
+
include: "{include}"
|
|
123444
|
+
}
|
|
123445
|
+
}
|
|
123446
|
+
},
|
|
123447
|
+
{
|
|
123448
|
+
name: "calls.get",
|
|
123449
|
+
class: "read",
|
|
123450
|
+
description: "Get a single call record by its id.",
|
|
123451
|
+
parameters: {
|
|
123452
|
+
type: "object",
|
|
123453
|
+
properties: { id: { type: "string" }, include: { type: "string" } },
|
|
123454
|
+
required: ["id"]
|
|
123455
|
+
},
|
|
123456
|
+
request: { method: "GET", path: "/calls/{id}", query: { include: "{include}" } }
|
|
123457
|
+
},
|
|
123458
|
+
{
|
|
123459
|
+
name: "prospects.list",
|
|
123460
|
+
class: "read",
|
|
123461
|
+
description: "List prospects (contacts), with optional filters by name, email, or account.",
|
|
123462
|
+
parameters: {
|
|
123463
|
+
type: "object",
|
|
123464
|
+
properties: {
|
|
123465
|
+
filter_name: { type: "string" },
|
|
123466
|
+
filter_primaryEmail: { type: "string" },
|
|
123467
|
+
filter_account_id: { type: "string" },
|
|
123468
|
+
include: { type: "string" }
|
|
123469
|
+
},
|
|
123470
|
+
required: []
|
|
123471
|
+
},
|
|
123472
|
+
request: {
|
|
123473
|
+
method: "GET",
|
|
123474
|
+
path: "/prospects",
|
|
123475
|
+
query: {
|
|
123476
|
+
"filter[name]": "{filter_name}",
|
|
123477
|
+
"filter[primaryEmail]": "{filter_primaryEmail}",
|
|
123478
|
+
"filter[account][id]": "{filter_account_id}",
|
|
123479
|
+
include: "{include}"
|
|
123480
|
+
}
|
|
123481
|
+
}
|
|
123482
|
+
},
|
|
123483
|
+
{
|
|
123484
|
+
name: "accounts.list",
|
|
123485
|
+
class: "read",
|
|
123486
|
+
description: "List accounts, with optional filters by name, domain, or CRM id.",
|
|
123487
|
+
parameters: {
|
|
123488
|
+
type: "object",
|
|
123489
|
+
properties: {
|
|
123490
|
+
filter_name: { type: "string" },
|
|
123491
|
+
filter_domain: { type: "string" },
|
|
123492
|
+
filter_crmId: { type: "string" }
|
|
123493
|
+
},
|
|
123494
|
+
required: []
|
|
123495
|
+
},
|
|
123496
|
+
request: {
|
|
123497
|
+
method: "GET",
|
|
123498
|
+
path: "/accounts",
|
|
123499
|
+
query: {
|
|
123500
|
+
"filter[name]": "{filter_name}",
|
|
123501
|
+
"filter[domain]": "{filter_domain}",
|
|
123502
|
+
"filter[crmId]": "{filter_crmId}"
|
|
123503
|
+
}
|
|
123504
|
+
}
|
|
123505
|
+
},
|
|
123506
|
+
{
|
|
123507
|
+
name: "prospects.sync",
|
|
123508
|
+
class: "mutation",
|
|
123509
|
+
description: "Sync prospects from the connected CRM into Nooks.",
|
|
123510
|
+
parameters: { type: "object", properties: {}, required: [] },
|
|
123511
|
+
request: { method: "POST", path: "/integrations/prospects/sync", body: {} },
|
|
123512
|
+
cas: "native-idempotency",
|
|
123513
|
+
externalEffect: true
|
|
123514
|
+
}
|
|
123515
|
+
]
|
|
123516
|
+
});
|
|
123517
|
+
|
|
123518
|
+
// src/connectors/adapters/modjo.ts
|
|
123519
|
+
var modjoConnector = declarativeRestConnector({
|
|
123520
|
+
kind: "modjo",
|
|
123521
|
+
displayName: "Modjo",
|
|
123522
|
+
description: "Conversation intelligence platform. Export call records with transcripts and AI summaries, and list users and teams.",
|
|
123523
|
+
auth: {
|
|
123524
|
+
kind: "api-key",
|
|
123525
|
+
hint: "Create an API key in Modjo (Administrator or Manager role required); copy it immediately as it is shown only once. Sent as the X-API-KEY header."
|
|
123526
|
+
},
|
|
123527
|
+
category: "doc",
|
|
123528
|
+
defaultConsistencyModel: "authoritative",
|
|
123529
|
+
baseUrl: "https://api.modjo.ai",
|
|
123530
|
+
credentialPlacement: { kind: "header", header: "X-API-KEY" },
|
|
123531
|
+
defaultHeaders: { "content-type": "application/json", accept: "application/json" },
|
|
123532
|
+
test: { method: "GET", path: "/v1/users", query: { page: "1", perPage: "1" } },
|
|
123533
|
+
capabilities: [
|
|
123534
|
+
{
|
|
123535
|
+
name: "calls.export",
|
|
123536
|
+
class: "read",
|
|
123537
|
+
description: "Retrieve a paginated list of calls with optional relations such as transcripts, AI summaries, and contacts.",
|
|
123538
|
+
parameters: {
|
|
123539
|
+
type: "object",
|
|
123540
|
+
properties: {
|
|
123541
|
+
page: { type: "integer" },
|
|
123542
|
+
perPage: { type: "integer" },
|
|
123543
|
+
transcript: { type: "boolean" },
|
|
123544
|
+
aiSummary: { type: "boolean" },
|
|
123545
|
+
contacts: { type: "boolean" }
|
|
123546
|
+
},
|
|
123547
|
+
required: ["page", "perPage"]
|
|
123548
|
+
},
|
|
123549
|
+
request: {
|
|
123550
|
+
method: "POST",
|
|
123551
|
+
path: "/v1/calls/exports",
|
|
123552
|
+
body: {
|
|
123553
|
+
pagination: { page: "{page}", perPage: "{perPage}" },
|
|
123554
|
+
relations: {
|
|
123555
|
+
transcript: "{transcript}",
|
|
123556
|
+
aiSummary: "{aiSummary}",
|
|
123557
|
+
contacts: "{contacts}"
|
|
123558
|
+
}
|
|
123559
|
+
}
|
|
123560
|
+
}
|
|
123561
|
+
},
|
|
123562
|
+
{
|
|
123563
|
+
name: "users.list",
|
|
123564
|
+
class: "read",
|
|
123565
|
+
description: "Retrieve a paginated list of users in the Modjo workspace.",
|
|
123566
|
+
parameters: {
|
|
123567
|
+
type: "object",
|
|
123568
|
+
properties: { page: { type: "integer" }, perPage: { type: "integer" } },
|
|
123569
|
+
required: ["page", "perPage"]
|
|
123570
|
+
},
|
|
123571
|
+
request: {
|
|
123572
|
+
method: "GET",
|
|
123573
|
+
path: "/v1/users",
|
|
123574
|
+
query: { page: "{page}", perPage: "{perPage}" }
|
|
123575
|
+
}
|
|
123576
|
+
},
|
|
123577
|
+
{
|
|
123578
|
+
name: "teams.list",
|
|
123579
|
+
class: "read",
|
|
123580
|
+
description: "Retrieve a paginated list of teams in the Modjo workspace.",
|
|
123581
|
+
parameters: {
|
|
123582
|
+
type: "object",
|
|
123583
|
+
properties: { page: { type: "integer" }, perPage: { type: "integer" } },
|
|
123584
|
+
required: ["page", "perPage"]
|
|
123585
|
+
},
|
|
123586
|
+
request: {
|
|
123587
|
+
method: "GET",
|
|
123588
|
+
path: "/v1/teams",
|
|
123589
|
+
query: { page: "{page}", perPage: "{perPage}" }
|
|
123590
|
+
}
|
|
123591
|
+
}
|
|
123592
|
+
]
|
|
123593
|
+
});
|
|
123594
|
+
|
|
123595
|
+
// src/connectors/adapters/factors-ai.ts
|
|
123596
|
+
var factorsAiConnector = declarativeRestConnector({
|
|
123597
|
+
kind: "factors-ai",
|
|
123598
|
+
displayName: "Factors.ai",
|
|
123599
|
+
description: "B2B account intelligence and ABM platform. Retrieve the engagement journey (activity timeline) for a target account by domain.",
|
|
123600
|
+
auth: {
|
|
123601
|
+
kind: "api-key",
|
|
123602
|
+
hint: "Generate a private API token for the target project in Factors.ai. Sent as the Authorization: Bearer header."
|
|
123603
|
+
},
|
|
123604
|
+
category: "sales-intelligence",
|
|
123605
|
+
defaultConsistencyModel: "authoritative",
|
|
123606
|
+
baseUrl: "https://api.factors.ai/open/v1",
|
|
123607
|
+
credentialPlacement: { kind: "bearer" },
|
|
123608
|
+
defaultHeaders: { accept: "application/json" },
|
|
123609
|
+
test: { method: "GET", path: "/account/factors.ai/journey" },
|
|
123610
|
+
capabilities: [
|
|
123611
|
+
{
|
|
123612
|
+
name: "account.journey",
|
|
123613
|
+
class: "read",
|
|
123614
|
+
description: "Get the account journey (chronological engagement events) for a given account domain, optionally filtered by date range, event name, or user.",
|
|
123615
|
+
parameters: {
|
|
123616
|
+
type: "object",
|
|
123617
|
+
properties: {
|
|
123618
|
+
account_domain: { type: "string" },
|
|
123619
|
+
from: { type: "string" },
|
|
123620
|
+
to: { type: "string" },
|
|
123621
|
+
event_name: { type: "string" },
|
|
123622
|
+
user_name: { type: "string" }
|
|
123623
|
+
},
|
|
123624
|
+
required: ["account_domain"]
|
|
123625
|
+
},
|
|
123626
|
+
request: {
|
|
123627
|
+
method: "GET",
|
|
123628
|
+
path: "/account/{account_domain}/journey",
|
|
123629
|
+
query: {
|
|
123630
|
+
from: "{from}",
|
|
123631
|
+
to: "{to}",
|
|
123632
|
+
event_name: "{event_name}",
|
|
123633
|
+
user_name: "{user_name}"
|
|
123634
|
+
}
|
|
123635
|
+
}
|
|
123636
|
+
}
|
|
123637
|
+
]
|
|
123638
|
+
});
|
|
123639
|
+
|
|
123640
|
+
// src/connectors/adapters/getresponse.ts
|
|
123641
|
+
var getresponseConnector = declarativeRestConnector({
|
|
123642
|
+
kind: "getresponse",
|
|
123643
|
+
displayName: "GetResponse",
|
|
123644
|
+
description: "Email marketing platform for managing contacts, lists (campaigns), and sending newsletters.",
|
|
123645
|
+
auth: {
|
|
123646
|
+
kind: "api-key",
|
|
123647
|
+
hint: "Generate an API key at app.getresponse.com/api. Sent as the X-Auth-Token header with the 'api-key ' prefix (X-Auth-Token: api-key <KEY>)."
|
|
123648
|
+
},
|
|
123649
|
+
category: "crm",
|
|
123650
|
+
defaultConsistencyModel: "authoritative",
|
|
123651
|
+
baseUrl: "https://api.getresponse.com/v3",
|
|
123652
|
+
credentialPlacement: { kind: "header", header: "X-Auth-Token", prefix: "api-key " },
|
|
123653
|
+
defaultHeaders: { "content-type": "application/json" },
|
|
123654
|
+
test: { method: "GET", path: "/accounts" },
|
|
123655
|
+
capabilities: [
|
|
123656
|
+
{
|
|
123657
|
+
name: "contacts.list",
|
|
123658
|
+
class: "read",
|
|
123659
|
+
description: "List or search contacts, optionally filtered by email or campaign (list).",
|
|
123660
|
+
parameters: {
|
|
123661
|
+
type: "object",
|
|
123662
|
+
properties: {
|
|
123663
|
+
email: { type: "string" },
|
|
123664
|
+
campaignId: { type: "string" },
|
|
123665
|
+
page: { type: "integer" },
|
|
123666
|
+
perPage: { type: "integer" }
|
|
123667
|
+
},
|
|
123668
|
+
required: []
|
|
123669
|
+
},
|
|
123670
|
+
request: {
|
|
123671
|
+
method: "GET",
|
|
123672
|
+
path: "/contacts",
|
|
123673
|
+
query: {
|
|
123674
|
+
"query[email]": "{email}",
|
|
123675
|
+
"query[campaignId]": "{campaignId}",
|
|
123676
|
+
page: "{page}",
|
|
123677
|
+
perPage: "{perPage}"
|
|
123678
|
+
}
|
|
123679
|
+
}
|
|
123680
|
+
},
|
|
123681
|
+
{
|
|
123682
|
+
name: "campaigns.list",
|
|
123683
|
+
class: "read",
|
|
123684
|
+
description: "List campaigns (contact lists). The campaignId returned here is used when adding contacts or sending newsletters.",
|
|
123685
|
+
parameters: {
|
|
123686
|
+
type: "object",
|
|
123687
|
+
properties: {
|
|
123688
|
+
name: { type: "string" },
|
|
123689
|
+
page: { type: "integer" },
|
|
123690
|
+
perPage: { type: "integer" }
|
|
123691
|
+
},
|
|
123692
|
+
required: []
|
|
123693
|
+
},
|
|
123694
|
+
request: {
|
|
123695
|
+
method: "GET",
|
|
123696
|
+
path: "/campaigns",
|
|
123697
|
+
query: { "query[name]": "{name}", page: "{page}", perPage: "{perPage}" }
|
|
123698
|
+
}
|
|
123699
|
+
},
|
|
123700
|
+
{
|
|
123701
|
+
name: "contacts.create",
|
|
123702
|
+
class: "mutation",
|
|
123703
|
+
description: "Add (import) a contact to a campaign (list). Only email and campaign id are required.",
|
|
123704
|
+
parameters: {
|
|
123705
|
+
type: "object",
|
|
123706
|
+
properties: {
|
|
123707
|
+
email: { type: "string" },
|
|
123708
|
+
campaign_id: { type: "string" },
|
|
123709
|
+
name: { type: "string" },
|
|
123710
|
+
dayOfCycle: { type: "integer" }
|
|
123711
|
+
},
|
|
123712
|
+
required: ["email", "campaign_id"]
|
|
123713
|
+
},
|
|
123714
|
+
request: {
|
|
123715
|
+
method: "POST",
|
|
123716
|
+
path: "/contacts",
|
|
123717
|
+
body: {
|
|
123718
|
+
email: "{email}",
|
|
123719
|
+
name: "{name}",
|
|
123720
|
+
dayOfCycle: "{dayOfCycle}",
|
|
123721
|
+
campaign: { campaignId: "{campaign_id}" }
|
|
123722
|
+
}
|
|
123723
|
+
},
|
|
123724
|
+
cas: "native-idempotency",
|
|
123725
|
+
externalEffect: true
|
|
123726
|
+
},
|
|
123727
|
+
{
|
|
123728
|
+
name: "newsletters.create",
|
|
123729
|
+
class: "mutation",
|
|
123730
|
+
description: "Create and send a newsletter (broadcast email) to a campaign. Requires subject, fromFieldId, HTML content, and a target campaign.",
|
|
123731
|
+
parameters: {
|
|
123732
|
+
type: "object",
|
|
123733
|
+
properties: {
|
|
123734
|
+
subject: { type: "string" },
|
|
123735
|
+
fromFieldId: { type: "string" },
|
|
123736
|
+
html: { type: "string" },
|
|
123737
|
+
campaign_id: { type: "string" },
|
|
123738
|
+
name: { type: "string" }
|
|
123739
|
+
},
|
|
123740
|
+
required: ["subject", "fromFieldId", "html", "campaign_id"]
|
|
123741
|
+
},
|
|
123742
|
+
request: {
|
|
123743
|
+
method: "POST",
|
|
123744
|
+
path: "/newsletters",
|
|
123745
|
+
body: {
|
|
123746
|
+
name: "{name}",
|
|
123747
|
+
subject: "{subject}",
|
|
123748
|
+
fromField: { fromFieldId: "{fromFieldId}" },
|
|
123749
|
+
content: { html: "{html}" },
|
|
123750
|
+
campaign: { campaignId: "{campaign_id}" },
|
|
123751
|
+
sendSettings: { selectedCampaigns: ["{campaign_id}"] }
|
|
123752
|
+
}
|
|
123753
|
+
},
|
|
123754
|
+
cas: "native-idempotency",
|
|
123755
|
+
externalEffect: true
|
|
123756
|
+
}
|
|
123757
|
+
]
|
|
123758
|
+
});
|
|
123759
|
+
|
|
120262
123760
|
export {
|
|
120263
123761
|
InMemoryOAuthFlowStore,
|
|
120264
123762
|
startOAuthFlow,
|
|
@@ -120762,6 +124260,39 @@ export {
|
|
|
120762
124260
|
n8nConnector,
|
|
120763
124261
|
makeConnector,
|
|
120764
124262
|
pipedreamConnector,
|
|
124263
|
+
amplemarketConnector,
|
|
124264
|
+
heyreachConnector,
|
|
124265
|
+
lagrowthmachineConnector,
|
|
124266
|
+
saleshandyConnector,
|
|
124267
|
+
bettercontactConnector,
|
|
124268
|
+
contactoutConnector,
|
|
124269
|
+
findymailConnector,
|
|
124270
|
+
snovIoConnector,
|
|
124271
|
+
wizaConnector,
|
|
124272
|
+
builtwithConnector,
|
|
124273
|
+
commonRoomConnector,
|
|
124274
|
+
leadfeederConnector,
|
|
124275
|
+
serperConnector,
|
|
124276
|
+
warmlyConnector,
|
|
124277
|
+
autoboundConnector,
|
|
124278
|
+
crustdataConnector,
|
|
124279
|
+
fullenrichConnector,
|
|
124280
|
+
leadmagicConnector,
|
|
124281
|
+
brightdataConnector,
|
|
124282
|
+
phantombusterConnector,
|
|
124283
|
+
zenrowsConnector,
|
|
124284
|
+
oceanIoConnector,
|
|
124285
|
+
seamlessAiConnector,
|
|
124286
|
+
theirstackConnector,
|
|
124287
|
+
usergemsConnector,
|
|
124288
|
+
hightouchConnector,
|
|
124289
|
+
polytomicConnector,
|
|
124290
|
+
signwellConnector,
|
|
124291
|
+
justcallConnector,
|
|
124292
|
+
nooksConnector,
|
|
124293
|
+
modjoConnector,
|
|
124294
|
+
factorsAiConnector,
|
|
124295
|
+
getresponseConnector,
|
|
120765
124296
|
adapters_exports
|
|
120766
124297
|
};
|
|
120767
|
-
//# sourceMappingURL=chunk-
|
|
124298
|
+
//# sourceMappingURL=chunk-JKYPEVMS.js.map
|