Skip to content

feat(integrations): add Sixtyfour AI integration#3981

Merged
waleedlatif1 merged 7 commits intostagingfrom
waleedlatif1/add-sixtyfour-ai
Apr 6, 2026
Merged

feat(integrations): add Sixtyfour AI integration#3981
waleedlatif1 merged 7 commits intostagingfrom
waleedlatif1/add-sixtyfour-ai

Conversation

@waleedlatif1
Copy link
Copy Markdown
Collaborator

Summary

  • Add Sixtyfour AI integration with 4 tools: find_phone, find_email, enrich_lead, enrich_company
  • Block with operation dropdown, API key auth, conditional fields per operation, advanced mode for optional params
  • Brand icon, generated docs with manual description section

Type of Change

  • New feature

Testing

Tested manually

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

Add Sixtyfour AI integration with 4 tools: find_phone, find_email, enrich_lead, enrich_company. Includes block with operation dropdown, API key auth, conditional fields per operation, brand icon, and generated docs.
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Apr 6, 2026 6:16pm

Request Review

@cursor
Copy link
Copy Markdown

cursor bot commented Apr 6, 2026

PR Summary

Medium Risk
Adds a new external API-backed integration and tool endpoints, which may fail at runtime due to API/JSON-shape mismatches or auth/key handling. Risk is limited to the new sixtyfour block/tools and a small docs-link/icon update.

Overview
Adds a new Sixtyfour AI integration end-to-end: new sixtyfour block configuration (operation dropdown + conditional inputs) plus four registered tools (sixtyfour_find_phone, sixtyfour_find_email, sixtyfour_enrich_lead, sixtyfour_enrich_company) that call api.sixtyfour.ai and transform responses into normalized outputs.

Updates docs and landing integration metadata to include Sixtyfour (new icon + docs page entry) and switches Airweave’s docs URL to https://docs.sim.ai/tools/airweave. Also updates the ExtendIcon SVG (new viewBox/paths) and bumps turbo.json $schema URL.

Reviewed by Cursor Bugbot for commit fd716cc. Configure here.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 6, 2026

Greptile Summary

This PR adds a Sixtyfour AI integration with four operations — find_phone, find_email, enrich_lead, and enrich_company — following the established tool + block + icon pattern. The implementation is clean and consistent with the rest of the codebase.

Key changes:

  • Four tool files (find_phone, find_email, enrich_lead, enrich_company) with proper response.ok guards and try/catch JSON.parse wrappers
  • A single block with operation-conditional subBlocks and a params remapping function that correctly bridges block input IDs (e.g. leadStruct) to tool param names (e.g. struct)
  • SixtyfourIcon SVG added to both apps/sim and apps/docs icon files
  • Registration in the tool and block registries
  • The ExtendIcon in both icon files was also modified (new paths, viewBox expanded from 0 0 33 18 to 0 0 33 24) — this appears unrelated to the Sixtyfour integration and may have been accidentally bundled into this PR

Confidence Score: 5/5

This PR is safe to merge — all previously flagged issues (JSON.parse safety, response.ok checks) are resolved and the core integration logic is correct.

All remaining findings are P2 style observations (unrelated ExtendIcon change). No logic bugs, no security issues, no broken param mappings. The executor's merge semantics (finalInputs = { ...inputs, ...transformedParams }) confirm the block's partial params function is correct by design.

apps/sim/components/icons.tsx and apps/docs/components/icons.tsx — only for the unrelated ExtendIcon modification that could be split into a separate PR.

Important Files Changed

