Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

michelle0927
Copy link
Collaborator

@michelle0927 michelle0927 commented Sep 12, 2025

Resolves #18337

Summary by CodeRabbit

  • New Features

    • Search CRM supports offset-based paging (new Offset property) and now returns paging metadata with results.
    • Results are sorted by creation date (newest first) and can target a specific search property.
    • Requests use a consistent result limit for more predictable pages.
  • Chores

    • Action version bumped to 1.1.0.
    • Package version bumped to 1.7.5.

Copy link

vercel bot commented Sep 12, 2025

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

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
pipedream-docs Ignored Ignored Sep 16, 2025 3:02pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Sep 16, 2025 3:02pm

Copy link
Contributor

coderabbitai bot commented Sep 12, 2025

Walkthrough

Updated the HubSpot Search CRM action: bumped action version to 1.1.0, added an offset prop and internal DEFAULT_LIMIT = 200, removed the server-side paginate helper, always includes limit/after and sorts in requests, calls hubspot.searchCRM once returning { results, paging }, and filters non-exact-match results client-side.

Changes

Cohort / File(s) Summary
Action: search-crm
components/hubspot/actions/search-crm/search-crm.mjs
Bumped action version to 1.1.0; added public prop offset (integer, default 0); introduced internal DEFAULT_LIMIT = 200; removed paginate method; run() now destructures offset, adds searchProperty to properties, adds sorts (createdate DESC), always sets limit to DEFAULT_LIMIT and after to offset, calls hubspot.searchCRM once (receives { results, paging }), filters non-exact-match results in-memory, and returns { results, paging }.
Package metadata
components/hubspot/package.json
Bumped package version from 1.7.4 to 1.7.5. No other dependency or runtime changes.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Client as Caller
  participant Action as Search CRM Action
  participant Hubspot as HubSpot SDK

  Note over Action: New flow — single searchCRM call with offset-based paging
  Client->>Action: run(params { q, exactMatch?, offset?, searchProperty?, ... })
  Action->>Hubspot: hubspot.searchCRM(data { limit: DEFAULT_LIMIT, after: offset, properties: [..., searchProperty], sorts: [createdate:DESC], filters? })
  Hubspot-->>Action: { results, paging }
  alt exactMatch is false
    Action->>Action: filter results in-memory
  end
  Action-->>Client: { results, paging }
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

