@scavio/twenty 0.0.0-stage → 0.1.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/README.md +83 -2
- package/dependencies/yarn.lock +2036 -0
- package/manifest.json +459 -0
- package/package.json +54 -4
- package/public/gallery/enrich-command.png +0 -0
- package/public/gallery/enriched-companies.png +0 -0
- package/public/logo.png +0 -0
- package/src/front-components/enrich-with-scavio.mjs +67 -0
- package/src/front-components/enrich-with-scavio.mjs.map +7 -0
- package/src/front-components/enrich-with-scavio.tsx +46 -0
- package/src/logic-functions/enrich-worker.mjs +3099 -0
- package/src/logic-functions/enrich-worker.mjs.map +7 -0
- package/src/logic-functions/enrich-worker.ts +34 -0
- package/src/logic-functions/health-check.mjs +122 -0
- package/src/logic-functions/health-check.mjs.map +7 -0
- package/src/logic-functions/health-check.ts +16 -0
- package/src/logic-functions/start-enrichment.mjs +518 -0
- package/src/logic-functions/start-enrichment.mjs.map +7 -0
- package/src/logic-functions/start-enrichment.ts +82 -0
package/manifest.json
ADDED
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
{
|
|
2
|
+
"application": {
|
|
3
|
+
"universalIdentifier": "7df36bb6-a3f3-41cd-a955-242b9508e63c",
|
|
4
|
+
"displayName": "Scavio Company Enrichment",
|
|
5
|
+
"description": "Fill company emails, phones, social links and the owner's name from each company's own website.",
|
|
6
|
+
"author": "Scavio",
|
|
7
|
+
"category": "Enrichment",
|
|
8
|
+
"logo": "public/logo.png",
|
|
9
|
+
"galleryImages": [
|
|
10
|
+
"public/gallery/enriched-companies.png",
|
|
11
|
+
"public/gallery/enrich-command.png"
|
|
12
|
+
],
|
|
13
|
+
"websiteUrl": "https://scavio.dev/docs/company-enrich?via=twenty",
|
|
14
|
+
"termsUrl": "https://scavio.dev/terms",
|
|
15
|
+
"emailSupport": "hello@scavio.dev",
|
|
16
|
+
"issueReportUrl": "https://github.com/scavio-ai/twenty-scavio/issues",
|
|
17
|
+
"billing": {
|
|
18
|
+
"description": "Free app. Needs a Scavio account: 10 Scavio credits per enriched company, unreachable sites are free. 50 free credits on signup."
|
|
19
|
+
},
|
|
20
|
+
"applicationVariables": {
|
|
21
|
+
"SCAVIO_API_KEY": {
|
|
22
|
+
"universalIdentifier": "ca192689-bab1-4351-b474-e485aac44e52",
|
|
23
|
+
"label": "Scavio API key",
|
|
24
|
+
"description": "Your key from https://dashboard.scavio.dev. Enrichment is billed to this Scavio account.",
|
|
25
|
+
"isSecret": true,
|
|
26
|
+
"isRequired": true
|
|
27
|
+
},
|
|
28
|
+
"SCAVIO_PARALLEL_REQUESTS": {
|
|
29
|
+
"universalIdentifier": "42152366-d912-4d23-be7a-cfe7d43eb69e",
|
|
30
|
+
"label": "Companies enriched at the same time",
|
|
31
|
+
"description": "How many companies are enriched in parallel (1-10). Keep 1 on the free Scavio plan; paid plans allow more.",
|
|
32
|
+
"type": "NUMBER",
|
|
33
|
+
"isSecret": false,
|
|
34
|
+
"value": 1
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"defaultRoleUniversalIdentifier": "2744af0c-2361-48bd-9b9a-7cafffd5e372",
|
|
38
|
+
"aboutDescription": "# Scavio Company Enrichment for Twenty\n\nSelect companies in Twenty and fill in the contact details they publish on their own website: emails, phone numbers, social profiles, the contact page, and the owner or founder's name and title.\n\nBuilt for lists of small and local businesses, where data vendors have little: dentists, roofers, agencies, shops, studios. The app reads each company's own site, so it works for any business with a website.\n\n## What it does\n\n- **Enrich with Scavio**: select companies in any Company view, open the command menu and run **Enrich with Scavio**. Each company is enriched in the background and its record updates as soon as it is done.\n- **Workflow action**: add **Enrich companies with Scavio** to a workflow, for example to enrich every new company when it is created.\n- **Enriched (Scavio)** view: a Company view with the new columns side by side.\n\nFields added to Company:\n\n| Field | What it holds |\n|---|---|\n| Website Emails | Emails published on the site, on the company's own domain or a common mailbox provider (Gmail, Outlook, ...) |\n| Website Phones | Phone numbers published on the site, validated and deduplicated |\n| Social Profiles | LinkedIn, Facebook, Instagram, X, YouTube, TikTok and Pinterest profiles linked from the site |\n| Contact Page | The site's contact page |\n| Owner Name, Owner Title | The owner or founder named on the site or a linked profile |\n| Owner Email | The owner's email, only when the site publishes it |\n| Scavio Status, Scavio Note, Scavio Enriched At | The outcome of the last run and why |\n\nThe standard **Linkedin** field is filled only when it is empty. The app never overwrites your own data in standard fields, and it does not create People records.\n\n## Setup\n\n1. Create a Scavio account at https://scavio.dev/?via=twenty. New accounts get 50 free credits; no card is needed.\n2. Copy your API key from the Scavio dashboard.\n3. In Twenty, open **Settings > Applications > Scavio Company Enrichment** and paste the key into **Scavio API key**.\n4. Optional: raise **Companies enriched at the same time** (default 1) if your Scavio plan allows more parallel requests.\n\nThe app's settings page shows a banner if the key is missing, rejected, or out of credits.\n\n## Pricing\n\nThe app is free. Enrichment runs on your Scavio account:\n\n- 10 Scavio credits per company enriched from its website.\n- A website that cannot be reached is not charged.\n- Companies without a website are skipped and not charged.\n- Plans and credit prices: https://scavio.dev/pricing\n\nOn Twenty Cloud, the app's background runs also use a small amount of Twenty credits for logic function time, as described in Twenty's billing docs.\n\n## How long it takes\n\nEach company takes about 10 to 30 seconds, because the app reads several pages of the site. With the default setting, 100 companies finish in roughly 30 minutes. Statuses update as each company finishes.\n\n## Stopping a run\n\nChange the **Scavio Status** of the companies still marked **Queued** to anything else (or clear it). The app only enriches a company while its status is **Queued**, so those companies are skipped and not charged. A company already being read when you change it still finishes.\n\n## Statuses\n\n| Status | Meaning |\n|---|---|\n| Queued | Waiting for its turn |\n| Enriched | At least one contact detail was found and written |\n| No contacts found | The site was read but publishes no contact details |\n| No website | The company has no website in its Domains field |\n| Website unreachable | The site did not load; no credits were charged |\n| Out of Scavio credits | The run stopped; add credits and run it again |\n| Failed | See the note on the record |\n\n## Privacy\n\n- **What leaves your workspace:** only the company's website domain, sent to the Scavio API (https://api.scavio.dev) to look it up. No other record data, and nothing about your users, is sent.\n- **What Scavio does with it:** reads the public pages of that website and returns what they publish.\n- **Retention:** Scavio keeps API request logs, including the domain, for up to 90 days, then deletes them automatically. See https://scavio.dev/privacy.\n- **Deleting data:** uninstalling the app removes its fields and their values from your workspace. To have Scavio delete your account data, write to hello@scavio.dev.\n\n## Support\n\n- Email: hello@scavio.dev\n- Issues: https://github.com/scavio-ai/twenty-scavio/issues\n- Scavio API docs for this endpoint: https://scavio.dev/docs/company-enrich\n\n## Compatibility\n\nTwenty 2.58 or later.\n\nThe app is built and maintained by Scavio. It is not affiliated with Twenty.\n",
|
|
39
|
+
"yarnLockChecksum": "d602a2d8b44ebf02766aea94c64f00ec",
|
|
40
|
+
"packageJsonChecksum": "3b9efd5ede107d93188b284a878d68a8",
|
|
41
|
+
"requiredServerVersionRange": ">=2.58.0",
|
|
42
|
+
"healthCheckLogicFunction": {
|
|
43
|
+
"universalIdentifier": "09069cc5-52c1-413e-9db9-8e752a9d3341"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"objects": [],
|
|
47
|
+
"fields": [
|
|
48
|
+
{
|
|
49
|
+
"universalIdentifier": "23600ea9-402a-45e4-9248-f16e6e197355",
|
|
50
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
51
|
+
"type": "TEXT",
|
|
52
|
+
"name": "scavioEnrichmentNote",
|
|
53
|
+
"label": "Scavio Note",
|
|
54
|
+
"description": "Where the owner was found, or why nothing was written.",
|
|
55
|
+
"icon": "IconNotes",
|
|
56
|
+
"isNullable": true
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"universalIdentifier": "27540976-1871-4a57-acb7-24014f6c001f",
|
|
60
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
61
|
+
"type": "TEXT",
|
|
62
|
+
"name": "scavioOwnerName",
|
|
63
|
+
"label": "Owner Name",
|
|
64
|
+
"description": "Owner or founder named on the website or a linked profile.",
|
|
65
|
+
"icon": "IconUserCircle",
|
|
66
|
+
"isNullable": true
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"universalIdentifier": "2ba91ee1-1ef5-4a8d-bb90-604e463a9cbf",
|
|
70
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
71
|
+
"type": "PHONES",
|
|
72
|
+
"name": "scavioPhones",
|
|
73
|
+
"label": "Website Phones",
|
|
74
|
+
"description": "Phone numbers published on the company's website.",
|
|
75
|
+
"icon": "IconPhone",
|
|
76
|
+
"isNullable": true
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"universalIdentifier": "606f5b14-a5d6-46b4-b7fc-5fa3a28dee5e",
|
|
80
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
81
|
+
"type": "LINKS",
|
|
82
|
+
"name": "scavioSocialProfiles",
|
|
83
|
+
"label": "Social Profiles",
|
|
84
|
+
"description": "Social profiles linked from the company's website.",
|
|
85
|
+
"icon": "IconWorld",
|
|
86
|
+
"isNullable": true
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"universalIdentifier": "98fb6be3-8f51-4dbb-b876-1bc62c95c4d3",
|
|
90
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
91
|
+
"type": "SELECT",
|
|
92
|
+
"name": "scavioEnrichmentStatus",
|
|
93
|
+
"label": "Scavio Status",
|
|
94
|
+
"description": "Outcome of the latest Scavio enrichment.",
|
|
95
|
+
"icon": "IconProgressCheck",
|
|
96
|
+
"isNullable": true,
|
|
97
|
+
"options": [
|
|
98
|
+
{
|
|
99
|
+
"id": "c529b9b0-c0c9-4e72-9d14-d8495c0541de",
|
|
100
|
+
"value": "QUEUED",
|
|
101
|
+
"label": "Queued",
|
|
102
|
+
"color": "gray",
|
|
103
|
+
"position": 0
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "9082d22e-59c4-42fb-8cdd-e645e569691d",
|
|
107
|
+
"value": "ENRICHED",
|
|
108
|
+
"label": "Enriched",
|
|
109
|
+
"color": "green",
|
|
110
|
+
"position": 1
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "9671c0c3-75b2-4849-98df-2bc51e1a1fe1",
|
|
114
|
+
"value": "NO_CONTACTS",
|
|
115
|
+
"label": "No contacts found",
|
|
116
|
+
"color": "yellow",
|
|
117
|
+
"position": 2
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "256b1d94-0b8d-4977-b7c2-611cd202adf3",
|
|
121
|
+
"value": "NO_WEBSITE",
|
|
122
|
+
"label": "No website",
|
|
123
|
+
"color": "gray",
|
|
124
|
+
"position": 3
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"id": "a20d585a-44eb-4c33-b25f-4f6fb16b2b0a",
|
|
128
|
+
"value": "UNREACHABLE",
|
|
129
|
+
"label": "Website unreachable",
|
|
130
|
+
"color": "orange",
|
|
131
|
+
"position": 4
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "cc92beb9-b0d6-4192-bdb0-b85186f319dc",
|
|
135
|
+
"value": "OUT_OF_CREDITS",
|
|
136
|
+
"label": "Out of Scavio credits",
|
|
137
|
+
"color": "red",
|
|
138
|
+
"position": 5
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "157606a3-650b-486f-b3ed-8dadd11edab2",
|
|
142
|
+
"value": "FAILED",
|
|
143
|
+
"label": "Failed",
|
|
144
|
+
"color": "red",
|
|
145
|
+
"position": 6
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"universalIdentifier": "a077d5f5-926e-4f57-96a3-d22fcbae43d7",
|
|
151
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
152
|
+
"type": "DATE_TIME",
|
|
153
|
+
"name": "scavioLastEnrichedAt",
|
|
154
|
+
"label": "Scavio Enriched At",
|
|
155
|
+
"description": "When Scavio last enriched this company.",
|
|
156
|
+
"icon": "IconClock",
|
|
157
|
+
"isNullable": true
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"universalIdentifier": "a279c392-b8fc-4356-a292-d2ca7d5152d4",
|
|
161
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
162
|
+
"type": "LINKS",
|
|
163
|
+
"name": "scavioContactPage",
|
|
164
|
+
"label": "Contact Page",
|
|
165
|
+
"description": "The company's contact page.",
|
|
166
|
+
"icon": "IconAddressBook",
|
|
167
|
+
"isNullable": true
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"universalIdentifier": "bc4f4923-4a48-45d1-a4a8-4b8357a3ea38",
|
|
171
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
172
|
+
"type": "TEXT",
|
|
173
|
+
"name": "scavioOwnerTitle",
|
|
174
|
+
"label": "Owner Title",
|
|
175
|
+
"description": "The owner's title as published.",
|
|
176
|
+
"icon": "IconBriefcase",
|
|
177
|
+
"isNullable": true
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"universalIdentifier": "c81344e1-1937-467b-8d22-9c1b62f2ecf0",
|
|
181
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
182
|
+
"type": "EMAILS",
|
|
183
|
+
"name": "scavioOwnerEmail",
|
|
184
|
+
"label": "Owner Email",
|
|
185
|
+
"description": "The owner's email when the website publishes it.",
|
|
186
|
+
"icon": "IconMailUp",
|
|
187
|
+
"isNullable": true
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"universalIdentifier": "c9f715e9-b113-47f4-9a5d-d9f0853f6c43",
|
|
191
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
192
|
+
"type": "EMAILS",
|
|
193
|
+
"name": "scavioEmails",
|
|
194
|
+
"label": "Website Emails",
|
|
195
|
+
"description": "Emails published on the company's website.",
|
|
196
|
+
"icon": "IconMail",
|
|
197
|
+
"isNullable": true
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"indexes": [],
|
|
201
|
+
"permissionFlags": [],
|
|
202
|
+
"roles": [
|
|
203
|
+
{
|
|
204
|
+
"universalIdentifier": "2744af0c-2361-48bd-9b9a-7cafffd5e372",
|
|
205
|
+
"label": "Scavio enrichment role",
|
|
206
|
+
"description": "Reads companies and writes the enrichment fields back to them.",
|
|
207
|
+
"canReadAllObjectRecords": false,
|
|
208
|
+
"canUpdateAllObjectRecords": false,
|
|
209
|
+
"canSoftDeleteAllObjectRecords": false,
|
|
210
|
+
"canDestroyAllObjectRecords": false,
|
|
211
|
+
"canUpdateAllSettings": false,
|
|
212
|
+
"canBeAssignedToAgents": false,
|
|
213
|
+
"canBeAssignedToUsers": false,
|
|
214
|
+
"canBeAssignedToApiKeys": false,
|
|
215
|
+
"objectPermissions": [
|
|
216
|
+
{
|
|
217
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
218
|
+
"canReadObjectRecords": true,
|
|
219
|
+
"canUpdateObjectRecords": true,
|
|
220
|
+
"canSoftDeleteObjectRecords": false,
|
|
221
|
+
"canDestroyObjectRecords": false,
|
|
222
|
+
"universalIdentifier": "4c27010a-30a7-5c39-bdbe-385af4020840"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"fieldPermissions": [],
|
|
226
|
+
"permissionFlagUniversalIdentifiers": [
|
|
227
|
+
"6189e7bd-4051-5752-b6b1-5f31358fbaf1"
|
|
228
|
+
],
|
|
229
|
+
"rowLevelPermissionPredicateGroups": [],
|
|
230
|
+
"rowLevelPermissionPredicates": []
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"skills": [],
|
|
234
|
+
"agents": [],
|
|
235
|
+
"workflows": [],
|
|
236
|
+
"connectionProviders": [],
|
|
237
|
+
"messagingProviders": [],
|
|
238
|
+
"mcpServers": [],
|
|
239
|
+
"logicFunctions": [
|
|
240
|
+
{
|
|
241
|
+
"universalIdentifier": "09069cc5-52c1-413e-9db9-8e752a9d3341",
|
|
242
|
+
"name": "health-check",
|
|
243
|
+
"handlerName": "default.config.handler",
|
|
244
|
+
"sourceHandlerPath": "src/logic-functions/health-check.ts",
|
|
245
|
+
"builtHandlerPath": "src/logic-functions/health-check.mjs",
|
|
246
|
+
"builtHandlerChecksum": "f60c8b7f480fe4ca1e65c85408becd8c"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"universalIdentifier": "3299b3b9-f0cd-4ed8-aa81-5ec2b4650606",
|
|
250
|
+
"name": "start-scavio-enrichment",
|
|
251
|
+
"description": "Queues a Scavio enrichment for the given companies. Results are written to each company as it finishes.",
|
|
252
|
+
"timeoutSeconds": 60,
|
|
253
|
+
"httpRouteTriggerSettings": {
|
|
254
|
+
"path": "/scavio/enrich-companies",
|
|
255
|
+
"httpMethod": "POST",
|
|
256
|
+
"isAuthRequired": true
|
|
257
|
+
},
|
|
258
|
+
"workflowActionTriggerSettings": {
|
|
259
|
+
"label": "Enrich companies with Scavio",
|
|
260
|
+
"icon": "IconSparkles",
|
|
261
|
+
"inputSchema": [
|
|
262
|
+
{
|
|
263
|
+
"type": "object",
|
|
264
|
+
"properties": {
|
|
265
|
+
"records": {
|
|
266
|
+
"type": "records",
|
|
267
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
268
|
+
"label": "Companies"
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
],
|
|
273
|
+
"outputSchema": [
|
|
274
|
+
{
|
|
275
|
+
"type": "object",
|
|
276
|
+
"properties": {
|
|
277
|
+
"success": {
|
|
278
|
+
"type": "boolean",
|
|
279
|
+
"label": "Started"
|
|
280
|
+
},
|
|
281
|
+
"queued": {
|
|
282
|
+
"type": "number",
|
|
283
|
+
"label": "Companies queued"
|
|
284
|
+
},
|
|
285
|
+
"noWebsite": {
|
|
286
|
+
"type": "number",
|
|
287
|
+
"label": "Companies without a website"
|
|
288
|
+
},
|
|
289
|
+
"notFound": {
|
|
290
|
+
"type": "number",
|
|
291
|
+
"label": "Companies not found"
|
|
292
|
+
},
|
|
293
|
+
"message": {
|
|
294
|
+
"type": "string",
|
|
295
|
+
"label": "Message"
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
"handlerName": "default.config.handler",
|
|
302
|
+
"sourceHandlerPath": "src/logic-functions/start-enrichment.ts",
|
|
303
|
+
"builtHandlerPath": "src/logic-functions/start-enrichment.mjs",
|
|
304
|
+
"builtHandlerChecksum": "43df70fb65dd865d5d326ca4430c66a1"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"universalIdentifier": "d677dd12-557a-4a33-b285-d360b879ebdd",
|
|
308
|
+
"name": "scavio-enrich-worker",
|
|
309
|
+
"description": "Background job: enriches a list of companies one after another through the Scavio API.",
|
|
310
|
+
"timeoutSeconds": 900,
|
|
311
|
+
"handlerName": "default.config.handler",
|
|
312
|
+
"sourceHandlerPath": "src/logic-functions/enrich-worker.ts",
|
|
313
|
+
"builtHandlerPath": "src/logic-functions/enrich-worker.mjs",
|
|
314
|
+
"builtHandlerChecksum": "73a06c87b2083e41b9b526b48d0614ef"
|
|
315
|
+
}
|
|
316
|
+
],
|
|
317
|
+
"frontComponents": [
|
|
318
|
+
{
|
|
319
|
+
"universalIdentifier": "849a48f1-ea4f-4dd7-96cb-e8ffc052a680",
|
|
320
|
+
"name": "enrich-with-scavio",
|
|
321
|
+
"description": "Starts a Scavio enrichment for the selected companies.",
|
|
322
|
+
"isHeadless": true,
|
|
323
|
+
"componentName": "EnrichWithScavio",
|
|
324
|
+
"sourceComponentPath": "src/front-components/enrich-with-scavio.tsx",
|
|
325
|
+
"builtComponentPath": "src/front-components/enrich-with-scavio.mjs",
|
|
326
|
+
"builtComponentChecksum": "951aa56fcf040995bda2d4c29db99b83b2f221c3099f59bc15631d196b058f1e",
|
|
327
|
+
"usesSdkClient": true
|
|
328
|
+
}
|
|
329
|
+
],
|
|
330
|
+
"publicAssets": [
|
|
331
|
+
{
|
|
332
|
+
"filePath": "public/gallery/enrich-command.png",
|
|
333
|
+
"fileName": "enrich-command.png",
|
|
334
|
+
"fileType": "png",
|
|
335
|
+
"checksum": "d22c69daa58d97d2ac62981c5c770718"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"filePath": "public/gallery/enriched-companies.png",
|
|
339
|
+
"fileName": "enriched-companies.png",
|
|
340
|
+
"fileType": "png",
|
|
341
|
+
"checksum": "46421c1f4362de3dad94d9e78b7ce956"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"filePath": "public/logo.png",
|
|
345
|
+
"fileName": "logo.png",
|
|
346
|
+
"fileType": "png",
|
|
347
|
+
"checksum": "859fd446e4dbf94690fa49376197c116"
|
|
348
|
+
}
|
|
349
|
+
],
|
|
350
|
+
"views": [
|
|
351
|
+
{
|
|
352
|
+
"universalIdentifier": "35144e37-dfb9-4f74-86be-bf1d742af89d",
|
|
353
|
+
"name": "Enriched (Scavio)",
|
|
354
|
+
"icon": "IconSparkles",
|
|
355
|
+
"objectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
356
|
+
"type": "TABLE",
|
|
357
|
+
"fields": [
|
|
358
|
+
{
|
|
359
|
+
"universalIdentifier": "acc2c551-7b71-4f7e-b7bf-fc61c46ec4bb",
|
|
360
|
+
"fieldMetadataUniversalIdentifier": "20202020-4d99-4e2e-a84c-4a27837b1ece",
|
|
361
|
+
"position": 0,
|
|
362
|
+
"isVisible": true
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"universalIdentifier": "7dc92834-12fe-4a62-837b-e60c97addb1f",
|
|
366
|
+
"fieldMetadataUniversalIdentifier": "20202020-0c28-43d8-8ba5-3659924d3489",
|
|
367
|
+
"position": 1,
|
|
368
|
+
"isVisible": true
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"universalIdentifier": "c9a82904-585e-4a70-b3a6-c53f7e9b5d16",
|
|
372
|
+
"fieldMetadataUniversalIdentifier": "98fb6be3-8f51-4dbb-b876-1bc62c95c4d3",
|
|
373
|
+
"position": 2,
|
|
374
|
+
"isVisible": true
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"universalIdentifier": "415f78b3-fd86-40bf-9a2e-74f073b5b155",
|
|
378
|
+
"fieldMetadataUniversalIdentifier": "c9f715e9-b113-47f4-9a5d-d9f0853f6c43",
|
|
379
|
+
"position": 3,
|
|
380
|
+
"isVisible": true
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"universalIdentifier": "4ee8572d-1aff-44d0-bb88-919d2bb85215",
|
|
384
|
+
"fieldMetadataUniversalIdentifier": "2ba91ee1-1ef5-4a8d-bb90-604e463a9cbf",
|
|
385
|
+
"position": 4,
|
|
386
|
+
"isVisible": true
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"universalIdentifier": "9e087fdd-f0f2-4121-9fdb-ff688970159c",
|
|
390
|
+
"fieldMetadataUniversalIdentifier": "27540976-1871-4a57-acb7-24014f6c001f",
|
|
391
|
+
"position": 5,
|
|
392
|
+
"isVisible": true
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"universalIdentifier": "1613ec1a-7025-45a3-8aa7-3924cd28cfed",
|
|
396
|
+
"fieldMetadataUniversalIdentifier": "bc4f4923-4a48-45d1-a4a8-4b8357a3ea38",
|
|
397
|
+
"position": 6,
|
|
398
|
+
"isVisible": true
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"universalIdentifier": "daa2e49d-bd8e-4b69-8111-05eebce8166a",
|
|
402
|
+
"fieldMetadataUniversalIdentifier": "c81344e1-1937-467b-8d22-9c1b62f2ecf0",
|
|
403
|
+
"position": 7,
|
|
404
|
+
"isVisible": true
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"universalIdentifier": "b236d8e6-811b-44bc-9eda-bd9aad7db3ba",
|
|
408
|
+
"fieldMetadataUniversalIdentifier": "606f5b14-a5d6-46b4-b7fc-5fa3a28dee5e",
|
|
409
|
+
"position": 8,
|
|
410
|
+
"isVisible": true
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"universalIdentifier": "96352d1e-9d9c-4e5d-9d8e-2439e2b2ed20",
|
|
414
|
+
"fieldMetadataUniversalIdentifier": "a279c392-b8fc-4356-a292-d2ca7d5152d4",
|
|
415
|
+
"position": 9,
|
|
416
|
+
"isVisible": true
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"universalIdentifier": "a5617744-b3ff-4eef-9189-5d517354a91b",
|
|
420
|
+
"fieldMetadataUniversalIdentifier": "20202020-ebeb-4beb-b9ad-6848036fb451",
|
|
421
|
+
"position": 10,
|
|
422
|
+
"isVisible": true
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"universalIdentifier": "ec16f4a3-ef46-4c07-9bc8-50578249566b",
|
|
426
|
+
"fieldMetadataUniversalIdentifier": "23600ea9-402a-45e4-9248-f16e6e197355",
|
|
427
|
+
"position": 11,
|
|
428
|
+
"isVisible": true
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"universalIdentifier": "01c9c4b1-ecbc-4c11-9db0-066ac84d09d9",
|
|
432
|
+
"fieldMetadataUniversalIdentifier": "a077d5f5-926e-4f57-96a3-d22fcbae43d7",
|
|
433
|
+
"position": 12,
|
|
434
|
+
"isVisible": true
|
|
435
|
+
}
|
|
436
|
+
]
|
|
437
|
+
}
|
|
438
|
+
],
|
|
439
|
+
"viewFields": [],
|
|
440
|
+
"navigationMenuItems": [],
|
|
441
|
+
"pageLayouts": [],
|
|
442
|
+
"pageLayoutTabs": [],
|
|
443
|
+
"pageLayoutWidgets": [],
|
|
444
|
+
"commandMenuItems": [
|
|
445
|
+
{
|
|
446
|
+
"universalIdentifier": "848126d6-e2b1-4945-b98d-3a65b8c509f2",
|
|
447
|
+
"availabilityObjectUniversalIdentifier": "20202020-b374-4779-a561-80086cb2e17f",
|
|
448
|
+
"frontComponentUniversalIdentifier": "849a48f1-ea4f-4dd7-96cb-e8ffc052a680",
|
|
449
|
+
"label": "Enrich with Scavio",
|
|
450
|
+
"availabilityType": "RECORD_SELECTION",
|
|
451
|
+
"conditionalAvailabilityExpression": "not isSelectAll"
|
|
452
|
+
}
|
|
453
|
+
],
|
|
454
|
+
"timelineActivityTypes": [],
|
|
455
|
+
"settingsMenuItems": [],
|
|
456
|
+
"validationRules": [],
|
|
457
|
+
"relatedRecordPaths": [],
|
|
458
|
+
"translations": {}
|
|
459
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scavio/twenty",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": "^24.5.0 || ^26.5.1",
|
|
7
|
+
"npm": "please-use-yarn",
|
|
8
|
+
"yarn": ">=4.0.2",
|
|
9
|
+
"twenty": ">=2.58.0"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"twenty-app",
|
|
13
|
+
"twenty",
|
|
14
|
+
"crm",
|
|
15
|
+
"enrichment",
|
|
16
|
+
"company-enrichment",
|
|
17
|
+
"scavio"
|
|
18
|
+
],
|
|
19
|
+
"packageManager": "yarn@4.18.1",
|
|
20
|
+
"scripts": {
|
|
21
|
+
"twenty": "twenty",
|
|
22
|
+
"lint": "oxlint -c .oxlintrc.json .",
|
|
23
|
+
"lint:fix": "oxlint --fix -c .oxlintrc.json .",
|
|
24
|
+
"typecheck": "tsgo --noEmit -p tsconfig.spec.json",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"test:unit": "vitest run --config vitest.unit.config.ts"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/node": "^24.7.2",
|
|
31
|
+
"@types/react": "^19.0.0",
|
|
32
|
+
"@typescript/native-preview": "^7.0.0-dev.20260116.1",
|
|
33
|
+
"oxlint": "^0.16.0",
|
|
34
|
+
"react": "^19.0.0",
|
|
35
|
+
"react-dom": "^19.0.0",
|
|
36
|
+
"twenty-client-sdk": "2.58.0",
|
|
37
|
+
"twenty-sdk": "2.58.0",
|
|
38
|
+
"twenty-ui": "2.58.0",
|
|
39
|
+
"typescript": "^5.9.3",
|
|
40
|
+
"vite-tsconfig-paths": "^4.2.1",
|
|
41
|
+
"vitest": "^4.1.12"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"libphonenumber-js": "^1.12.0"
|
|
45
|
+
},
|
|
46
|
+
"description": "Twenty app: fill company emails, phones, social links and the owner's name from each company's own website, via the Scavio API.",
|
|
47
|
+
"homepage": "https://github.com/scavio-ai/twenty-scavio#readme",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "git+https://github.com/scavio-ai/twenty-scavio.git"
|
|
51
|
+
},
|
|
52
|
+
"bugs": {
|
|
53
|
+
"url": "https://github.com/scavio-ai/twenty-scavio/issues"
|
|
54
|
+
},
|
|
55
|
+
"author": "Scavio <hello@scavio.dev>"
|
|
56
|
+
}
|
|
Binary file
|
|
Binary file
|
package/public/logo.png
ADDED
|
Binary file
|