Filename Overview
apps/sim/tools/sixtyfour/find_phone.ts Implements find-phone tool with proper response.ok guard, flexible phone-format normalization, and user-only API key visibility
apps/sim/tools/sixtyfour/find_email.ts Implements find-email tool with robust parseEmails helper and correct response error propagation
apps/sim/tools/sixtyfour/enrich_lead.ts JSON.parse calls wrapped in try/catch with descriptive error messages; response.ok checked before returning success
apps/sim/tools/sixtyfour/enrich_company.ts All three JSON.parse calls (targetCompany, struct, leadStruct) guarded; response.ok checked
apps/sim/blocks/blocks/sixtyfour.ts Operation-conditional subBlocks and param remapping are correct; unrelated ExtendIcon change in icon dependency file
apps/sim/tools/sixtyfour/types.ts Well-typed param/response interfaces for all four tools; no any usage
apps/sim/components/icons.tsx Adds SixtyfourIcon; also modifies ExtendIcon (viewBox + new paths) in a change unrelated to this PR
apps/docs/components/icons.tsx Mirrors sim icons: adds SixtyfourIcon and modifies ExtendIcon in an unrelated change

Sequence Diagram

sequenceDiagram
    participant U as User / Block UI
    participant E as Executor (server)
    participant S as Sixtyfour API

    U->>E: Run SixtyfourBlock (operation, apiKey, ...inputs)
    E->>E: tools.config.params() — remap block IDs to tool param names
    note over E: finalInputs = { ...inputs, ...transformedParams }

    alt find_phone
        E->>S: POST /find-phone  { lead: { name, company?, linkedin_url?, ... } }
        S-->>E: { phone, name, company, linkedin_url }
        E-->>U: { phone, name, company, linkedinUrl }
    else find_email
        E->>S: POST /find-email  { lead: { name, company?, linkedin?, ... }, mode? }
        S-->>E: { email[][], personal_email[][], name, ... }
        E-->>U: { emails[], personalEmails[], name, ... }
    else enrich_lead
        E->>S: POST /enrich-lead  { lead_info: {}, struct: {}, research_plan? }
        S-->>E: { notes, structured_data, references, confidence_score }
        E-->>U: { notes, structuredData, references, confidenceScore }
    else enrich_company
        E->>S: POST /enrich-company  { target_company: {}, struct: {}, find_people?, ... }
        S-->>E: { notes, structured_data, references, confidence_score }
        E-->>U: { notes, structuredData, references, confidenceScore }
    end
Loading

Reviews (3): Last reviewed commit: "more inp/outputs" | Re-trigger Greptile

Wrap JSON.parse calls in try/catch for enrich_lead and enrich_company.
Add response.ok checks to all 4 tools' transformResponse.
@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@cursor review

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1
Copy link
Copy Markdown
Collaborator Author

@cursor review

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit fd716cc. Configure here.

@waleedlatif1 waleedlatif1 merged commit 62a7700 into staging Apr 6, 2026
12 checks passed
@waleedlatif1 waleedlatif1 deleted the waleedlatif1/add-sixtyfour-ai branch April 6, 2026 18:25
waleedlatif1 added a commit that referenced this pull request Apr 6, 2026
* feat(integrations): add Sixtyfour AI integration

Add Sixtyfour AI integration with 4 tools: find_phone, find_email, enrich_lead, enrich_company. Includes block with operation dropdown, API key auth, conditional fields per operation, brand icon, and generated docs.

* fix(integrations): add error handling to sixtyfour tools

Wrap JSON.parse calls in try/catch for enrich_lead and enrich_company.
Add response.ok checks to all 4 tools' transformResponse.

* fix(integrations): use typed Record for leadStruct to fix spread type error

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* docs

* airweave docslink

* turbo update

* more inp/outputs

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
emir-karabeg pushed a commit that referenced this pull request Apr 7, 2026
* feat(integrations): add Sixtyfour AI integration

Add Sixtyfour AI integration with 4 tools: find_phone, find_email, enrich_lead, enrich_company. Includes block with operation dropdown, API key auth, conditional fields per operation, brand icon, and generated docs.

* fix(integrations): add error handling to sixtyfour tools

Wrap JSON.parse calls in try/catch for enrich_lead and enrich_company.
Add response.ok checks to all 4 tools' transformResponse.

* fix(integrations): use typed Record for leadStruct to fix spread type error

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* docs

* airweave docslink

* turbo update

* more inp/outputs

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant