Skip to content

Commit 8b93e43

Browse files
authored
improvement(integrations): validate BigQuery/Forms/PageSpeed + regenerate integration docs (#5109)
* improvement(integrations): validate BigQuery/Forms/PageSpeed + regenerate integration docs - BigQuery: mark null-defaulted outputs optional (get_table type/numRows/numBytes/creationTime/lastModifiedTime/location, list_datasets location, list_tables type, query totalBytesProcessed) - Google Forms: add response pagination (pageToken + filter params, nextPageToken output), fix pageSize visibility, advanced-mode pagination subBlocks + filter wandConfig - PageSpeed: add a 7th BlockMeta template (competitor benchmark) - Regenerate integration docs; add manual intro sections to new datagma/dropcontact/enrow/icypeas/leadmagic pages * fix(docs-gen): preserve apostrophes in tool descriptions when generating docs The doc generator extracted tool descriptions with a character class that excluded both quote types (['"]([^'"]...)['"]), so a double-quoted description containing an apostrophe (e.g. "Find someone's email") was truncated at the apostrophe — the generated docs/catalog showed stubs like "Find someone". Anchor extraction on the actual opening quote (single/double/backtick), matching the existing extractDescription helper, in both buildToolDescriptionMap and extractToolInfo. Regenerated docs restore full descriptions across all affected integrations (Apollo, Ahrefs, LeadMagic, Findymail, OpenAI, Slack, etc.). * fix(docs-gen): resolve tools defined in a sibling file + scope params per tool The doc generator located a tool's definition only by filename convention (decompress.ts / index.ts), so file_decompress — which lives in compress.ts alongside file_compress — fell back to index.ts and rendered an empty Input table. It also read the params block from the first tool in a multi-tool file, so every tool in such a file inherited the first tool's inputs/outputs. - getToolInfo: when no candidate file declares the exact tool ID, scan the whole tool-prefix directory for the file that does. - extractToolInfo: read the params block scoped to the specific tool, falling back to the full file for tools that inherit params via spread. Regenerated docs eliminate ~50 empty/incorrect input tables across integrations (clickhouse, rb2b, reddit, file, etc.); param-less OAuth-only tools correctly keep an empty input table.
1 parent 80735b4 commit 8b93e43

59 files changed

Lines changed: 1750 additions & 1035 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/docs/components/icons.tsx

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7870,3 +7870,114 @@ export function TriggerDevIcon(props: SVGProps<SVGSVGElement>) {
78707870
</svg>
78717871
)
78727872
}
7873+
7874+
/** Datagma brand icon: navy square with the white Datagma "D" mark. */
7875+
export function DatagmaIcon(props: SVGProps<SVGSVGElement>) {
7876+
return (
7877+
<svg {...props} viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>
7878+
<rect width='24' height='24' fill='#003071' />
7879+
<path
7880+
fillRule='evenodd'
7881+
clipRule='evenodd'
7882+
d='M6 4.5H11.5C15.9 4.5 18.5 7.8 18.5 12C18.5 16.2 15.9 19.5 11.5 19.5H6V4.5ZM9.3 7.5V16.5H11.5C13.8 16.5 15.2 14.6 15.2 12C15.2 9.4 13.8 7.5 11.5 7.5H9.3Z'
7883+
fill='#FFFFFF'
7884+
/>
7885+
</svg>
7886+
)
7887+
}
7888+
7889+
/** LeadMagic brand icon: purple gradient tile with the white spark mark. */
7890+
export function LeadMagicIcon(props: SVGProps<SVGSVGElement>) {
7891+
const id = useId()
7892+
const gradient = `leadmagic_grad_${id}`
7893+
return (
7894+
<svg {...props} viewBox='0 0 65 65' fill='none' xmlns='http://www.w3.org/2000/svg'>
7895+
<defs>
7896+
<linearGradient id={gradient} x1='0%' y1='100%' x2='100%' y2='0%'>
7897+
<stop offset='0%' stopColor='#4C1D95' />
7898+
<stop offset='50%' stopColor='#7C3AED' />
7899+
<stop offset='100%' stopColor='#C4B5FD' />
7900+
</linearGradient>
7901+
</defs>
7902+
<rect width='65' height='65' fill={`url(#${gradient})`} />
7903+
<path
7904+
d='M34.1016 37.707C33.5363 37.7698 33.0967 38.021 32.8454 38.5235C32.5942 39.0259 32.4686 39.654 32.5942 40.4705C32.5942 40.4705 34.29 49.8288 34.5412 50.8337C34.7925 51.8386 35.3577 53.4716 36.1114 53.346C36.9279 53.2203 36.9907 51.5245 36.9279 50.4568C36.9279 50.4568 36.237 41.601 36.1742 40.5961C36.1114 39.5284 35.8602 38.7119 35.4833 38.335C35.1065 37.8326 34.6668 37.6442 34.1016 37.707Z'
7905+
fill='#FFFFFF'
7906+
/>
7907+
<path
7908+
d='M33.5344 26.1529L35.4815 23.201C35.7955 22.6985 36.1095 22.7613 36.1095 23.1382L35.6699 26.9066C35.6071 27.2835 35.9211 27.7231 36.4236 27.6603L39.7523 26.9066C39.9408 26.9066 40.1292 27.1578 39.9408 27.3463L37.4285 29.5445C37.0516 29.9842 37.0516 30.4238 37.5541 30.7378L39.8152 32.1196C39.9408 32.2452 39.878 32.4336 39.6895 32.4336L36.9888 32.6221C36.4236 32.6849 36.1723 33.1245 36.2351 33.6898L37.1144 36.9558C37.1773 37.1442 36.9888 37.3326 36.7376 37.0814L34.4137 34.5691C33.9741 34.1922 33.4088 34.255 33.032 34.6947L31.399 36.8301C31.2734 36.9558 30.9593 36.8929 31.0221 36.7045L31.1478 34.1922C31.085 33.627 30.7081 33.1873 30.1428 33.2501L27.5049 34.0666C27.2537 34.1294 27.1909 33.8154 27.3165 33.6898L29.2635 31.5543C29.6404 31.1147 29.7032 30.6122 29.1379 30.2982L26.3116 28.9792C25.9348 28.728 26.1232 28.4768 26.4372 28.4768L29.452 28.414C29.8916 28.414 30.2685 28.0999 30.1428 27.4719C30.1428 27.4719 29.2635 24.3315 29.0751 23.8291C28.8867 23.3266 29.3892 23.0126 29.766 23.3894L32.3411 26.1529C32.7179 26.5926 33.1576 26.6554 33.5344 26.1529Z'
7909+
fill='#FFFFFF'
7910+
/>
7911+
<path
7912+
d='M32.5928 22.3851C32.3416 22.3851 32.0903 22.1339 32.0275 21.757L30.3317 13.2152C30.2689 12.8384 30.4574 12.1475 31.0854 12.0219C31.6507 11.8963 32.216 12.3359 32.2788 12.7128L32.9068 21.6314C32.9696 22.0083 32.9696 22.3851 32.5928 22.3851Z'
7913+
fill='#FFFFFF'
7914+
/>
7915+
<path
7916+
d='M40.5694 29.7335C40.5066 29.3567 40.8834 29.2939 41.2603 29.2939L49.3624 27.9121C49.8649 27.9121 50.1161 28.4146 50.1161 28.7286C50.2417 29.1054 49.7392 29.7335 49.0484 29.6707L41.3231 29.9847C41.009 29.9847 40.6322 30.1104 40.5694 29.7335Z'
7917+
fill='#FFFFFF'
7918+
/>
7919+
<path
7920+
d='M16.0122 32.3718C16.0122 31.9949 16.6402 31.2412 17.3939 31.2412L24.868 31.0528C25.2448 30.99 25.6217 31.1156 25.6217 31.4297C25.6217 31.7437 25.1192 31.8693 24.7424 31.9321L17.2055 33.1883C16.7658 33.1254 15.8865 32.8742 16.0122 32.3718Z'
7921+
fill='#FFFFFF'
7922+
/>
7923+
<path
7924+
d='M38.4972 24.2699C38.1831 24.0186 38.8112 23.265 39.0624 22.9509L43.3333 17.1099C43.5845 16.6702 44.401 16.419 44.9035 16.8586C45.2803 17.2355 45.2175 17.8007 44.9663 18.052L39.3137 24.0186C39.0624 24.2699 38.7484 24.3955 38.4972 24.2699Z'
7925+
fill='#FFFFFF'
7926+
/>
7927+
<path
7928+
d='M18.838 19.43C19.2148 18.8647 20.0313 19.0531 20.3453 19.3044L26.1864 24.5802C26.5004 24.8314 26.6261 25.2082 26.4376 25.3339C26.2492 25.4595 25.9352 25.3967 25.6211 25.2082L18.9636 20.8117C18.6496 20.5605 18.4611 19.9324 18.838 19.43Z'
7929+
fill='#FFFFFF'
7930+
/>
7931+
</svg>
7932+
)
7933+
}
7934+
7935+
/** Dropcontact brand icon: teal disc with the white open-"d" contact mark. */
7936+
export function DropcontactIcon(props: SVGProps<SVGSVGElement>) {
7937+
return (
7938+
<svg {...props} viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>
7939+
<circle cx='12' cy='12' r='12' fill='#0ABA9F' />
7940+
<path
7941+
d='M13.87 7.9A5 5 0 1 0 13.87 16.1'
7942+
stroke='#FFFFFF'
7943+
strokeWidth='2.4'
7944+
strokeLinecap='round'
7945+
/>
7946+
<path d='M15.1 6.2V17.8' stroke='#FFFFFF' strokeWidth='2.4' strokeLinecap='round' />
7947+
</svg>
7948+
)
7949+
}
7950+
7951+
/** Icypeas brand icon: dark tile with the teal ring + rising-chart mark. */
7952+
export function IcypeasIcon(props: SVGProps<SVGSVGElement>) {
7953+
return (
7954+
<svg {...props} viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>
7955+
<rect width='24' height='24' rx='5' fill='#011C21' />
7956+
<circle cx='12' cy='12' r='7' stroke='#02C29F' strokeWidth='1.7' />
7957+
<path
7958+
d='M7.2 13.8H9.2V11.8H11.2V9.8H13.2V8.2'
7959+
stroke='#02C29F'
7960+
strokeWidth='1.7'
7961+
strokeLinecap='round'
7962+
strokeLinejoin='round'
7963+
/>
7964+
<rect x='13.5' y='5.8' width='2.9' height='2.9' rx='0.8' fill='#02C29F' />
7965+
</svg>
7966+
)
7967+
}
7968+
7969+
/** Enrow brand icon: blue tile with the three white stacked rows. */
7970+
export function EnrowIcon(props: SVGProps<SVGSVGElement>) {
7971+
return (
7972+
<svg {...props} viewBox='0 0 256 256' fill='none' xmlns='http://www.w3.org/2000/svg'>
7973+
<path
7974+
fill='#0056FF'
7975+
d='M217.791 0H38.209C17.107 0 0 17.107 0 38.209v179.582C0 238.893 17.107 256 38.209 256h179.582C238.893 256 256 238.893 256 217.791V38.209C256 17.107 238.893 0 217.791 0z'
7976+
/>
7977+
<path
7978+
fill='#F0F0F0'
7979+
d='M196.877 58.88H78.055a3.82 3.82 0 0 0-3.82 3.82v17.96a3.82 3.82 0 0 0 3.82 3.82h118.822a3.82 3.82 0 0 0 3.821-3.82V62.701a3.82 3.82 0 0 0-3.821-3.821zm.007 112.641H73.454a3.82 3.82 0 0 0-3.821 3.82V193.3a3.82 3.82 0 0 0 3.82 3.821h123.431a3.821 3.821 0 0 0 3.821-3.821v-17.959a3.82 3.82 0 0 0-3.821-3.82zM141.588 115.2H58.606a3.821 3.821 0 0 0-3.82 3.821v17.958a3.82 3.82 0 0 0 3.82 3.821h82.982a3.82 3.82 0 0 0 3.821-3.821v-17.958a3.82 3.82 0 0 0-3.821-3.821z'
7980+
/>
7981+
</svg>
7982+
)
7983+
}

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,14 @@ import {
4545
DagsterIcon,
4646
DatabricksIcon,
4747
DatadogIcon,
48+
DatagmaIcon,
4849
DaytonaIcon,
4950
DevinIcon,
5051
DiscordIcon,
5152
DocumentIcon,
5253
DocuSignIcon,
5354
DropboxIcon,
55+
DropcontactIcon,
5456
DsPyIcon,
5557
DubIcon,
5658
DuckDuckGoIcon,
@@ -60,6 +62,7 @@ import {
6062
EmailBisonIcon,
6163
EnrichmentIcon,
6264
EnrichSoIcon,
65+
EnrowIcon,
6366
EvernoteIcon,
6467
ExaAIIcon,
6568
ExtendIcon,
@@ -101,6 +104,7 @@ import {
101104
HuggingFaceIcon,
102105
HunterIOIcon,
103106
IAMIcon,
107+
IcypeasIcon,
104108
IdentityCenterIcon,
105109
IncidentioIcon,
106110
InfisicalIcon,
@@ -114,6 +118,7 @@ import {
114118
LangsmithIcon,
115119
LatexIcon,
116120
LaunchDarklyIcon,
121+
LeadMagicIcon,
117122
LemlistIcon,
118123
LinearIcon,
119124
LinkedInIcon,
@@ -273,11 +278,13 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
273278
dagster: DagsterIcon,
274279
databricks: DatabricksIcon,
275280
datadog: DatadogIcon,
281+
datagma: DatagmaIcon,
276282
daytona: DaytonaIcon,
277283
devin: DevinIcon,
278284
discord: DiscordIcon,
279285
docusign: DocuSignIcon,
280286
dropbox: DropboxIcon,
287+
dropcontact: DropcontactIcon,
281288
dspy: DsPyIcon,
282289
dub: DubIcon,
283290
duckduckgo: DuckDuckGoIcon,
@@ -287,6 +294,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
287294
emailbison: EmailBisonIcon,
288295
enrich: EnrichSoIcon,
289296
enrichment: EnrichmentIcon,
297+
enrow: EnrowIcon,
290298
evernote: EvernoteIcon,
291299
exa: ExaAIIcon,
292300
extend: ExtendIcon,
@@ -338,6 +346,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
338346
huggingface: HuggingFaceIcon,
339347
hunter: HunterIOIcon,
340348
iam: IAMIcon,
349+
icypeas: IcypeasIcon,
341350
identity_center: IdentityCenterIcon,
342351
imap: MailServerIcon,
343352
incidentio: IncidentioIcon,
@@ -355,6 +364,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
355364
langsmith: LangsmithIcon,
356365
latex: LatexIcon,
357366
launchdarkly: LaunchDarklyIcon,
367+
leadmagic: LeadMagicIcon,
358368
lemlist: LemlistIcon,
359369
linear: LinearIcon,
360370
linear_v2: LinearIcon,

apps/docs/content/docs/en/integrations/agentphone.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,7 @@ Send an outbound SMS or iMessage from an AgentPhone agent
568568

569569
### `agentphone_update_contact`
570570

571-
Update a contact
571+
Update a contact's fields
572572

573573
#### Input
574574

apps/docs/content/docs/en/integrations/ahrefs.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Integrate Ahrefs SEO tools into your workflow. Analyze domain ratings, backlinks
3535

3636
### `ahrefs_domain_rating`
3737

38-
Get the Domain Rating (DR) and Ahrefs Rank for a target domain. Domain Rating shows the strength of a website
38+
Get the Domain Rating (DR) and Ahrefs Rank for a target domain. Domain Rating shows the strength of a website's backlink profile on a scale from 0 to 100.
3939

4040
#### Input
4141

apps/docs/content/docs/en/integrations/apollo.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Integrates Apollo.io into the workflow. Search for people and companies, enrich
4141

4242
### `apollo_people_search`
4343

44-
Search Apollo
44+
Search Apollo's database for people using demographic filters
4545

4646
#### Input
4747

@@ -126,7 +126,7 @@ Enrich data for up to 10 people at once using Apollo
126126

127127
### `apollo_organization_search`
128128

129-
Search Apollo
129+
Search Apollo's database for companies using filters
130130

131131
#### Input
132132

@@ -263,7 +263,7 @@ Update an existing contact in your Apollo database
263263

264264
### `apollo_contact_search`
265265

266-
Search your team
266+
Search your team's contacts in Apollo
267267

268268
#### Input
269269

@@ -381,7 +381,7 @@ Update an existing account in your Apollo database
381381

382382
### `apollo_account_search`
383383

384-
Search your team
384+
Search your team's accounts in Apollo. Display limit: 50,000 records (100 records per page, 500 pages max). Use filters to narrow results. Master key required.
385385

386386
#### Input
387387

@@ -480,7 +480,7 @@ Create a new deal for an account in your Apollo database (master key required)
480480

481481
### `apollo_opportunity_search`
482482

483-
Search and list all deals/opportunities in your team
483+
Search and list all deals/opportunities in your team's Apollo account
484484

485485
#### Input
486486

@@ -544,7 +544,7 @@ Update an existing deal/opportunity in your Apollo database
544544

545545
### `apollo_sequence_search`
546546

547-
Search for sequences/campaigns in your team
547+
Search for sequences/campaigns in your team's Apollo account (master key required)
548548

549549
#### Input
550550

@@ -650,7 +650,7 @@ Search for tasks in Apollo
650650

651651
### `apollo_email_accounts`
652652

653-
Get list of team
653+
Get list of team's linked email accounts in Apollo
654654

655655
#### Input
656656

apps/docs/content/docs/en/integrations/azure_devops.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ Fetch full details of a single work item by ID from Azure DevOps, including titl
373373

374374
### `azure_devops_get_work_items_batch`
375375

376-
Fetch full details for multiple work items by ID from Azure DevOps. Pass comma-separated IDs (e.g.
376+
Fetch full details for multiple work items by ID from Azure DevOps. Pass comma-separated IDs (e.g. "123,456,789"). Requests with more than 200 IDs are automatically split into chunks.
377377

378378
#### Input
379379

0 commit comments

Comments
 (0)