flashrev-ai-enrich 1.0.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.
@@ -0,0 +1,2473 @@
1
+ export const CAPABILITIES = [
2
+ {
3
+ "id": "get_company_ceo",
4
+ "backendCapabilityId": "get_company_ceo",
5
+ "displayName": "Enrich Company -> Get Company CEO",
6
+ "name": "Get Company CEO",
7
+ "group": "Enrich Company",
8
+ "featId": "match_company_ceo",
9
+ "route": "company",
10
+ "concurrency": 3,
11
+ "inputFields": [
12
+ {
13
+ "key": "flashrev_company_id",
14
+ "label": "FlashRev Company ID"
15
+ },
16
+ {
17
+ "key": "company_name",
18
+ "label": "Company Name"
19
+ },
20
+ {
21
+ "key": "company_website",
22
+ "label": "Company Website"
23
+ },
24
+ {
25
+ "key": "company_linkedin",
26
+ "label": "Company LinkedIn"
27
+ },
28
+ {
29
+ "key": "company_country",
30
+ "label": "Company Country"
31
+ }
32
+ ],
33
+ "rules": [
34
+ [
35
+ "flashrev_company_id"
36
+ ],
37
+ [
38
+ "company_name"
39
+ ],
40
+ [
41
+ "company_website"
42
+ ],
43
+ [
44
+ "company_linkedin"
45
+ ],
46
+ [
47
+ "company_id"
48
+ ]
49
+ ],
50
+ "outputFields": [
51
+ {
52
+ "key": "person_id",
53
+ "type": "person_id"
54
+ },
55
+ {
56
+ "key": "person_name",
57
+ "type": "other"
58
+ },
59
+ {
60
+ "key": "job_title",
61
+ "type": "other"
62
+ },
63
+ {
64
+ "key": "linkedin_url",
65
+ "type": "linkedin_url"
66
+ },
67
+ {
68
+ "key": "crunchbase_url",
69
+ "type": "crunchbase_url"
70
+ }
71
+ ],
72
+ "dynamicOutput": false
73
+ },
74
+ {
75
+ "id": "get_person_location",
76
+ "backendCapabilityId": "get_person_location",
77
+ "displayName": "Enrich Person -> Get Location",
78
+ "name": "Get Location",
79
+ "group": "Enrich Person",
80
+ "featId": "enrich_prospect",
81
+ "route": "person",
82
+ "concurrency": 10,
83
+ "inputFields": [
84
+ {
85
+ "key": "flashrev_person_id",
86
+ "label": "FlashRev Person ID"
87
+ },
88
+ {
89
+ "key": "first_name",
90
+ "label": "First Name"
91
+ },
92
+ {
93
+ "key": "last_name",
94
+ "label": "Last Name"
95
+ },
96
+ {
97
+ "key": "full_name",
98
+ "label": "Full Name"
99
+ },
100
+ {
101
+ "key": "person_linkedin_url",
102
+ "label": "Person LinkedIn URL"
103
+ },
104
+ {
105
+ "key": "email",
106
+ "label": "Email"
107
+ },
108
+ {
109
+ "key": "phone",
110
+ "label": "Phone"
111
+ },
112
+ {
113
+ "key": "job_title",
114
+ "label": "Job Title"
115
+ },
116
+ {
117
+ "key": "city",
118
+ "label": "City"
119
+ },
120
+ {
121
+ "key": "company_name",
122
+ "label": "Company Name"
123
+ },
124
+ {
125
+ "key": "company_website",
126
+ "label": "Company Website"
127
+ },
128
+ {
129
+ "key": "company_linkedin",
130
+ "label": "Company LinkedIn"
131
+ },
132
+ {
133
+ "key": "company_country",
134
+ "label": "Company Country"
135
+ }
136
+ ],
137
+ "rules": [
138
+ [
139
+ "flashrev_person_id"
140
+ ],
141
+ [
142
+ "first_name",
143
+ "last_name",
144
+ "company_name"
145
+ ],
146
+ [
147
+ "full_name",
148
+ "company_name"
149
+ ],
150
+ [
151
+ "person_linkedin_url"
152
+ ],
153
+ [
154
+ "email"
155
+ ],
156
+ [
157
+ "phone"
158
+ ],
159
+ [
160
+ "first_name",
161
+ "last_name",
162
+ "company_website"
163
+ ],
164
+ [
165
+ "full_name",
166
+ "company_website"
167
+ ],
168
+ [
169
+ "first_name",
170
+ "last_name",
171
+ "job_title",
172
+ "city"
173
+ ],
174
+ [
175
+ "full_name",
176
+ "job_title",
177
+ "city"
178
+ ],
179
+ [
180
+ "first_name",
181
+ "last_name",
182
+ "company_linkedin"
183
+ ],
184
+ [
185
+ "full_name",
186
+ "company_linkedin"
187
+ ]
188
+ ],
189
+ "outputFields": [
190
+ {
191
+ "key": "person_country",
192
+ "type": "other"
193
+ },
194
+ {
195
+ "key": "person_state",
196
+ "type": "other"
197
+ },
198
+ {
199
+ "key": "person_city",
200
+ "type": "other"
201
+ }
202
+ ],
203
+ "dynamicOutput": false
204
+ },
205
+ {
206
+ "id": "verify_phone",
207
+ "backendCapabilityId": "verify_phone",
208
+ "displayName": "Enrich Person -> Verify Phone",
209
+ "name": "Verify Phone",
210
+ "group": "Enrich Person",
211
+ "featId": "verify_phone_number",
212
+ "route": "verify_phone",
213
+ "concurrency": 5,
214
+ "inputFields": [
215
+ {
216
+ "key": "phone_number",
217
+ "label": "Phone Number"
218
+ }
219
+ ],
220
+ "rules": [
221
+ [
222
+ "phone_number"
223
+ ]
224
+ ],
225
+ "outputFields": [
226
+ {
227
+ "key": "line_type",
228
+ "type": "other"
229
+ },
230
+ {
231
+ "key": "fake_number",
232
+ "type": "other"
233
+ },
234
+ {
235
+ "key": "phone_company",
236
+ "type": "other"
237
+ },
238
+ {
239
+ "key": "phone_location",
240
+ "type": "other"
241
+ }
242
+ ],
243
+ "dynamicOutput": false
244
+ },
245
+ {
246
+ "id": "get_company_last_linkedin_post",
247
+ "backendCapabilityId": "get_company_last_linkedin_post",
248
+ "displayName": "Enrich Company -> Get Latest Linkedin Post",
249
+ "name": "Get Latest Linkedin Post",
250
+ "group": "Enrich Company",
251
+ "featId": "enrich_company",
252
+ "route": "company",
253
+ "concurrency": 2,
254
+ "inputFields": [
255
+ {
256
+ "key": "flashrev_company_id",
257
+ "label": "FlashRev Company ID"
258
+ },
259
+ {
260
+ "key": "company_name",
261
+ "label": "Company Name"
262
+ },
263
+ {
264
+ "key": "company_website",
265
+ "label": "Company Website"
266
+ },
267
+ {
268
+ "key": "company_linkedin_url",
269
+ "label": "Company LinkedIn URL"
270
+ }
271
+ ],
272
+ "rules": [
273
+ [
274
+ "company_name"
275
+ ],
276
+ [
277
+ "flashrev_company_id"
278
+ ],
279
+ [
280
+ "company_website"
281
+ ],
282
+ [
283
+ "company_linkedin"
284
+ ]
285
+ ],
286
+ "outputFields": [
287
+ {
288
+ "key": "content",
289
+ "type": "other"
290
+ },
291
+ {
292
+ "key": "time",
293
+ "type": "other"
294
+ },
295
+ {
296
+ "key": "detail_link",
297
+ "type": "other"
298
+ },
299
+ {
300
+ "key": "publisher_url",
301
+ "type": "other"
302
+ },
303
+ {
304
+ "key": "title",
305
+ "type": "other"
306
+ },
307
+ {
308
+ "key": "author",
309
+ "type": "other"
310
+ }
311
+ ],
312
+ "dynamicOutput": false
313
+ },
314
+ {
315
+ "id": "google_search",
316
+ "backendCapabilityId": "google_search",
317
+ "displayName": "FlashAgent -> Google Search",
318
+ "name": "Google Search",
319
+ "group": "FlashAgent",
320
+ "featId": "enrich_flashagent",
321
+ "route": "flashagent",
322
+ "concurrency": 10,
323
+ "inputFields": [
324
+ {
325
+ "key": "query",
326
+ "label": "Query"
327
+ },
328
+ {
329
+ "key": "language",
330
+ "label": "Language"
331
+ },
332
+ {
333
+ "key": "time_range",
334
+ "label": "Date Range"
335
+ },
336
+ {
337
+ "key": "params",
338
+ "label": "params"
339
+ }
340
+ ],
341
+ "rules": [
342
+ [
343
+ "query"
344
+ ]
345
+ ],
346
+ "outputFields": [
347
+ {
348
+ "key": "top_1_title",
349
+ "type": "other"
350
+ },
351
+ {
352
+ "key": "top_1_snippet",
353
+ "type": "other"
354
+ },
355
+ {
356
+ "key": "top_1_url",
357
+ "type": "other"
358
+ },
359
+ {
360
+ "key": "top_2_title",
361
+ "type": "other"
362
+ },
363
+ {
364
+ "key": "top_2_snippet",
365
+ "type": "other"
366
+ },
367
+ {
368
+ "key": "top_2_url",
369
+ "type": "other"
370
+ },
371
+ {
372
+ "key": "top_3_title",
373
+ "type": "other"
374
+ },
375
+ {
376
+ "key": "top_3_snippet",
377
+ "type": "other"
378
+ },
379
+ {
380
+ "key": "top_3_url",
381
+ "type": "other"
382
+ },
383
+ {
384
+ "key": "all_top_3_content",
385
+ "type": "other"
386
+ },
387
+ {
388
+ "key": "all_top_3_titles",
389
+ "type": "other"
390
+ },
391
+ {
392
+ "key": "all_titles",
393
+ "type": "other"
394
+ },
395
+ {
396
+ "key": "all_content",
397
+ "type": "other"
398
+ }
399
+ ],
400
+ "dynamicOutput": false
401
+ },
402
+ {
403
+ "id": "get_company_location",
404
+ "backendCapabilityId": "get_company_location",
405
+ "displayName": "Enrich Company -> Get Location",
406
+ "name": "Get Location",
407
+ "group": "Enrich Company",
408
+ "featId": "enrich_company",
409
+ "route": "company",
410
+ "concurrency": 10,
411
+ "inputFields": [
412
+ {
413
+ "key": "flashrev_company_id",
414
+ "label": "FlashRev Company ID"
415
+ },
416
+ {
417
+ "key": "company_name",
418
+ "label": "Company Name"
419
+ },
420
+ {
421
+ "key": "company_website",
422
+ "label": "Company Website"
423
+ },
424
+ {
425
+ "key": "company_linkedin",
426
+ "label": "Company LinkedIn"
427
+ },
428
+ {
429
+ "key": "company_country",
430
+ "label": "Company Country"
431
+ }
432
+ ],
433
+ "rules": [
434
+ [
435
+ "flashrev_company_id"
436
+ ],
437
+ [
438
+ "company_name"
439
+ ],
440
+ [
441
+ "company_website"
442
+ ],
443
+ [
444
+ "company_linkedin"
445
+ ]
446
+ ],
447
+ "outputFields": [
448
+ {
449
+ "key": "flashrev_company_id",
450
+ "type": "company_id"
451
+ },
452
+ {
453
+ "key": "company_name",
454
+ "type": "company_name"
455
+ },
456
+ {
457
+ "key": "city",
458
+ "type": "city"
459
+ },
460
+ {
461
+ "key": "country",
462
+ "type": "country"
463
+ },
464
+ {
465
+ "key": "state",
466
+ "type": "state"
467
+ }
468
+ ],
469
+ "dynamicOutput": false
470
+ },
471
+ {
472
+ "id": "get_company_executives",
473
+ "backendCapabilityId": "get_company_executives",
474
+ "displayName": "Enrich Company -> Get Company Executives",
475
+ "name": "Get Company Executives",
476
+ "group": "Enrich Company",
477
+ "featId": "match_company_executives",
478
+ "route": "company",
479
+ "concurrency": 3,
480
+ "inputFields": [
481
+ {
482
+ "key": "job_title",
483
+ "label": "Job Title"
484
+ },
485
+ {
486
+ "key": "flashrev_company_id",
487
+ "label": "FlashRev Company ID"
488
+ },
489
+ {
490
+ "key": "company_name",
491
+ "label": "Company Name"
492
+ },
493
+ {
494
+ "key": "company_website",
495
+ "label": "Company Website"
496
+ },
497
+ {
498
+ "key": "company_linkedin",
499
+ "label": "Company LinkedIn"
500
+ },
501
+ {
502
+ "key": "company_country",
503
+ "label": "Company Country"
504
+ },
505
+ {
506
+ "key": "location",
507
+ "label": "Location"
508
+ }
509
+ ],
510
+ "rules": [
511
+ [
512
+ "flashrev_company_id",
513
+ "job_title"
514
+ ],
515
+ [
516
+ "company_name",
517
+ "job_title"
518
+ ],
519
+ [
520
+ "company_website",
521
+ "job_title"
522
+ ],
523
+ [
524
+ "company_linkedin",
525
+ "job_title"
526
+ ]
527
+ ],
528
+ "outputFields": [
529
+ {
530
+ "key": "top_1_flashrev_person_id",
531
+ "type": "person_id"
532
+ },
533
+ {
534
+ "key": "top_1_name",
535
+ "type": "person_name"
536
+ },
537
+ {
538
+ "key": "top_1_title",
539
+ "type": "job_title"
540
+ },
541
+ {
542
+ "key": "top_1_linkedin_url",
543
+ "type": "linkedin_url"
544
+ },
545
+ {
546
+ "key": "top_1_crunchbase_url",
547
+ "type": "crunchbase_url"
548
+ },
549
+ {
550
+ "key": "top_2_flashrev_person_id",
551
+ "type": "person_id"
552
+ },
553
+ {
554
+ "key": "top_2_name",
555
+ "type": "person_name"
556
+ },
557
+ {
558
+ "key": "top_2_title",
559
+ "type": "job_title"
560
+ },
561
+ {
562
+ "key": "top_2_linkedin_url",
563
+ "type": "linkedin_url"
564
+ },
565
+ {
566
+ "key": "top_2_crunchbase_url",
567
+ "type": "crunchbase_url"
568
+ },
569
+ {
570
+ "key": "top_3_flashrev_person_id",
571
+ "type": "person_id"
572
+ },
573
+ {
574
+ "key": "top_3_name",
575
+ "type": "person_name"
576
+ },
577
+ {
578
+ "key": "top_3_title",
579
+ "type": "job_title"
580
+ },
581
+ {
582
+ "key": "top_3_linkedin_url",
583
+ "type": "linkedin_url"
584
+ },
585
+ {
586
+ "key": "top_3_crunchbase_url",
587
+ "type": "crunchbase_url"
588
+ },
589
+ {
590
+ "key": "all_flashrev_person_ids",
591
+ "type": "other"
592
+ },
593
+ {
594
+ "key": "all_names",
595
+ "type": "other"
596
+ },
597
+ {
598
+ "key": "all_titles",
599
+ "type": "other"
600
+ },
601
+ {
602
+ "key": "all_linkedin_urls",
603
+ "type": "other"
604
+ },
605
+ {
606
+ "key": "all_crunchbase_urls",
607
+ "type": "other"
608
+ }
609
+ ],
610
+ "dynamicOutput": false
611
+ },
612
+ {
613
+ "id": "scrape_website",
614
+ "backendCapabilityId": "scrape_website",
615
+ "displayName": "FlashAgent -> Scrape Single Page",
616
+ "name": "Scrape Single Page",
617
+ "group": "FlashAgent",
618
+ "featId": "enrich_flashagent",
619
+ "route": "flashagent",
620
+ "concurrency": 2,
621
+ "inputFields": [
622
+ {
623
+ "key": "url",
624
+ "label": "Website"
625
+ }
626
+ ],
627
+ "rules": [
628
+ [
629
+ "url"
630
+ ]
631
+ ],
632
+ "outputFields": [
633
+ {
634
+ "key": "title",
635
+ "type": "other"
636
+ },
637
+ {
638
+ "key": "description",
639
+ "type": "other"
640
+ },
641
+ {
642
+ "key": "site_name",
643
+ "type": "other"
644
+ },
645
+ {
646
+ "key": "all_content",
647
+ "type": "other"
648
+ }
649
+ ],
650
+ "dynamicOutput": false
651
+ },
652
+ {
653
+ "id": "get_person_linkedin_certificates",
654
+ "backendCapabilityId": "get_person_linkedin_certificates",
655
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn Certifications",
656
+ "name": "Realtime Scrape LinkedIn Certifications",
657
+ "group": "Enrich Person",
658
+ "featId": "enrich_prospect",
659
+ "route": "person",
660
+ "concurrency": 1,
661
+ "inputFields": [
662
+ {
663
+ "key": "linkedin_url",
664
+ "label": "Person Linkedin URL"
665
+ }
666
+ ],
667
+ "rules": [
668
+ [
669
+ "linkedin_url"
670
+ ]
671
+ ],
672
+ "outputFields": [
673
+ {
674
+ "key": "all_certificates",
675
+ "type": "other"
676
+ }
677
+ ],
678
+ "dynamicOutput": false
679
+ },
680
+ {
681
+ "id": "get_person_linkedin_all_education",
682
+ "backendCapabilityId": "get_person_linkedin_all_education",
683
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn All Education Experiences",
684
+ "name": "Realtime Scrape LinkedIn All Education Experiences",
685
+ "group": "Enrich Person",
686
+ "featId": "enrich_prospect",
687
+ "route": "person",
688
+ "concurrency": 1,
689
+ "inputFields": [
690
+ {
691
+ "key": "linkedin_url",
692
+ "label": "Person Linkedin URL"
693
+ }
694
+ ],
695
+ "rules": [
696
+ [
697
+ "linkedin_url"
698
+ ]
699
+ ],
700
+ "outputFields": [
701
+ {
702
+ "key": "all_education",
703
+ "type": "other"
704
+ }
705
+ ],
706
+ "dynamicOutput": false
707
+ },
708
+ {
709
+ "id": "get_person_linkedin_all_experience",
710
+ "backendCapabilityId": "get_person_linkedin_all_experience",
711
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn All Work Experiences",
712
+ "name": "Realtime Scrape LinkedIn All Work Experiences",
713
+ "group": "Enrich Person",
714
+ "featId": "enrich_prospect",
715
+ "route": "person",
716
+ "concurrency": 1,
717
+ "inputFields": [
718
+ {
719
+ "key": "linkedin_url",
720
+ "label": "Person Linkedin URL"
721
+ }
722
+ ],
723
+ "rules": [
724
+ [
725
+ "linkedin_url"
726
+ ]
727
+ ],
728
+ "outputFields": [
729
+ {
730
+ "key": "all_work_experience",
731
+ "type": "other"
732
+ }
733
+ ],
734
+ "dynamicOutput": false
735
+ },
736
+ {
737
+ "id": "get_person_linkedin_skill",
738
+ "backendCapabilityId": "get_person_linkedin_skill",
739
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn All Skills",
740
+ "name": "Realtime Scrape LinkedIn All Skills",
741
+ "group": "Enrich Person",
742
+ "featId": "enrich_prospect",
743
+ "route": "person",
744
+ "concurrency": 1,
745
+ "inputFields": [
746
+ {
747
+ "key": "linkedin_url",
748
+ "label": "Person Linkedin URL"
749
+ }
750
+ ],
751
+ "rules": [
752
+ [
753
+ "linkedin_url"
754
+ ]
755
+ ],
756
+ "outputFields": [
757
+ {
758
+ "key": "all_skills",
759
+ "type": "other"
760
+ }
761
+ ],
762
+ "dynamicOutput": false
763
+ },
764
+ {
765
+ "id": "get_person_id",
766
+ "backendCapabilityId": "get_person_id",
767
+ "displayName": "Enrich Person -> Match Person ID",
768
+ "name": "Match Person ID",
769
+ "group": "Enrich Person",
770
+ "featId": "enrich_prospect",
771
+ "route": "person",
772
+ "concurrency": 10,
773
+ "inputFields": [
774
+ {
775
+ "key": "first_name",
776
+ "label": "First Name"
777
+ },
778
+ {
779
+ "key": "last_name",
780
+ "label": "Last Name"
781
+ },
782
+ {
783
+ "key": "full_name",
784
+ "label": "Full Name"
785
+ },
786
+ {
787
+ "key": "person_linkedin_url",
788
+ "label": "Person LinkedIn URL"
789
+ },
790
+ {
791
+ "key": "email",
792
+ "label": "Email"
793
+ },
794
+ {
795
+ "key": "phone",
796
+ "label": "Phone"
797
+ },
798
+ {
799
+ "key": "job_title",
800
+ "label": "Job Title"
801
+ },
802
+ {
803
+ "key": "city",
804
+ "label": "City"
805
+ },
806
+ {
807
+ "key": "company_name",
808
+ "label": "Company Name"
809
+ },
810
+ {
811
+ "key": "company_website",
812
+ "label": "Company Website"
813
+ },
814
+ {
815
+ "key": "company_linkedin",
816
+ "label": "Company LinkedIn"
817
+ },
818
+ {
819
+ "key": "company_country",
820
+ "label": "Company Country"
821
+ }
822
+ ],
823
+ "rules": [
824
+ [
825
+ "first_name",
826
+ "last_name",
827
+ "company_name"
828
+ ],
829
+ [
830
+ "flashrev_person_id"
831
+ ],
832
+ [
833
+ "full_name",
834
+ "company_name"
835
+ ],
836
+ [
837
+ "person_linkedin_url"
838
+ ],
839
+ [
840
+ "email"
841
+ ],
842
+ [
843
+ "phone"
844
+ ],
845
+ [
846
+ "first_name",
847
+ "last_name",
848
+ "company_website"
849
+ ],
850
+ [
851
+ "full_name",
852
+ "company_website"
853
+ ],
854
+ [
855
+ "first_name",
856
+ "last_name",
857
+ "job_title",
858
+ "city"
859
+ ],
860
+ [
861
+ "full_name",
862
+ "job_title",
863
+ "city"
864
+ ],
865
+ [
866
+ "first_name",
867
+ "last_name",
868
+ "company_linkedin"
869
+ ],
870
+ [
871
+ "full_name",
872
+ "company_linkedin"
873
+ ]
874
+ ],
875
+ "outputFields": [
876
+ {
877
+ "key": "person_id",
878
+ "type": "person_id"
879
+ }
880
+ ],
881
+ "dynamicOutput": false
882
+ },
883
+ {
884
+ "id": "get_company_linkedin_url",
885
+ "backendCapabilityId": "get_company_linkedin_url",
886
+ "displayName": "Enrich Company -> Match Company Linkedin URL",
887
+ "name": "Match Company Linkedin URL",
888
+ "group": "Enrich Company",
889
+ "featId": "enrich_company",
890
+ "route": "company",
891
+ "concurrency": 10,
892
+ "inputFields": [
893
+ {
894
+ "key": "flashrev_company_id",
895
+ "label": "FlashRev Company ID"
896
+ },
897
+ {
898
+ "key": "company_name",
899
+ "label": "Company Name"
900
+ },
901
+ {
902
+ "key": "company_website",
903
+ "label": "Company Website"
904
+ },
905
+ {
906
+ "key": "company_linkedin",
907
+ "label": "Company LinkedIn"
908
+ },
909
+ {
910
+ "key": "company_country",
911
+ "label": "Company Country"
912
+ }
913
+ ],
914
+ "rules": [
915
+ [
916
+ "flashrev_company_id"
917
+ ],
918
+ [
919
+ "company_name"
920
+ ],
921
+ [
922
+ "company_website"
923
+ ],
924
+ [
925
+ "company_linkedin"
926
+ ]
927
+ ],
928
+ "outputFields": [
929
+ {
930
+ "key": "flashrev_company_id",
931
+ "type": "company_id"
932
+ },
933
+ {
934
+ "key": "company_linkedin_url",
935
+ "type": "linkedin_url"
936
+ }
937
+ ],
938
+ "dynamicOutput": false
939
+ },
940
+ {
941
+ "id": "customer_api",
942
+ "backendCapabilityId": "customer_api",
943
+ "displayName": "FlashAgent -> Custom API Request",
944
+ "name": "Custom API Request",
945
+ "group": "FlashAgent",
946
+ "featId": "custom_api_request",
947
+ "route": "flashagent",
948
+ "concurrency": 10,
949
+ "inputFields": [],
950
+ "rules": [],
951
+ "outputFields": [],
952
+ "dynamicOutput": true
953
+ },
954
+ {
955
+ "id": "run_flashintel_llm_with_search",
956
+ "backendCapabilityId": "run_flashintel_llm_with_search",
957
+ "displayName": "FlashAgent -> LLM with deep research by FlashRev (1 Layer)",
958
+ "name": "LLM with deep research by FlashRev (1 Layer)",
959
+ "group": "FlashAgent",
960
+ "featId": "run_llm_with_deep_research_by_flashrev",
961
+ "route": "flashagent",
962
+ "concurrency": 5,
963
+ "inputFields": [
964
+ {
965
+ "key": "prompt",
966
+ "label": "prompt"
967
+ },
968
+ {
969
+ "key": "params",
970
+ "label": "params"
971
+ },
972
+ {
973
+ "key": "output_type",
974
+ "label": "output_type"
975
+ },
976
+ {
977
+ "key": "output_fields",
978
+ "label": "output_fields"
979
+ }
980
+ ],
981
+ "rules": [
982
+ [
983
+ "prompt"
984
+ ]
985
+ ],
986
+ "outputFields": [],
987
+ "dynamicOutput": true
988
+ },
989
+ {
990
+ "id": "get_company_profile",
991
+ "backendCapabilityId": "get_company_profile",
992
+ "displayName": "Enrich Company -> Get All Company Profile",
993
+ "name": "Get All Company Profile",
994
+ "group": "Enrich Company",
995
+ "featId": "enrich_company_profile",
996
+ "route": "company",
997
+ "concurrency": 5,
998
+ "inputFields": [
999
+ {
1000
+ "key": "company_name",
1001
+ "label": "Company Name"
1002
+ },
1003
+ {
1004
+ "key": "company_website",
1005
+ "label": "Company Website"
1006
+ },
1007
+ {
1008
+ "key": "company_linkedin",
1009
+ "label": "Company LinkedIn"
1010
+ },
1011
+ {
1012
+ "key": "company_country",
1013
+ "label": "Company Country"
1014
+ }
1015
+ ],
1016
+ "rules": [
1017
+ [
1018
+ "company_name"
1019
+ ],
1020
+ [
1021
+ "company_website"
1022
+ ],
1023
+ [
1024
+ "company_linkedin"
1025
+ ]
1026
+ ],
1027
+ "outputFields": [
1028
+ {
1029
+ "key": "company_id",
1030
+ "type": "company_id"
1031
+ },
1032
+ {
1033
+ "key": "company_name",
1034
+ "type": "other"
1035
+ },
1036
+ {
1037
+ "key": "company_phone",
1038
+ "type": "other"
1039
+ },
1040
+ {
1041
+ "key": "website",
1042
+ "type": "other"
1043
+ },
1044
+ {
1045
+ "key": "industry",
1046
+ "type": "other"
1047
+ },
1048
+ {
1049
+ "key": "sub_industry",
1050
+ "type": "other"
1051
+ },
1052
+ {
1053
+ "key": "specialities",
1054
+ "type": "other"
1055
+ },
1056
+ {
1057
+ "key": "employees",
1058
+ "type": "other"
1059
+ },
1060
+ {
1061
+ "key": "company_founded_year",
1062
+ "type": "other"
1063
+ },
1064
+ {
1065
+ "key": "total_funding",
1066
+ "type": "other"
1067
+ },
1068
+ {
1069
+ "key": "contact_address",
1070
+ "type": "other"
1071
+ },
1072
+ {
1073
+ "key": "company_city",
1074
+ "type": "other"
1075
+ },
1076
+ {
1077
+ "key": "company_state",
1078
+ "type": "other"
1079
+ },
1080
+ {
1081
+ "key": "company_country",
1082
+ "type": "other"
1083
+ },
1084
+ {
1085
+ "key": "company_postal_code",
1086
+ "type": "other"
1087
+ },
1088
+ {
1089
+ "key": "company_flashinfo_url",
1090
+ "type": "other"
1091
+ },
1092
+ {
1093
+ "key": "company_linkedin_url",
1094
+ "type": "other"
1095
+ },
1096
+ {
1097
+ "key": "company_facebook_url",
1098
+ "type": "other"
1099
+ },
1100
+ {
1101
+ "key": "company_twitter_url",
1102
+ "type": "other"
1103
+ },
1104
+ {
1105
+ "key": "ticker",
1106
+ "type": "other"
1107
+ }
1108
+ ],
1109
+ "dynamicOutput": false
1110
+ },
1111
+ {
1112
+ "id": "verify_email",
1113
+ "backendCapabilityId": "verify_email",
1114
+ "displayName": "Enrich Person -> Verify Email",
1115
+ "name": "Verify Email",
1116
+ "group": "Enrich Person",
1117
+ "featId": "verify_email_address",
1118
+ "route": "verify_email",
1119
+ "concurrency": 5,
1120
+ "inputFields": [
1121
+ {
1122
+ "key": "email",
1123
+ "label": "Email"
1124
+ }
1125
+ ],
1126
+ "rules": [
1127
+ [
1128
+ "email"
1129
+ ]
1130
+ ],
1131
+ "outputFields": [
1132
+ {
1133
+ "key": "verify_status_detail",
1134
+ "type": "other"
1135
+ },
1136
+ {
1137
+ "key": "email_type",
1138
+ "type": "other"
1139
+ },
1140
+ {
1141
+ "key": "email_address",
1142
+ "type": "email"
1143
+ },
1144
+ {
1145
+ "key": "deliverable_email",
1146
+ "type": "other"
1147
+ },
1148
+ {
1149
+ "key": "catch_all",
1150
+ "type": "other"
1151
+ },
1152
+ {
1153
+ "key": "disposable",
1154
+ "type": "other"
1155
+ }
1156
+ ],
1157
+ "dynamicOutput": false
1158
+ },
1159
+ {
1160
+ "id": "match_company_id",
1161
+ "backendCapabilityId": "match_company_id",
1162
+ "displayName": "Enrich Company -> Match Company ID",
1163
+ "name": "Match Company ID",
1164
+ "group": "Enrich Company",
1165
+ "featId": "enrich_company",
1166
+ "route": "company",
1167
+ "concurrency": 5,
1168
+ "inputFields": [
1169
+ {
1170
+ "key": "company_name",
1171
+ "label": "Company Name"
1172
+ },
1173
+ {
1174
+ "key": "company_website",
1175
+ "label": "Company Website"
1176
+ },
1177
+ {
1178
+ "key": "company_linkedin",
1179
+ "label": "Company LinkedIn"
1180
+ },
1181
+ {
1182
+ "key": "company_country",
1183
+ "label": "Company Country"
1184
+ }
1185
+ ],
1186
+ "rules": [
1187
+ [
1188
+ "company_name"
1189
+ ],
1190
+ [
1191
+ "company_website"
1192
+ ],
1193
+ [
1194
+ "company_linkedin"
1195
+ ]
1196
+ ],
1197
+ "outputFields": [
1198
+ {
1199
+ "key": "company_id",
1200
+ "type": "company_id"
1201
+ },
1202
+ {
1203
+ "key": "company_name",
1204
+ "type": "other"
1205
+ }
1206
+ ],
1207
+ "dynamicOutput": false
1208
+ },
1209
+ {
1210
+ "id": "get_person_job_title",
1211
+ "backendCapabilityId": "get_person_job_title",
1212
+ "displayName": "Enrich Person -> Get Job Title",
1213
+ "name": "Get Job Title",
1214
+ "group": "Enrich Person",
1215
+ "featId": "enrich_prospect",
1216
+ "route": "person",
1217
+ "concurrency": 10,
1218
+ "inputFields": [
1219
+ {
1220
+ "key": "flashrev_person_id",
1221
+ "label": "FlashRev Person ID"
1222
+ },
1223
+ {
1224
+ "key": "first_name",
1225
+ "label": "First Name"
1226
+ },
1227
+ {
1228
+ "key": "last_name",
1229
+ "label": "Last Name"
1230
+ },
1231
+ {
1232
+ "key": "full_name",
1233
+ "label": "Full Name"
1234
+ },
1235
+ {
1236
+ "key": "person_linkedin_url",
1237
+ "label": "Person LinkedIn URL"
1238
+ },
1239
+ {
1240
+ "key": "email",
1241
+ "label": "Email"
1242
+ },
1243
+ {
1244
+ "key": "phone",
1245
+ "label": "Phone"
1246
+ },
1247
+ {
1248
+ "key": "job_title",
1249
+ "label": "Job Title"
1250
+ },
1251
+ {
1252
+ "key": "city",
1253
+ "label": "City"
1254
+ },
1255
+ {
1256
+ "key": "company_name",
1257
+ "label": "Company Name"
1258
+ },
1259
+ {
1260
+ "key": "company_website",
1261
+ "label": "Company Website"
1262
+ },
1263
+ {
1264
+ "key": "company_linkedin",
1265
+ "label": "Company LinkedIn"
1266
+ },
1267
+ {
1268
+ "key": "company_country",
1269
+ "label": "Company Country"
1270
+ }
1271
+ ],
1272
+ "rules": [
1273
+ [
1274
+ "first_name",
1275
+ "last_name",
1276
+ "company_name"
1277
+ ],
1278
+ [
1279
+ "flashrev_person_id"
1280
+ ],
1281
+ [
1282
+ "full_name",
1283
+ "company_name"
1284
+ ],
1285
+ [
1286
+ "person_linkedin_url"
1287
+ ],
1288
+ [
1289
+ "email"
1290
+ ],
1291
+ [
1292
+ "phone"
1293
+ ],
1294
+ [
1295
+ "first_name",
1296
+ "last_name",
1297
+ "company_website"
1298
+ ],
1299
+ [
1300
+ "full_name",
1301
+ "company_website"
1302
+ ],
1303
+ [
1304
+ "first_name",
1305
+ "last_name",
1306
+ "job_title",
1307
+ "city"
1308
+ ],
1309
+ [
1310
+ "full_name",
1311
+ "job_title",
1312
+ "city"
1313
+ ],
1314
+ [
1315
+ "first_name",
1316
+ "last_name",
1317
+ "company_linkedin"
1318
+ ],
1319
+ [
1320
+ "full_name",
1321
+ "company_linkedin"
1322
+ ]
1323
+ ],
1324
+ "outputFields": [
1325
+ {
1326
+ "key": "job_title",
1327
+ "type": "other"
1328
+ }
1329
+ ],
1330
+ "dynamicOutput": false
1331
+ },
1332
+ {
1333
+ "id": "enrich_phone",
1334
+ "backendCapabilityId": "enrich_phone",
1335
+ "displayName": "Enrich Person -> Get Phones",
1336
+ "name": "Get Phones",
1337
+ "group": "Enrich Person",
1338
+ "featId": "unlock_contact",
1339
+ "route": "unlock_phone",
1340
+ "concurrency": 10,
1341
+ "inputFields": [
1342
+ {
1343
+ "key": "flashrev_person_id",
1344
+ "label": "FlashRev Person ID"
1345
+ },
1346
+ {
1347
+ "key": "first_name",
1348
+ "label": "First Name"
1349
+ },
1350
+ {
1351
+ "key": "last_name",
1352
+ "label": "Last Name"
1353
+ },
1354
+ {
1355
+ "key": "full_name",
1356
+ "label": "Full Name"
1357
+ },
1358
+ {
1359
+ "key": "person_linkedin_url",
1360
+ "label": "Person LinkedIn URL"
1361
+ },
1362
+ {
1363
+ "key": "email",
1364
+ "label": "Email"
1365
+ },
1366
+ {
1367
+ "key": "phone",
1368
+ "label": "Phone"
1369
+ },
1370
+ {
1371
+ "key": "job_title",
1372
+ "label": "Job Title"
1373
+ },
1374
+ {
1375
+ "key": "city",
1376
+ "label": "City"
1377
+ },
1378
+ {
1379
+ "key": "company_name",
1380
+ "label": "Company Name"
1381
+ },
1382
+ {
1383
+ "key": "company_website",
1384
+ "label": "Company Website"
1385
+ },
1386
+ {
1387
+ "key": "company_linkedin",
1388
+ "label": "Company LinkedIn"
1389
+ }
1390
+ ],
1391
+ "rules": [
1392
+ [
1393
+ "flashrev_person_id"
1394
+ ],
1395
+ [
1396
+ "first_name",
1397
+ "last_name",
1398
+ "company_name"
1399
+ ],
1400
+ [
1401
+ "full_name",
1402
+ "company_name"
1403
+ ],
1404
+ [
1405
+ "person_linkedin_url"
1406
+ ],
1407
+ [
1408
+ "email"
1409
+ ],
1410
+ [
1411
+ "phone"
1412
+ ],
1413
+ [
1414
+ "first_name",
1415
+ "last_name",
1416
+ "company_website"
1417
+ ],
1418
+ [
1419
+ "full_name",
1420
+ "company_website"
1421
+ ],
1422
+ [
1423
+ "first_name",
1424
+ "last_name",
1425
+ "job_title",
1426
+ "city"
1427
+ ],
1428
+ [
1429
+ "full_name",
1430
+ "job_title",
1431
+ "city"
1432
+ ],
1433
+ [
1434
+ "first_name",
1435
+ "last_name",
1436
+ "company_linkedin"
1437
+ ],
1438
+ [
1439
+ "full_name",
1440
+ "company_linkedin"
1441
+ ]
1442
+ ],
1443
+ "outputFields": [
1444
+ {
1445
+ "key": "verified_mobile",
1446
+ "type": "phone"
1447
+ },
1448
+ {
1449
+ "key": "verified_phone",
1450
+ "type": "phone"
1451
+ },
1452
+ {
1453
+ "key": "all_verified_mobiles",
1454
+ "type": "list[phone]"
1455
+ },
1456
+ {
1457
+ "key": "all_verified_phones",
1458
+ "type": "list[phone]"
1459
+ },
1460
+ {
1461
+ "key": "all_mobiles",
1462
+ "type": "list[phone]"
1463
+ },
1464
+ {
1465
+ "key": "all_phones",
1466
+ "type": "list[phone]"
1467
+ }
1468
+ ],
1469
+ "dynamicOutput": false
1470
+ },
1471
+ {
1472
+ "id": "get_person_last_linkedin_post",
1473
+ "backendCapabilityId": "get_person_last_linkedin_post",
1474
+ "displayName": "Enrich Person -> Get Latest Linkedin Post",
1475
+ "name": "Get Latest Linkedin Post",
1476
+ "group": "Enrich Person",
1477
+ "featId": "enrich_prospect",
1478
+ "route": "person",
1479
+ "concurrency": 2,
1480
+ "inputFields": [
1481
+ {
1482
+ "key": "flashrev_person_id",
1483
+ "label": "FlashRev Person ID"
1484
+ },
1485
+ {
1486
+ "key": "first_name",
1487
+ "label": "First Name"
1488
+ },
1489
+ {
1490
+ "key": "last_name",
1491
+ "label": "Last Name"
1492
+ },
1493
+ {
1494
+ "key": "full_name",
1495
+ "label": "Full Name"
1496
+ },
1497
+ {
1498
+ "key": "person_linkedin_url",
1499
+ "label": "Person LinkedIn URL"
1500
+ },
1501
+ {
1502
+ "key": "email",
1503
+ "label": "Email"
1504
+ },
1505
+ {
1506
+ "key": "phone",
1507
+ "label": "Phone"
1508
+ },
1509
+ {
1510
+ "key": "job_title",
1511
+ "label": "Job Title"
1512
+ },
1513
+ {
1514
+ "key": "city",
1515
+ "label": "City"
1516
+ },
1517
+ {
1518
+ "key": "company_name",
1519
+ "label": "Company Name"
1520
+ },
1521
+ {
1522
+ "key": "company_website",
1523
+ "label": "Company Website"
1524
+ },
1525
+ {
1526
+ "key": "company_linkedin",
1527
+ "label": "Company LinkedIn"
1528
+ }
1529
+ ],
1530
+ "rules": [
1531
+ [
1532
+ "flashrev_person_id"
1533
+ ],
1534
+ [
1535
+ "first_name",
1536
+ "last_name",
1537
+ "company_name"
1538
+ ],
1539
+ [
1540
+ "full_name",
1541
+ "company_name"
1542
+ ],
1543
+ [
1544
+ "person_linkedin_url"
1545
+ ],
1546
+ [
1547
+ "email"
1548
+ ],
1549
+ [
1550
+ "phone"
1551
+ ],
1552
+ [
1553
+ "first_name",
1554
+ "last_name",
1555
+ "company_website"
1556
+ ],
1557
+ [
1558
+ "full_name",
1559
+ "company_website"
1560
+ ],
1561
+ [
1562
+ "first_name",
1563
+ "last_name",
1564
+ "job_title",
1565
+ "city"
1566
+ ],
1567
+ [
1568
+ "full_name",
1569
+ "job_title",
1570
+ "city"
1571
+ ],
1572
+ [
1573
+ "first_name",
1574
+ "last_name",
1575
+ "company_linkedin"
1576
+ ],
1577
+ [
1578
+ "full_name",
1579
+ "company_linkedin"
1580
+ ]
1581
+ ],
1582
+ "outputFields": [
1583
+ {
1584
+ "key": "content",
1585
+ "type": "other"
1586
+ },
1587
+ {
1588
+ "key": "time",
1589
+ "type": "other"
1590
+ },
1591
+ {
1592
+ "key": "detail_link",
1593
+ "type": "other"
1594
+ },
1595
+ {
1596
+ "key": "publisher_url",
1597
+ "type": "other"
1598
+ },
1599
+ {
1600
+ "key": "title",
1601
+ "type": "other"
1602
+ },
1603
+ {
1604
+ "key": "author",
1605
+ "type": "other"
1606
+ }
1607
+ ],
1608
+ "dynamicOutput": false
1609
+ },
1610
+ {
1611
+ "id": "enrich_email",
1612
+ "backendCapabilityId": "enrich_email",
1613
+ "displayName": "Enrich Person -> Get Emails",
1614
+ "name": "Get Emails",
1615
+ "group": "Enrich Person",
1616
+ "featId": "unlock_contact",
1617
+ "route": "unlock_email",
1618
+ "concurrency": 10,
1619
+ "inputFields": [
1620
+ {
1621
+ "key": "flashrev_person_id",
1622
+ "label": "FlashRev Person ID"
1623
+ },
1624
+ {
1625
+ "key": "first_name",
1626
+ "label": "First Name"
1627
+ },
1628
+ {
1629
+ "key": "last_name",
1630
+ "label": "Last Name"
1631
+ },
1632
+ {
1633
+ "key": "full_name",
1634
+ "label": "Full Name"
1635
+ },
1636
+ {
1637
+ "key": "person_linkedin_url",
1638
+ "label": "Person Linkedin Url"
1639
+ },
1640
+ {
1641
+ "key": "email",
1642
+ "label": "Email"
1643
+ },
1644
+ {
1645
+ "key": "phone",
1646
+ "label": "Phone"
1647
+ },
1648
+ {
1649
+ "key": "job_title",
1650
+ "label": "Job Title"
1651
+ },
1652
+ {
1653
+ "key": "city",
1654
+ "label": "City"
1655
+ },
1656
+ {
1657
+ "key": "company_name",
1658
+ "label": "Company Name"
1659
+ },
1660
+ {
1661
+ "key": "company_website",
1662
+ "label": "Company Website"
1663
+ },
1664
+ {
1665
+ "key": "company_linkedin",
1666
+ "label": "Company Linkedin"
1667
+ }
1668
+ ],
1669
+ "rules": [
1670
+ [
1671
+ "flashrev_person_id"
1672
+ ],
1673
+ [
1674
+ "first_name",
1675
+ "last_name",
1676
+ "company_name"
1677
+ ],
1678
+ [
1679
+ "full_name",
1680
+ "company_name"
1681
+ ],
1682
+ [
1683
+ "person_linkedin_url"
1684
+ ],
1685
+ [
1686
+ "email"
1687
+ ],
1688
+ [
1689
+ "phone"
1690
+ ],
1691
+ [
1692
+ "first_name",
1693
+ "last_name",
1694
+ "company_website"
1695
+ ],
1696
+ [
1697
+ "full_name",
1698
+ "company_website"
1699
+ ],
1700
+ [
1701
+ "first_name",
1702
+ "last_name",
1703
+ "job_title",
1704
+ "city"
1705
+ ],
1706
+ [
1707
+ "full_name",
1708
+ "job_title",
1709
+ "city"
1710
+ ],
1711
+ [
1712
+ "first_name",
1713
+ "last_name",
1714
+ "company_linkedin"
1715
+ ],
1716
+ [
1717
+ "full_name",
1718
+ "company_linkedin"
1719
+ ]
1720
+ ],
1721
+ "outputFields": [
1722
+ {
1723
+ "key": "verified_business_email",
1724
+ "type": "email"
1725
+ },
1726
+ {
1727
+ "key": "verified_personal_email",
1728
+ "type": "email"
1729
+ },
1730
+ {
1731
+ "key": "all_verified_business_emails",
1732
+ "type": "list[email]"
1733
+ },
1734
+ {
1735
+ "key": "all_verified_person_emails",
1736
+ "type": "list[email]"
1737
+ },
1738
+ {
1739
+ "key": "all_business_emails",
1740
+ "type": "list[email]"
1741
+ },
1742
+ {
1743
+ "key": "all_personal_emails",
1744
+ "type": "list[email]"
1745
+ }
1746
+ ],
1747
+ "dynamicOutput": false
1748
+ },
1749
+ {
1750
+ "id": "get_person_current_company",
1751
+ "backendCapabilityId": "get_person_current_company",
1752
+ "displayName": "Enrich Person -> Get Current Company Name",
1753
+ "name": "Get Current Company Name",
1754
+ "group": "Enrich Person",
1755
+ "featId": "enrich_prospect",
1756
+ "route": "person",
1757
+ "concurrency": 10,
1758
+ "inputFields": [
1759
+ {
1760
+ "key": "flashrev_person_id",
1761
+ "label": "FlashRev Person ID"
1762
+ },
1763
+ {
1764
+ "key": "first_name",
1765
+ "label": "First Name"
1766
+ },
1767
+ {
1768
+ "key": "last_name",
1769
+ "label": "Last Name"
1770
+ },
1771
+ {
1772
+ "key": "full_name",
1773
+ "label": "Full Name"
1774
+ },
1775
+ {
1776
+ "key": "person_linkedin_url",
1777
+ "label": "Person LinkedIn URL"
1778
+ },
1779
+ {
1780
+ "key": "email",
1781
+ "label": "Email"
1782
+ },
1783
+ {
1784
+ "key": "phone",
1785
+ "label": "Phone"
1786
+ },
1787
+ {
1788
+ "key": "job_title",
1789
+ "label": "Job Title"
1790
+ },
1791
+ {
1792
+ "key": "city",
1793
+ "label": "City"
1794
+ },
1795
+ {
1796
+ "key": "company_name",
1797
+ "label": "Company Name"
1798
+ },
1799
+ {
1800
+ "key": "company_website",
1801
+ "label": "Company Website"
1802
+ },
1803
+ {
1804
+ "key": "company_linkedin",
1805
+ "label": "Company LinkedIn"
1806
+ },
1807
+ {
1808
+ "key": "company_country",
1809
+ "label": "Company Country"
1810
+ }
1811
+ ],
1812
+ "rules": [
1813
+ [
1814
+ "flashrev_person_id"
1815
+ ],
1816
+ [
1817
+ "first_name",
1818
+ "last_name",
1819
+ "company_name"
1820
+ ],
1821
+ [
1822
+ "full_name",
1823
+ "company_name"
1824
+ ],
1825
+ [
1826
+ "person_linkedin_url"
1827
+ ],
1828
+ [
1829
+ "email"
1830
+ ],
1831
+ [
1832
+ "phone"
1833
+ ],
1834
+ [
1835
+ "first_name",
1836
+ "last_name",
1837
+ "company_website"
1838
+ ],
1839
+ [
1840
+ "full_name",
1841
+ "company_website"
1842
+ ],
1843
+ [
1844
+ "first_name",
1845
+ "last_name",
1846
+ "job_title",
1847
+ "city"
1848
+ ],
1849
+ [
1850
+ "full_name",
1851
+ "job_title",
1852
+ "city"
1853
+ ],
1854
+ [
1855
+ "first_name",
1856
+ "last_name",
1857
+ "company_linkedin"
1858
+ ],
1859
+ [
1860
+ "full_name",
1861
+ "company_linkedin"
1862
+ ]
1863
+ ],
1864
+ "outputFields": [
1865
+ {
1866
+ "key": "current_company",
1867
+ "type": "company_name"
1868
+ },
1869
+ {
1870
+ "key": "company_id",
1871
+ "type": "company_id"
1872
+ }
1873
+ ],
1874
+ "dynamicOutput": false
1875
+ },
1876
+ {
1877
+ "id": "run_llm",
1878
+ "backendCapabilityId": "run_llm",
1879
+ "displayName": "FlashAgent -> Run LLM",
1880
+ "name": "Run LLM",
1881
+ "group": "FlashAgent",
1882
+ "featId": "enrich_flashagent",
1883
+ "route": "flashagent",
1884
+ "concurrency": 5,
1885
+ "inputFields": [
1886
+ {
1887
+ "key": "prompt",
1888
+ "label": "prompt"
1889
+ },
1890
+ {
1891
+ "key": "params",
1892
+ "label": "params"
1893
+ },
1894
+ {
1895
+ "key": "output_type",
1896
+ "label": "output_type"
1897
+ },
1898
+ {
1899
+ "key": "output_fields",
1900
+ "label": "output_fields"
1901
+ }
1902
+ ],
1903
+ "rules": [
1904
+ [
1905
+ "prompt"
1906
+ ]
1907
+ ],
1908
+ "outputFields": [],
1909
+ "dynamicOutput": true
1910
+ },
1911
+ {
1912
+ "id": "google_maps",
1913
+ "backendCapabilityId": "google_maps",
1914
+ "displayName": "FlashAgent -> Google Map",
1915
+ "name": "Google Map",
1916
+ "group": "FlashAgent",
1917
+ "featId": "enrich_flashagent",
1918
+ "route": "flashagent",
1919
+ "concurrency": 10,
1920
+ "inputFields": [
1921
+ {
1922
+ "key": "company_name",
1923
+ "label": "Company Name or Store Name"
1924
+ }
1925
+ ],
1926
+ "rules": [
1927
+ [
1928
+ "company_name"
1929
+ ]
1930
+ ],
1931
+ "outputFields": [
1932
+ {
1933
+ "key": "title",
1934
+ "type": "other"
1935
+ },
1936
+ {
1937
+ "key": "address",
1938
+ "type": "other"
1939
+ },
1940
+ {
1941
+ "key": "latitude",
1942
+ "type": "other"
1943
+ },
1944
+ {
1945
+ "key": "longitude",
1946
+ "type": "other"
1947
+ },
1948
+ {
1949
+ "key": "rating",
1950
+ "type": "other"
1951
+ },
1952
+ {
1953
+ "key": "ratingCount",
1954
+ "type": "other"
1955
+ },
1956
+ {
1957
+ "key": "type",
1958
+ "type": "other"
1959
+ },
1960
+ {
1961
+ "key": "types",
1962
+ "type": "other"
1963
+ },
1964
+ {
1965
+ "key": "website",
1966
+ "type": "other"
1967
+ },
1968
+ {
1969
+ "key": "phoneNumber",
1970
+ "type": "other"
1971
+ },
1972
+ {
1973
+ "key": "openingHours",
1974
+ "type": "other"
1975
+ }
1976
+ ],
1977
+ "dynamicOutput": false
1978
+ },
1979
+ {
1980
+ "id": "get_person_linkedin_latest_experience",
1981
+ "backendCapabilityId": "get_person_linkedin_latest_experience",
1982
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn Work Experience",
1983
+ "name": "Realtime Scrape LinkedIn Work Experience",
1984
+ "group": "Enrich Person",
1985
+ "featId": "enrich_prospect",
1986
+ "route": "person",
1987
+ "concurrency": 1,
1988
+ "inputFields": [
1989
+ {
1990
+ "key": "linkedin_url",
1991
+ "label": "Person Linkedin URL"
1992
+ }
1993
+ ],
1994
+ "rules": [
1995
+ [
1996
+ "linkedin_url"
1997
+ ]
1998
+ ],
1999
+ "outputFields": [
2000
+ {
2001
+ "key": "current_job_title",
2002
+ "type": "job_title"
2003
+ },
2004
+ {
2005
+ "key": "current_company",
2006
+ "type": "company_name"
2007
+ }
2008
+ ],
2009
+ "dynamicOutput": false
2010
+ },
2011
+ {
2012
+ "id": "google_news",
2013
+ "backendCapabilityId": "google_news",
2014
+ "displayName": "FlashAgent -> Google News",
2015
+ "name": "Google News",
2016
+ "group": "FlashAgent",
2017
+ "featId": "enrich_flashagent",
2018
+ "route": "flashagent",
2019
+ "concurrency": 5,
2020
+ "inputFields": [
2021
+ {
2022
+ "key": "query",
2023
+ "label": "Query"
2024
+ },
2025
+ {
2026
+ "key": "language",
2027
+ "label": "Language"
2028
+ },
2029
+ {
2030
+ "key": "time_range",
2031
+ "label": "Date Range"
2032
+ },
2033
+ {
2034
+ "key": "params",
2035
+ "label": "params"
2036
+ }
2037
+ ],
2038
+ "rules": [
2039
+ [
2040
+ "query"
2041
+ ]
2042
+ ],
2043
+ "outputFields": [
2044
+ {
2045
+ "key": "top_1_title",
2046
+ "type": "other"
2047
+ },
2048
+ {
2049
+ "key": "top_1_snippet",
2050
+ "type": "other"
2051
+ },
2052
+ {
2053
+ "key": "top_1_url",
2054
+ "type": "other"
2055
+ },
2056
+ {
2057
+ "key": "top_2_title",
2058
+ "type": "other"
2059
+ },
2060
+ {
2061
+ "key": "top_2_snippet",
2062
+ "type": "other"
2063
+ },
2064
+ {
2065
+ "key": "top_2_url",
2066
+ "type": "other"
2067
+ },
2068
+ {
2069
+ "key": "top_3_title",
2070
+ "type": "other"
2071
+ },
2072
+ {
2073
+ "key": "top_3_snippet",
2074
+ "type": "other"
2075
+ },
2076
+ {
2077
+ "key": "top_3_url",
2078
+ "type": "other"
2079
+ },
2080
+ {
2081
+ "key": "all_top_3_content",
2082
+ "type": "other"
2083
+ },
2084
+ {
2085
+ "key": "all_top_3_titles",
2086
+ "type": "other"
2087
+ },
2088
+ {
2089
+ "key": "all_titles",
2090
+ "type": "other"
2091
+ },
2092
+ {
2093
+ "key": "all_content",
2094
+ "type": "other"
2095
+ }
2096
+ ],
2097
+ "dynamicOutput": false
2098
+ },
2099
+ {
2100
+ "id": "enrich_person_linkedin_highest_education",
2101
+ "backendCapabilityId": "enrich_person_linkedin_highest_education",
2102
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn Highest Education Experience",
2103
+ "name": "Realtime Scrape LinkedIn Highest Education Experience",
2104
+ "group": "Enrich Person",
2105
+ "featId": "enrich_prospect",
2106
+ "route": "person",
2107
+ "concurrency": 1,
2108
+ "inputFields": [
2109
+ {
2110
+ "key": "linkedin_url",
2111
+ "label": "Person Linkedin URL"
2112
+ }
2113
+ ],
2114
+ "rules": [
2115
+ [
2116
+ "linkedin_url"
2117
+ ]
2118
+ ],
2119
+ "outputFields": [
2120
+ {
2121
+ "key": "highest_academic_school",
2122
+ "type": "other"
2123
+ }
2124
+ ],
2125
+ "dynamicOutput": false
2126
+ },
2127
+ {
2128
+ "id": "get_person_linkedin_basic",
2129
+ "backendCapabilityId": "get_person_linkedin_basic",
2130
+ "displayName": "Enrich Person -> Realtime Scrape LinkedIn Basic Info",
2131
+ "name": "Realtime Scrape LinkedIn Basic Info",
2132
+ "group": "Enrich Person",
2133
+ "featId": "enrich_prospect",
2134
+ "route": "person",
2135
+ "concurrency": 1,
2136
+ "inputFields": [
2137
+ {
2138
+ "key": "linkedin_url",
2139
+ "label": "Person Linkedin URL"
2140
+ }
2141
+ ],
2142
+ "rules": [
2143
+ [
2144
+ "linkedin_url"
2145
+ ]
2146
+ ],
2147
+ "outputFields": [
2148
+ {
2149
+ "key": "name",
2150
+ "type": "full_name"
2151
+ },
2152
+ {
2153
+ "key": "headline",
2154
+ "type": "job_title"
2155
+ },
2156
+ {
2157
+ "key": "location",
2158
+ "type": "address"
2159
+ },
2160
+ {
2161
+ "key": "avatar_url",
2162
+ "type": "image_url"
2163
+ },
2164
+ {
2165
+ "key": "about",
2166
+ "type": "other"
2167
+ }
2168
+ ],
2169
+ "dynamicOutput": false
2170
+ },
2171
+ {
2172
+ "id": "scrape_and_extract",
2173
+ "backendCapabilityId": "scrape_and_extract",
2174
+ "displayName": "FlashAgent -> Scrape & LLM Extract",
2175
+ "name": "Scrape & LLM Extract",
2176
+ "group": "FlashAgent",
2177
+ "featId": "enrich_flashagent",
2178
+ "route": "flashagent",
2179
+ "concurrency": 1,
2180
+ "inputFields": [
2181
+ {
2182
+ "key": "prompt",
2183
+ "label": "prompt"
2184
+ },
2185
+ {
2186
+ "key": "website",
2187
+ "label": "Website"
2188
+ },
2189
+ {
2190
+ "key": "cookie",
2191
+ "label": "Cookie"
2192
+ },
2193
+ {
2194
+ "key": "params",
2195
+ "label": "params"
2196
+ },
2197
+ {
2198
+ "key": "output_type",
2199
+ "label": "output_type"
2200
+ },
2201
+ {
2202
+ "key": "output_fields",
2203
+ "label": "output_fields"
2204
+ }
2205
+ ],
2206
+ "rules": [
2207
+ [
2208
+ "prompt",
2209
+ "website"
2210
+ ]
2211
+ ],
2212
+ "outputFields": [],
2213
+ "dynamicOutput": true
2214
+ },
2215
+ {
2216
+ "id": "get_person_linkedin_url",
2217
+ "backendCapabilityId": "get_person_linkedin_url",
2218
+ "displayName": "Enrich Person -> Match Person Linkedin URL",
2219
+ "name": "Match Person Linkedin URL",
2220
+ "group": "Enrich Person",
2221
+ "featId": "enrich_prospect",
2222
+ "route": "person",
2223
+ "concurrency": 10,
2224
+ "inputFields": [
2225
+ {
2226
+ "key": "flashrev_person_id",
2227
+ "label": "FlashRev Person ID"
2228
+ },
2229
+ {
2230
+ "key": "first_name",
2231
+ "label": "First Name"
2232
+ },
2233
+ {
2234
+ "key": "last_name",
2235
+ "label": "Last Name"
2236
+ },
2237
+ {
2238
+ "key": "full_name",
2239
+ "label": "Full Name"
2240
+ },
2241
+ {
2242
+ "key": "email",
2243
+ "label": "Email"
2244
+ },
2245
+ {
2246
+ "key": "phone",
2247
+ "label": "Phone"
2248
+ },
2249
+ {
2250
+ "key": "job_title",
2251
+ "label": "Job Title"
2252
+ },
2253
+ {
2254
+ "key": "city",
2255
+ "label": "City"
2256
+ },
2257
+ {
2258
+ "key": "company_name",
2259
+ "label": "Company Name"
2260
+ },
2261
+ {
2262
+ "key": "company_website",
2263
+ "label": "Company Website"
2264
+ },
2265
+ {
2266
+ "key": "company_linkedin",
2267
+ "label": "Company LinkedIn"
2268
+ },
2269
+ {
2270
+ "key": "company_country",
2271
+ "label": "Company Country"
2272
+ }
2273
+ ],
2274
+ "rules": [
2275
+ [
2276
+ "flashrev_person_id"
2277
+ ],
2278
+ [
2279
+ "first_name",
2280
+ "last_name",
2281
+ "company_name"
2282
+ ],
2283
+ [
2284
+ "full_name",
2285
+ "company_name"
2286
+ ],
2287
+ [
2288
+ "person_linkedin_url"
2289
+ ],
2290
+ [
2291
+ "email"
2292
+ ],
2293
+ [
2294
+ "phone"
2295
+ ],
2296
+ [
2297
+ "first_name",
2298
+ "last_name",
2299
+ "company_website"
2300
+ ],
2301
+ [
2302
+ "full_name",
2303
+ "company_website"
2304
+ ],
2305
+ [
2306
+ "first_name",
2307
+ "last_name",
2308
+ "job_title",
2309
+ "city"
2310
+ ],
2311
+ [
2312
+ "full_name",
2313
+ "job_title",
2314
+ "city"
2315
+ ],
2316
+ [
2317
+ "first_name",
2318
+ "last_name",
2319
+ "company_linkedin"
2320
+ ],
2321
+ [
2322
+ "full_name",
2323
+ "company_linkedin"
2324
+ ]
2325
+ ],
2326
+ "outputFields": [
2327
+ {
2328
+ "key": "flashrev_person_id",
2329
+ "type": "person_id"
2330
+ },
2331
+ {
2332
+ "key": "linkedin_url",
2333
+ "type": "linkedin_url"
2334
+ }
2335
+ ],
2336
+ "dynamicOutput": false
2337
+ },
2338
+ {
2339
+ "id": "scrape_by_website",
2340
+ "backendCapabilityId": "scrape_by_website",
2341
+ "displayName": "FlashAgent -> Scrape Single Page by FlashRev",
2342
+ "name": "Scrape Single Page by FlashRev",
2343
+ "group": "FlashAgent",
2344
+ "featId": "enrich_flashagent",
2345
+ "route": "flashagent",
2346
+ "concurrency": 2,
2347
+ "inputFields": [
2348
+ {
2349
+ "key": "website",
2350
+ "label": "Website"
2351
+ }
2352
+ ],
2353
+ "rules": [
2354
+ [
2355
+ "website"
2356
+ ]
2357
+ ],
2358
+ "outputFields": [
2359
+ {
2360
+ "key": "content",
2361
+ "type": "other"
2362
+ }
2363
+ ],
2364
+ "dynamicOutput": false
2365
+ },
2366
+ {
2367
+ "id": "run_deep_research_llm",
2368
+ "backendCapabilityId": "run_deep_research_llm",
2369
+ "displayName": "FlashAgent -> LLM with deep research (1 Layer)",
2370
+ "name": "LLM with deep research (1 Layer)",
2371
+ "group": "FlashAgent",
2372
+ "featId": "run_llm_with_deep_research",
2373
+ "route": "flashagent",
2374
+ "concurrency": 5,
2375
+ "inputFields": [
2376
+ {
2377
+ "key": "prompt",
2378
+ "label": "prompt"
2379
+ },
2380
+ {
2381
+ "key": "params",
2382
+ "label": "params"
2383
+ },
2384
+ {
2385
+ "key": "output_type",
2386
+ "label": "output_type"
2387
+ },
2388
+ {
2389
+ "key": "output_fields",
2390
+ "label": "output_fields"
2391
+ }
2392
+ ],
2393
+ "rules": [
2394
+ [
2395
+ "prompt"
2396
+ ]
2397
+ ],
2398
+ "outputFields": [],
2399
+ "dynamicOutput": true
2400
+ }
2401
+ ];
2402
+
2403
+ // Normalize: funcName matches the func_name field in the Mongo capability collection;
2404
+ // it is the backend /api/v1/enrich/run request key. The local CAPABILITIES array is a
2405
+ // development-time fallback; at runtime the remote /api/v1/enrich/configs response wins.
2406
+ for (const cap of CAPABILITIES) {
2407
+ if (!cap.funcName) cap.funcName = cap.backendCapabilityId || cap.id;
2408
+ }
2409
+
2410
+ export const CAPABILITY_BY_ID = new Map();
2411
+ for (const capability of CAPABILITIES) {
2412
+ CAPABILITY_BY_ID.set(capability.id, capability);
2413
+ CAPABILITY_BY_ID.set(capability.funcName, capability);
2414
+ for (const alias of capability.aliases || []) CAPABILITY_BY_ID.set(alias, capability);
2415
+ }
2416
+
2417
+ /**
2418
+ * Apply remote /configs data on top of the local CAPABILITIES array.
2419
+ * Remote is authoritative; local is only a fallback.
2420
+ * Remote fields returned by GET /flashrev/api/v1/enrich/configs:
2421
+ * funcName, displayName, featId, unitPriceToken, concurrency,
2422
+ * inputColumn[], outputColumn[], rules[][]
2423
+ */
2424
+ export function applyRemoteConfigs(remoteConfigs = []) {
2425
+ for (const remote of remoteConfigs) {
2426
+ const funcName = remote.funcName || remote.func_name;
2427
+ if (!funcName) continue;
2428
+ const existing = CAPABILITY_BY_ID.get(funcName);
2429
+ if (existing) {
2430
+ // Merge: remote fields win (unitPriceToken is remote-only).
2431
+ Object.assign(existing, normalizeRemoteCapability(remote));
2432
+ } else {
2433
+ // Brand-new capability not in local fallback
2434
+ const fresh = normalizeRemoteCapability(remote);
2435
+ fresh.funcName = funcName;
2436
+ fresh.id = funcName;
2437
+ CAPABILITIES.push(fresh);
2438
+ CAPABILITY_BY_ID.set(funcName, fresh);
2439
+ }
2440
+ }
2441
+ }
2442
+
2443
+ function normalizeRemoteCapability(remote) {
2444
+ const out = {};
2445
+ if (remote.funcName) out.funcName = remote.funcName;
2446
+ if (remote.featId) out.featId = remote.featId;
2447
+ if (remote.unitPriceToken != null) out.unitPriceToken = remote.unitPriceToken;
2448
+ if (remote.concurrency != null) out.concurrency = remote.concurrency;
2449
+ if (remote.displayName) out.displayName = remote.displayName;
2450
+ // Only overwrite list-shaped fields when remote actually provided data.
2451
+ // The backend /configs currently returns rules/inputColumn/outputColumn as []
2452
+ // for some capabilities; clobbering local fallback with [] would silently
2453
+ // disable rule validation and lose the input/output schema.
2454
+ if (Array.isArray(remote.rules) && remote.rules.length) out.rules = remote.rules;
2455
+ if (Array.isArray(remote.inputColumn) && remote.inputColumn.length) {
2456
+ out.inputFields = remote.inputColumn;
2457
+ }
2458
+ if (Array.isArray(remote.outputColumn) && remote.outputColumn.length) {
2459
+ out.outputFields = remote.outputColumn.map((key) =>
2460
+ typeof key === "string" ? { key, type: "other" } : key
2461
+ );
2462
+ }
2463
+ return out;
2464
+ }
2465
+
2466
+ export function getCapability(id) {
2467
+ const capability = CAPABILITY_BY_ID.get(id);
2468
+ if (!capability) {
2469
+ const available = CAPABILITIES.map((entry) => entry.id).sort().join(", " );
2470
+ throw new Error(`Unknown capability: ${id}. Run flashrev-ai-enrich schema to see available capabilities. Available: ${available}`);
2471
+ }
2472
+ return capability;
2473
+ }