Skip to content

Commit 54071bc

Browse files
feat(integrations): add FullEnrich enrichment
1 parent 19af212 commit 54071bc

25 files changed

Lines changed: 2421 additions & 0 deletions

File tree

apps/docs/components/icons.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2927,6 +2927,24 @@ export function ForagerIcon(props: SVGProps<SVGSVGElement>) {
29272927
)
29282928
}
29292929

2930+
/** FullEnrich brand mark adapted from the official monochrome logo. */
2931+
export function FullEnrichIcon(props: SVGProps<SVGSVGElement>) {
2932+
return (
2933+
<svg {...props} viewBox='0 0 336 336' fill='none' xmlns='http://www.w3.org/2000/svg'>
2934+
<path
2935+
d='M171.634 53.137c-.784-3.784-6.183-3.8-6.989-.02l-4.953 23.2c-2.261 10.596-10.631 18.818-21.265 20.89l-21.168 4.125c-3.831.746-3.859 6.218-.036 7.003l21.443 4.405c10.509 2.159 18.747 10.328 20.994 20.819l4.9 22.887c.806 3.768 6.185 3.763 6.985-.007l4.849-22.853c2.229-10.505 10.466-18.695 20.983-20.864l21.535-4.441c3.825-.789 3.79-6.264-.044-7.004l-21.115-4.074c-10.712-2.067-19.132-10.371-21.347-21.054l-4.772-23.012Z'
2936+
fill='currentColor'
2937+
/>
2938+
<path
2939+
fillRule='evenodd'
2940+
clipRule='evenodd'
2941+
d='M1.056 184.46A168.3 168.3 0 0 0 8.872 220.856a167.458 167.458 0 0 0 22.604 44.198 168.522 168.522 0 0 0 18.456 21.652c30.309 30.011 72.004 48.544 118.027 48.544 92.646 0 167.75-75.104 167.75-167.75S260.605-.25 167.959-.25.209 74.854.209 167.5c0 5.725.287 11.383.847 16.96Zm27.734 16.551a143.633 143.633 0 0 1-3.944-33.511c0-79.039 64.074-143.113 143.113-143.113 79.039 0 143.113 64.074 143.113 143.113 0 11.51-1.358 22.702-3.924 33.426a26.34 26.34 0 0 1-3.271.205c-10.869.032-17.805-4.191-27.541-10.417l-.48-.307c-9.633-6.163-22.025-14.091-40.642-13.979-18.354.11-30.596 7.979-40.088 14.079l-.499.321c-9.618 6.178-16.388 10.303-26.923 10.303-11.368 0-18.289-4.246-27.638-10.329l-.699-.455c-9.356-6.095-21.366-13.919-39.769-13.919-18.489 0-30.766 7.866-40.323 13.99l-.47.302c-9.644 6.176-16.529 10.379-27.349 10.411a28.246 28.246 0 0 1-2.666-.12Zm42.985 72.462c25.41 23.077 59.155 37.14 96.184 37.14 36.858 0 70.461-13.933 95.83-36.819l-1.154-.899-.708-.551c-9.945-7.736-16.499-12.434-26.562-12.373-9.946.06-16.46 4.766-26.278 12.451l-.716.56c-9.244 7.246-21.779 17.071-40.667 17.071-19.831 0-32.456-10.006-41.836-17.441l-.381-.303c-9.759-7.732-15.955-12.338-25.889-12.338-10.011 0-16.512 4.678-26.365 12.363l-.698.546-.76.593Zm209.129-18.071a143.496 143.496 0 0 0 17.739-29.478c-15.666-1.281-26.573-8.26-35.236-13.803l-.539-.345c-9.72-6.216-16.647-10.415-27.503-10.35-10.741.065-17.629 4.27-27.227 10.436l-.529.34c-9.468 6.086-21.668 13.928-39.905 13.928-19.181 0-31.478-8.001-41.085-14.253l-.187-.121c-9.527-6.199-16.096-10.329-26.834-10.329-10.807 0-17.684 4.179-27.312 10.345l-.529.339c-8.512 5.455-19.196 12.302-34.512 13.745a143.492 143.492 0 0 0 17.487 29.183l3.125-2.415.655-.511c9.336-7.292 21.947-17.141 41.087-17.141 19.066 0 31.414 9.805 40.556 17.063l.03.024.827.656c9.565 7.578 16.12 12.339 26.693 12.339 9.733 0 16.125-4.61 25.974-12.318l.666-.522c9.279-7.271 21.856-17.127 40.87-17.242 19.264-.116 31.988 9.794 41.399 17.124l.664.517 3.627 2.789Z'
2942+
fill='currentColor'
2943+
/>
2944+
</svg>
2945+
)
2946+
}
2947+
29302948
export function ZeroBounceIcon(props: SVGProps<SVGSVGElement>) {
29312949
return (
29322950
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 26' fill='none'>

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ import {
8585
FirefliesIcon,
8686
FlintIcon,
8787
ForagerIcon,
88+
FullEnrichIcon,
8889
GammaIcon,
8990
GithubIcon,
9091
GitLabIcon,
@@ -363,6 +364,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
363364
fireflies_v2: FirefliesIcon,
364365
flint: FlintIcon,
365366
forager: ForagerIcon,
367+
fullenrich: FullEnrichIcon,
366368
gamma: GammaIcon,
367369
generic: WebhookIcon,
368370
github: GithubIcon,
Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
---
2+
title: FullEnrich
3+
description: Enrich contacts and search or look up people and companies
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="fullenrich"
10+
color="#8164F4"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Use FullEnrich to enrich batches of contacts with work emails, personal emails, and mobile phones; reverse email addresses; search people and companies; and retrieve standalone person or company profiles.
16+
17+
18+
19+
## Actions
20+
21+
### FullEnrich Get Contact Enrichment
22+
23+
Retrieve the status, contact records, and historical credit usage for an enrichment.
24+
25+
#### Input
26+
27+
| Parameter | Type | Required | Description |
28+
| --------- | ---- | -------- | ----------- |
29+
| `apiKey` | string | Yes | FullEnrich API key |
30+
| `enrichmentId` | string | Yes | Enrichment ID returned by Start Contact Enrichment |
31+
| `forceResults` | boolean | No | Return available records before the whole enrichment finishes |
32+
33+
#### Output
34+
35+
| Parameter | Type | Description |
36+
| --------- | ---- | ----------- |
37+
| `id` | string | Enrichment ID |
38+
| `name` | string | Enrichment name |
39+
| `status` | string | Current enrichment status |
40+
| `records` | array | Contact enrichment records with input, custom, contact_info, and profile fields |
41+
|`input` | json | Original contact enrichment input |
42+
|`custom` | json | Custom string fields returned unchanged |
43+
|`contact_info` | json | Found work emails, personal emails, and mobile phones |
44+
|`profile` | json | Full professional person profile |
45+
| `costCredits` | number | Historical credits consumed by the enrichment; retrieval itself is free |
46+
47+
### FullEnrich Get Reverse Email
48+
49+
Retrieve the status, matched profiles, and historical credit usage for a reverse lookup.
50+
51+
#### Input
52+
53+
| Parameter | Type | Required | Description |
54+
| --------- | ---- | -------- | ----------- |
55+
| `apiKey` | string | Yes | FullEnrich API key |
56+
| `enrichmentId` | string | Yes | Enrichment ID returned by Start Reverse Email |
57+
58+
#### Output
59+
60+
| Parameter | Type | Description |
61+
| --------- | ---- | ----------- |
62+
| `id` | string | Reverse lookup ID |
63+
| `name` | string | Reverse lookup name |
64+
| `status` | string | Current reverse-lookup status |
65+
| `records` | array | Reverse-email records with input, custom, and matched profile fields |
66+
|`input` | json | Original email input |
67+
|`custom` | json | Custom string fields returned unchanged |
68+
|`profile` | json | Matched professional person profile |
69+
| `costCredits` | number | Historical credits consumed by the lookup; retrieval itself is free |
70+
71+
### FullEnrich Lookup Company
72+
73+
Look up one company by domain or professional-network URL or ID.
74+
75+
#### Input
76+
77+
| Parameter | Type | Required | Description |
78+
| --------- | ---- | -------- | ----------- |
79+
| `apiKey` | string | Yes | FullEnrich API key |
80+
| `domain` | string | No | Company domain |
81+
| `professionalNetworkUrl` | string | No | Professional-network URL of the company |
82+
| `professionalNetworkId` | number | No | Professional-network ID of the company |
83+
84+
#### Output
85+
86+
| Parameter | Type | Description |
87+
| --------- | ---- | ----------- |
88+
| `companies` | array | Companies returned by FullEnrich |
89+
|`id` | string | FullEnrich company identifier |
90+
|`name` | string | Company name |
91+
|`domain` | string | Company domain |
92+
|`website` | string | Company website |
93+
|`description` | string | Company description |
94+
|`year_founded` | number | Year founded |
95+
|`headcount` | number | Exact employee count |
96+
|`headcount_range` | string | Employee-count range |
97+
|`company_type` | string | Company type |
98+
|`locations` | json | Headquarters and office locations |
99+
|`social_profiles` | json | Professional-network profile details |
100+
|`specialties` | json | Company specialties |
101+
|`industry` | json | Company industry information |
102+
|`logo_url` | string | FullEnrich-hosted company logo URL |
103+
| `credits` | number | Credits reported by FullEnrich for this lookup |
104+
105+
### FullEnrich Lookup Person
106+
107+
Look up one person by name, professional-network URL or ID, optionally disambiguated by company.
108+
109+
#### Input
110+
111+
| Parameter | Type | Required | Description |
112+
| --------- | ---- | -------- | ----------- |
113+
| `apiKey` | string | Yes | FullEnrich API key |
114+
| `personName` | string | No | Full name of the person |
115+
| `personProfessionalNetworkUrl` | string | No | Professional-network profile URL of the person |
116+
| `personProfessionalNetworkId` | number | No | Professional-network profile ID of the person |
117+
| `companyProfessionalNetworkUrl` | string | No | Professional-network URL of the company used to disambiguate a name |
118+
| `companyProfessionalNetworkId` | number | No | Professional-network ID of the company used to disambiguate a name |
119+
| `companyDomain` | string | No | Company domain used to disambiguate a name |
120+
121+
#### Output
122+
123+
| Parameter | Type | Description |
124+
| --------- | ---- | ----------- |
125+
| `people` | array | People returned by FullEnrich |
126+
|`id` | string | FullEnrich person identifier |
127+
|`full_name` | string | Full name |
128+
|`first_name` | string | First name |
129+
|`last_name` | string | Last name |
130+
|`headline` | string | Professional headline |
131+
|`description` | string | Professional profile summary |
132+
|`location` | json | Structured person location |
133+
|`social_profiles` | json | Professional-network profile details |
134+
|`educations` | json | Education history |
135+
|`languages` | json | Languages and proficiency |
136+
|`skills` | json | Professional skills |
137+
|`employment` | json | Current and past employment |
138+
| `credits` | number | Credits reported by FullEnrich for this lookup |
139+
140+
### FullEnrich Search Companies
141+
142+
Search FullEnrich companies by name, domain, professional network, keywords, industry, type, location, founding year, and headcount.
143+
144+
#### Input
145+
146+
| Parameter | Type | Required | Description |
147+
| --------- | ---- | -------- | ----------- |
148+
| `apiKey` | string | Yes | FullEnrich API key |
149+
| `filters` | json | No | Official company-search filter object. Supported keys: names, domains, professional_network_ids, professional_network_urls, keywords, specialties, industries, types, headquarters_locations, founded_years, headcounts, and company_ids. |
150+
| `offset` | number | No | Number of companies to skip, from 0 to 10,000 |
151+
| `limit` | number | No | Number of companies to return, from 1 to 100; defaults to 10 |
152+
| `searchAfter` | string | No | Cursor returned by the previous response for cursor-based pagination |
153+
154+
#### Output
155+
156+
| Parameter | Type | Description |
157+
| --------- | ---- | ----------- |
158+
| `companies` | array | Companies returned by FullEnrich |
159+
|`id` | string | FullEnrich company identifier |
160+
|`name` | string | Company name |
161+
|`domain` | string | Company domain |
162+
|`website` | string | Company website |
163+
|`description` | string | Company description |
164+
|`year_founded` | number | Year founded |
165+
|`headcount` | number | Exact employee count |
166+
|`headcount_range` | string | Employee-count range |
167+
|`company_type` | string | Company type |
168+
|`locations` | json | Headquarters and office locations |
169+
|`social_profiles` | json | Professional-network profile details |
170+
|`specialties` | json | Company specialties |
171+
|`industry` | json | Company industry information |
172+
|`logo_url` | string | FullEnrich-hosted company logo URL |
173+
| `total` | number | Total number of matching companies |
174+
| `credits` | number | Credits reported by FullEnrich for this request |
175+
| `offset` | number | Number of results skipped |
176+
| `searchAfter` | string | Cursor for the next page |
177+
178+
### FullEnrich Search People
179+
180+
Search FullEnrich people by company, identity, location, skills, role, seniority, employment, and education filters.
181+
182+
#### Input
183+
184+
| Parameter | Type | Required | Description |
185+
| --------- | ---- | -------- | ----------- |
186+
| `apiKey` | string | Yes | FullEnrich API key |
187+
| `filters` | json | No | Official people-search filter object. Supported keys include current_company_names, current_company_domains, current_position_titles, person_locations, person_skills, and all other documented v2 filters. |
188+
| `offset` | number | No | Number of people to skip, from 0 to 10,000 |
189+
| `limit` | number | No | Number of people to return, from 1 to 100; defaults to 10 |
190+
| `searchAfter` | string | No | Cursor returned by the previous response for cursor-based pagination |
191+
192+
#### Output
193+
194+
| Parameter | Type | Description |
195+
| --------- | ---- | ----------- |
196+
| `people` | array | People returned by FullEnrich |
197+
|`id` | string | FullEnrich person identifier |
198+
|`full_name` | string | Full name |
199+
|`first_name` | string | First name |
200+
|`last_name` | string | Last name |
201+
|`headline` | string | Professional headline |
202+
|`description` | string | Professional profile summary |
203+
|`location` | json | Structured person location |
204+
|`social_profiles` | json | Professional-network profile details |
205+
|`educations` | json | Education history |
206+
|`languages` | json | Languages and proficiency |
207+
|`skills` | json | Professional skills |
208+
|`employment` | json | Current and past employment |
209+
| `total` | number | Total number of matching people |
210+
| `credits` | number | Credits reported by FullEnrich for this request |
211+
| `offset` | number | Number of results skipped |
212+
| `searchAfter` | string | Cursor for the next page |
213+
214+
### FullEnrich Start Contact Enrichment
215+
216+
Start an asynchronous enrichment of up to 100 contacts for work emails, personal emails, and mobile phones.
217+
218+
#### Input
219+
220+
| Parameter | Type | Required | Description |
221+
| --------- | ---- | -------- | ----------- |
222+
| `apiKey` | string | Yes | FullEnrich API key |
223+
| `name` | string | Yes | Readable enrichment name shown in the FullEnrich dashboard |
224+
| `data` | json | Yes | Array of 1-100 contacts. Each requires linkedin_url, or first_name + last_name with domain/company_name, plus enrich_fields. |
225+
| `webhookUrl` | string | No | HTTPS endpoint notified when the entire enrichment finishes |
226+
| `contactFinishedWebhookUrl` | string | No | HTTPS endpoint notified when each contact finishes |
227+
228+
#### Output
229+
230+
| Parameter | Type | Description |
231+
| --------- | ---- | ----------- |
232+
| `enrichmentId` | string | ID used to retrieve asynchronous enrichment results |
233+
234+
### FullEnrich Start Reverse Email
235+
236+
Start an asynchronous reverse lookup of up to 100 email addresses.
237+
238+
#### Input
239+
240+
| Parameter | Type | Required | Description |
241+
| --------- | ---- | -------- | ----------- |
242+
| `apiKey` | string | Yes | FullEnrich API key |
243+
| `name` | string | Yes | Readable reverse-lookup name shown in the FullEnrich dashboard |
244+
| `data` | json | Yes | Array of 1-100 objects containing email and optional string-valued custom fields |
245+
| `webhookUrl` | string | No | HTTPS endpoint notified when the entire lookup finishes |
246+
| `contactFinishedWebhookUrl` | string | No | HTTPS endpoint notified when each email finishes |
247+
248+
#### Output
249+
250+
| Parameter | Type | Description |
251+
| --------- | ---- | ----------- |
252+
| `enrichmentId` | string | ID used to retrieve asynchronous reverse-email results |
253+
254+

apps/sim/app/workspace/[workspaceId]/settings/components/byok/byok.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
FirecrawlIcon,
2020
FireworksIcon,
2121
ForagerIcon,
22+
FullEnrichIcon,
2223
GeminiIcon,
2324
GoogleIcon,
2425
HunterIOIcon,
@@ -263,6 +264,13 @@ const PROVIDERS: (BYOKManagerProvider & { id: BYOKProviderId })[] = [
263264
description: 'Person, contact, organization, role, job, and website enrichment',
264265
placeholder: 'Enter your Forager API key',
265266
},
267+
{
268+
id: 'fullenrich',
269+
name: 'FullEnrich',
270+
icon: FullEnrichIcon,
271+
description: 'Contact enrichment, reverse email, and people/company search',
272+
placeholder: 'Enter your FullEnrich API key',
273+
},
266274
{
267275
id: 'prospeo',
268276
name: 'Prospeo',
@@ -395,6 +403,7 @@ const PROVIDER_SECTIONS: BYOKProviderSection[] = [
395403
'peopledatalabs',
396404
'findymail',
397405
'forager',
406+
'fullenrich',
398407
'prospeo',
399408
'smarte',
400409
'wiza',

0 commit comments

Comments
 (0)