feat(findymail): add Findymail B2B contact data integration#4654
Conversation
Adds 11 tools covering verified email lookup (by name, LinkedIn, domain roles), email verification, reverse email lookup with profile enrichment, company info, employee discovery, phone lookup, technology stack detection, and credit checks. Single API-key block with operation dropdown, gradient-rendered icon, and generated docs.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview Updates docs and catalog metadata to expose the new Reviewed by Cursor Bugbot for commit 280d73a. Configure here. |
Greptile SummaryThis PR adds a Findymail B2B contact data integration with 11 tools covering email finding, verification, reverse lookup, company enrichment, employee discovery, phone lookup, technology stack search, and credit checking.
Confidence Score: 5/5Safe to merge — all 11 tools correctly handle API errors, use proper credential visibility, and are consistently wired through the block config and tool registry. The integration is a pure addition with no changes to existing code paths. Error handling, API key visibility, and the block-to-tool dispatch are all implemented correctly. The only outstanding nit (placeholder operation descriptions in integrations.json) was already flagged in a prior review round and has no runtime impact. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant FindymailBlock
participant ToolRegistry
participant FindymailAPI
User->>FindymailBlock: Select operation + enter params
FindymailBlock->>FindymailBlock: "params() strips empty values,<br/>parses arrays (JSON → comma-split fallback)"
FindymailBlock->>ToolRegistry: Dispatch to e.g. findymail_find_email_from_name
ToolRegistry->>FindymailAPI: "POST /api/search/name<br/>Authorization: Bearer {apiKey}"
alt Success (2xx)
FindymailAPI-->>ToolRegistry: "{ contact: { name, email, domain } }"
ToolRegistry-->>FindymailBlock: "{ success: true, output: { contact } }"
else Error (4xx/5xx)
FindymailAPI-->>ToolRegistry: "{ message: "..." }"
ToolRegistry-->>FindymailBlock: "{ success: false, error: "...", output: { contact: null } }"
end
FindymailBlock-->>User: Show result
Reviews (3): Last reviewed commit: "improvement(findymail): exclude operatio..." | Re-trigger Greptile |
- All 11 tools now check response.ok and return success:false with the API error message on non-2xx responses - search_technologies now maps last_detected_at to match lookup_technologies and the shared output schema - Restore file_v3 in docs icon-mapping (translated docs still reference it)
|
@greptile |
|
@cursor review |
Match the convention used by enrich/apify/box/calendly — destructure out operation before forwarding the rest to the tool call, so the operation key doesn't leak into the tool payload.
|
@greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 280d73a. Configure here.
* feat(findymail): add Findymail B2B contact data integration Adds 11 tools covering verified email lookup (by name, LinkedIn, domain roles), email verification, reverse email lookup with profile enrichment, company info, employee discovery, phone lookup, technology stack detection, and credit checks. Single API-key block with operation dropdown, gradient-rendered icon, and generated docs. * fix(findymail): handle HTTP errors and surface last_detected_at - All 11 tools now check response.ok and return success:false with the API error message on non-2xx responses - search_technologies now maps last_detected_at to match lookup_technologies and the shared output schema - Restore file_v3 in docs icon-mapping (translated docs still reference it) * improvement(findymail): exclude operation from params transform Match the convention used by enrich/apify/box/calendly — destructure out operation before forwarding the rest to the tool call, so the operation key doesn't leak into the tool payload.
Summary
Type of Change
Testing
Tested manually
Checklist