"I hopped through lines with nimble feet,
Added limits, offset, and a sort so neat.
One call returns pages and rows,
I nibbled filters where exactness goes.
— a curious rabbit 🐇"

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning The changeset includes several modifications that are not obviously required by the single bug fix in [#18337], including adding a public offset prop, introducing sorts (createdate DESC), adding searchProperty to properties, changing the run() return shape to {results, paging}, and bumping package versions; these are public or behavioral changes that should be justified. Because the PR description is minimal, it is unclear whether these are intentional parts of the bug fix or out-of-scope edits, which raises risk for callers and reviewers. Please either split unrelated functional or API changes into separate PRs or explicitly document and justify each additional change in this PR, include backward-compatibility notes and changelog/docs updates for public-surface changes, and add tests showing the bug is fixed and that existing behavior is not regressed.
Description Check ⚠️ Warning The PR description only contains "Resolves #18337" and does not follow the repository template which requires a "## WHY" section; it therefore lacks the rationale, a summary of code changes, testing performed, and notes about public/API impacts such as the new offset prop and the changed return shape. As a result reviewers cannot fully assess intent, scope, or risk from the current description. This is insufficient for a proper review. Please update the PR description to use the repository template and populate the "## WHY" section with the rationale for the change, include a concise summary of code changes, list any public API or behavior changes (offset prop, return {results,paging}, added sorts/searchProperty), and describe how you verified the exactMatch=false timeout is fixed; if unrelated changes are included, document or split them into separate PRs.
✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title "Hubspot - update search-crm" is a short, single-sentence summary that accurately references the primary change (updates to the Hubspot search-crm action) and is clear for a quick scan by reviewers. It is concise and not noisy. For maximum clarity it could optionally mention the bug fix (exactMatch timeout) but that is not required.
Linked Issues Check ✅ Passed Linked issue [#18337] reports a timeout when exactMatch=false for the Hubspot Search CRM action. The raw_summary shows the PR replaces the previous paginate flow with a single hubspot.searchCRM call, adds limit/after (offset) handling, and filters non-exact-match results client-side, which directly targets the likely root cause of repeated or long-running pagination. Based on the provided changes, the coding-related objectives of the linked issue appear to be implemented and the fix is addressed by these changes.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-18337

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 102495a and f490be5.

📒 Files selected for processing (1)
  • components/hubspot/package.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • components/hubspot/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Lint Code Base

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

GTFalcao
GTFalcao previously approved these changes Sep 13, 2025
Copy link
Collaborator

@GTFalcao GTFalcao left a comment

Choose a reason for hiding this comment

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

LGTM!

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
components/hubspot/actions/search-crm/search-crm.mjs (1)

306-312: Fix TypeError for non‑string properties when exactMatch = false.

.toLowerCase() on numbers/dates throws.

Apply:

-      results = results?.filter(
-        (result) =>
-          result.properties[searchProperty] &&
-          result.properties[searchProperty]
-            .toLowerCase()
-            .includes(searchValue.toLowerCase()),
-      );
+      results = results?.filter((result) => {
+        const v = result?.properties?.[searchProperty];
+        if (v == null) return false;
+        const s = typeof v === "string" ? v : String(v);
+        return s.toLowerCase().includes(searchValue.toLowerCase());
+      });
🧹 Nitpick comments (1)
components/hubspot/actions/search-crm/search-crm.mjs (1)

271-286: Consider exposing page size as a prop (optional).

Hard‑coding DEFAULT_LIMIT removes control when users need smaller payloads to avoid timeouts.

Proposed prop:

+    pageSize: {
+      type: "integer",
+      label: "Page size",
+      description: "Max records per request (HubSpot max is 100).",
+      optional: true,
+      default: 100,
+    },

And in data:

-      limit: DEFAULT_LIMIT,
+      limit: this.pageSize ?? DEFAULT_LIMIT,
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7e7e5df and 102495a.

📒 Files selected for processing (1)
  • components/hubspot/actions/search-crm/search-crm.mjs (6 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Lint Code Base
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
🔇 Additional comments (1)
components/hubspot/actions/search-crm/search-crm.mjs (1)

14-14: Keep DEFAULT_LIMIT = 200 — HubSpot Search API max is 200
HubSpot CRM v3 Search allows up to 200 records per request, so changing to 100 is unnecessary and would reduce throughput.

Likely an incorrect or invalid review comment.

@michelle0927
Copy link
Collaborator Author

/approve

@michelle0927 michelle0927 merged commit d3e3821 into master Sep 16, 2025
10 checks passed
@michelle0927 michelle0927 deleted the issue-18337 branch September 16, 2025 15:58
sergio-eliot-rodriguez pushed a commit to sergio-eliot-rodriguez/sergio_wong_does_pipedream that referenced this pull request Sep 21, 2025
* update search-crm

* limit results to one page

* update version

* package.json version
vunguyenhung added a commit that referenced this pull request Sep 24, 2025
* Leonardo AI components

* added unzoom image action

* fixing link errors

* more lint fixes

* Merging pull request #18359

* fix: pagination prop and params struct

* fix: no need for paginate here

* chore: update version

* chore: cleanup

* chore: update package

* feat: allow raw response

* chore: bump package

* fix: buffer response instead

* Update components/google_drive/actions/download-file/download-file.mjs

Co-authored-by: Jorge Cortes <[email protected]>

* versions

* pnpm-lock.yaml

* pnpm-lock.yaml

* pnpm-lock.yaml

* feat: add content selector

* chore: bump package

* fix: comments

* chore: bump versions

* chore: fix versions

* fixes: QA fixes

* feat: add cursor to req

* package.json

---------

Co-authored-by: joao <[email protected]>
Co-authored-by: joaocoform <[email protected]>
Co-authored-by: Jorge Cortes <[email protected]>
Co-authored-by: Michelle Bergeron <[email protected]>
Co-authored-by: Luan Cazarine <[email protected]>

* Merging pull request #18361

* update siteId prop

* pnpm-lock.yaml

* package.json version

* Google Sheets - update row refresh fields  (#18369)

* change prop order and refresh fields

* bump package.json

* Pipedrive - fix app name (#18370)

* use pipedriveApp instead of app

* bump package.json

* Pipedrive - pipelineId integer (#18372)

* pipelineId - integer

* bump versions

* Adding app scaffolding for lightspeed_ecom_c_series

* Adding app scaffolding for financial_data

* Adding app scaffolding for microsoft_authenticator

* Merging pull request #18345

* updates

* versions

* versions

* Merging pull request #18368

* updates

* remove console.log

* versions

* Coinbase Developer Platform - New Wallet Event (#18342)

* new component

* pnpm-lock.yaml

* updates

* updates

* Hubspot - update search-crm (#18360)

* update search-crm

* limit results to one page

* update version

* package.json version

* Merging pull request #18347

* widget props

* fix version

* Adding app scaffolding for rundeck

* Merging pull request #18378

* Update Taiga component with new actions and sources

- Bump version to 0.1.0 in package.json and add dependency on @pipedream/platform.
- Introduce new actions for creating, updating, and deleting issues, tasks, and user stories.
- Add sources for tracking changes and deletions of issues and tasks.
- Implement utility functions for parsing and cleaning objects in common/utils.mjs.
- Enhance prop definitions for better integration with Taiga API.

* pnpm update

* Refactor Taiga actions to utilize parseObject utility

- Added parseObject utility for tags, watchers, and points in update-issue, update-task, and update-userstory actions.
- Removed the update-project action as it is no longer needed.
- Enhanced base source to include secret key validation for webhook security.

* Merging pull request #18382

* add testSources prop

* pnpm-lock.yaml

* fix

* Merging pull request #18323

* Added actions

* Added actions

* Added actions

* Merging pull request #18377

* Added actions

* Update components/weaviate/actions/create-class/create-class.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Luan Cazarine <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Merging pull request #18376

* Adding app scaffolding for etrusted

* Adding app scaffolding for intelliflo_office

* Adding app scaffolding for thoughtspot

* Adding app scaffolding for kordiam

* Adding app scaffolding for ticketsauce

* trustpilot fixes (#18152)

* trustpilot fixes

* more fixes

* update versions

* more version updates

* fixes

* Bump all Trustpilot actions to version 0.1.0

Major improvements and API updates across all actions:
- Enhanced private API support with proper authentication
- Improved parameter handling and validation
- Better error handling and response structures
- Added new conversation flow for product reviews
- Fixed endpoint URLs to match latest API documentation
- Streamlined request/response processing

🤖 Generated with [Claude Code](https://claude.ai/code)

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

* up version and clean up sources

* merge

* fix business ID

* delete temp action

* Update components/trustpilot/sources/new-product-reviews/new-product-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update components/trustpilot/sources/new-product-reviews/new-product-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update components/trustpilot/sources/new-product-reviews/new-product-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update components/trustpilot/sources/new-service-reviews/new-service-reviews.mjs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* comments

* Pagination

* fixes

* comments

* missed some `$`'s

* unduplicated

* more fixes

* final comments

* more comments

* .

---------

Co-authored-by: Claude <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Adding app scaffolding for peekalink

* 18314 twilio (#18350)

* Update Twilio component versions and dependencies

- Update Twilio Send Message action adding detailed description for 'from' prop and refactoring phone number validation logic.
- Incremented action versions for several Twilio actions.

* pnpm update

* Updating LinkedIn API version (#18399)

* Merging pull request #18394

* Databricks API - Jobs action components (#18371)

* Notion property building improvements (#18381)

* validate property types

* versions

* Google Business - add debug log (#18407)

* add debug log

* bump versions

* Notion API Key - update @pipedream/notion version (#18409)

* update @pipedream/notion dependency version

* pnpm-lock.yaml

* Adding app scaffolding for reduct_video

* Adding app scaffolding for shopware

* Adding app scaffolding for instamojo

* Hubspot - bug fix to sources w/ property changes (#18379)

* updates

* versions

* Google sheets type fix (#18411)

* Fixing worksheetId prop type from string to integer

* Version bumps

---------

Co-authored-by: Leo Vu <[email protected]>

* Merging pull request #18393

* new components

* remove console.log

* versions

* update

* Merging pull request #18408

* 403 error message

* versions

* update

* Merging pull request #18419

* Changes per PR Review

* Removes leonardo_ai_actions.mdc not indented for merging

* synced lockfile after install

* fully lock form-data for leonardo_ai

* conflict solving

* lint fixes

* Chipped down Readme, implemented async options in gen motion

---------

Co-authored-by: jocarino <[email protected]>
Co-authored-by: joao <[email protected]>
Co-authored-by: joaocoform <[email protected]>
Co-authored-by: Jorge Cortes <[email protected]>
Co-authored-by: Michelle Bergeron <[email protected]>
Co-authored-by: Luan Cazarine <[email protected]>
Co-authored-by: michelle0927 <[email protected]>
Co-authored-by: Andrew Chuang <[email protected]>
Co-authored-by: danhsiung <[email protected]>
Co-authored-by: Lucas Caresia <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Job <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Guilherme Falcão <[email protected]>
Co-authored-by: Leo Vu <[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.

[BUG] Hubspot - Search CRM action throws error when Exact Match prop set to false
2 participants