Skip to content

Conversation

@michelle0927
Copy link
Collaborator

@michelle0927 michelle0927 commented Oct 21, 2025

Resolves #18790

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced search capabilities for object lookups in HubSpot actions, enabling query-based filtering for contacts, leads, and object selections.
  • Improvements

    • Updated multiple HubSpot actions and sources with performance and stability improvements across the integration.

@vercel
Copy link

vercel bot commented Oct 21, 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 Oct 21, 2025 8:39pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Oct 21, 2025 8:39pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 21, 2025

Walkthrough

This PR adds useQuery support to HubSpot object-searching props and refactors option-fetching to use the searchCRM API when a query is present, enabling faster searches instead of paginating through thousands of records. Version bumps are applied across 50+ action and source modules, and package version is incremented.

Changes

Cohort / File(s) Change Summary
Version bumps — Actions (list operations & object creation)
components/hubspot/actions/list-* (blog-posts, campaigns, forms, marketing-emails, marketing-events, pages, templates)
Minor version increments (0.0.9→0.0.10 or similar) across list actions; no functional changes.
Version bumps — Actions (CRUD operations)
components/hubspot/actions/create-* (add-contact-to-list, batch-create-companies, batch-create-or-update-contact, batch-update-companies, batch-upsert-companies, clone-email, clone-site-page, communication, company, contact-workflow, custom-object, deal, email, engagement, form, landing-page, lead, meeting, note, or-update-contact, page, task, ticket, workflow), update-* (company, contact, custom-object, deal, fields-on-the-form, landing-page, lead, page), get-* (associated-emails, associated-meetings, company, contact, deal, file-public-url, meeting, subscription-preferences), retrieve-* (migrated-workflow-mappings, workflow-details, workflow-emails, workflows), search-crm, delete-workflow, enroll-contact-into-workflow, create-associations
Patch-level version increments across 40+ action modules (e.g., 0.0.26→0.0.27, 0.0.31→0.0.32); no logic or behavioral changes.
Version bumps — Sources
components/hubspot/sources/ (delete-blog-article, new--property-change, new-contact-added-to-list, new-custom-object-property-change, new-deal-in-stage, new-email-event, new-email-subscriptions-timeline, new-engagement, new-event, new-form-submission, new-note, new-or-updated-, new-social-media-message, new-task, new-ticket, new-ticket-property-change)
Patch-level version increments across 30+ source modules (e.g., 0.0.35→0.0.36, 1.0.16→1.0.17); no functional changes.
useQuery support for referenced objects
components/hubspot/actions/common/common-create.mjs
Returns useQuery: true in prop definition when property.referencedObjectType is present, enabling query-based option lookup for props that reference other object types.
useQuery support for object ID prop
components/hubspot/actions/common/common-get-object.mjs
Adds useQuery: true to the objectId prop definition to enable query-based retrieval.
useQuery and searchCRM refactor
components/hubspot/hubspot.app.mjs
Adds useQuery: true to objectId, objectIds, contactEmail, and leadId props; refactors createOptions to accept and propagate a query parameter; switches option-fetching flows from listObjectsInPage to searchCRM when a query is present, enabling faster targeted searches instead of full pagination.
Package version bump
components/hubspot/package.json
Version incremented from 1.7.14 to 1.7.15.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant UI as Pipedream UI
    participant Prop as Prop Definition
    participant App as hubspot.app
    participant API as HubSpot API

    rect rgb(200, 220, 255)
    note over User,API: Old flow (without useQuery)
    User->>UI: Browse options for object list
    UI->>Prop: Fetch async options
    Prop->>App: createOptions(objectType)
    App->>API: listObjectsInPage() — paginate through all records
    API-->>App: Returns 100 records at a time
    App-->>Prop: Options built from paginated results
    Prop-->>UI: Display all options
    end

    rect rgb(200, 255, 220)
    note over User,API: New flow (with useQuery)
    User->>UI: Type search query
    UI->>Prop: Fetch async options with query
    Prop->>App: createOptions(objectType, { query: "search term" })
    alt Query present
        App->>API: searchCRM(objectType, query) — targeted search
        API-->>App: Returns matching records
    else No query
        App->>API: listObjectsInPage() — paginate through records
        API-->>App: Returns paginated results
    end
    App-->>Prop: Options built from search or paginated results
    Prop-->>UI: Display filtered options
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Rationale: The PR consists primarily of homogeneous version bumps across 70+ files (low review density per file), but includes three areas of functional change requiring attention: (1) the useQuery flag propagation in two common utility files, (2) the significant refactoring of the hubspot.app.mjs option-fetching flow to conditionally use searchCRM instead of listObjectsInPage, and (3) verification that query-based lookups are integrated correctly across all affected props. The heterogeneity of changes (many repetitive version bumps plus concentrated logic changes) and the moderate scope warrant moderate effort.

Possibly related PRs

Suggested labels

User submitted, HubSpot, version bump, feature

Suggested reviewers

  • luancazarine
  • jcortes

Poem

🐰 A thousand records once we'd page and spin,
Now search with queries—let the speed begin!
With useQuery flags and searchCRM's might,
Finding objects faster feels so right!
Versions bumped from East to West so far,
HubSpot's search now shines like a star! ⭐

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The pull request description is minimal, containing only "Resolves #18790" without any additional context or explanation. The repository template specifies a "WHY" section that should be completed, but the author has not filled this out. While the description references a linked issue with detailed objectives, the PR description itself is largely incomplete and does not follow the required template structure, providing insufficient context for reviewers. The author should expand the PR description to include the "WHY" section from the template, explaining the motivation and benefit of adding useQuery support for HubSpot object props. This will provide reviewers with context about why this change improves the user experience (e.g., avoiding pagination through thousands of records in favor of targeted searches).
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "HubSpot: add useQuery to object props" is clear, specific, and directly related to the main changes in the changeset. The code modifications add the useQuery property to various HubSpot object props and refactor the option-fetching logic to support query-based searching. The title accurately captures this primary objective without being vague or overly broad.
Linked Issues Check ✅ Passed The code changes align with the objectives from issue #18790. The PR adds the useQuery property to objectId, objectIds, contactEmail, and leadId props [#18790], refactors the createOptions function to accept and propagate a query parameter [#18790], and switches the option-fetching logic from paginating through listObjectsInPage to using searchCRM when a query is present [#18790]. The implementation uses the searchCRM query parameter for free-text searches as suggested in the issue. The changes to common-create.mjs and common-get-object.mjs further extend useQuery support to referenced object types and get-object scenarios.
Out of Scope Changes Check ✅ Passed All code changes are directly related to the stated objectives. The PR adds useQuery properties to relevant props, refactors option-fetching methods to use searchCRM with query support, and extends this functionality across common utilities. Version bumps across action and source files are standard maintenance updates accompanying the feature changes, not out-of-scope modifications. No changes were detected that fall outside the scope of adding useQuery support for searching objects.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-18790

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.

@michelle0927 michelle0927 marked this pull request as ready for review October 21, 2025 20:43
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: 3

Caution

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

⚠️ Outside diff range comments (2)
components/hubspot/sources/new-engagement/new-engagement.mjs (1)

19-21: Fix typo in description.

“engagment” ➜ “engagement”.

Apply:

-      description: "Filter results by the type of engagment",
+      description: "Filter results by the type of engagement",
components/hubspot/hubspot.app.mjs (1)

828-847: createOptions builds labels from properties but never requests them — include default properties per object

getObjectLabel() relies on fields like firstname, dealname, subject, etc. Since searchCRM is invoked without properties, these can be missing, yielding poor labels (e.g., “undefined undefined”) or all-ID lists.

Apply:

       } = await this.searchCRM({
         object: referencedObjectType,
         data: {
           query,
           after: nextAfter,
+          // Ensure search results include fields needed to build labels
+          properties: this._getDefaultPropertiesFor(referencedObjectType),
         },
       });

Add this helper inside methods to map object slugs to default property sets (uses already-imported constants):

// Place inside methods { ... }
_getDefaultPropertiesFor(objectSlug) {
  switch (objectSlug) {
    case OBJECT_TYPE.CONTACT:    return DEFAULT_CONTACT_PROPERTIES;
    case OBJECT_TYPE.COMPANY:    return DEFAULT_COMPANY_PROPERTIES;
    case OBJECT_TYPE.DEAL:       return DEFAULT_DEAL_PROPERTIES;
    case OBJECT_TYPE.TICKET:     return DEFAULT_TICKET_PROPERTIES;
    case OBJECT_TYPE.PRODUCT:    return DEFAULT_PRODUCT_PROPERTIES;
    case OBJECT_TYPE.LINE_ITEM:  return DEFAULT_LINE_ITEM_PROPERTIES;
    default: return [];
  }
}

Optional guard to avoid 400s when no query is provided (some UIs still call once before typing):

if (!query) return { options: [], context: prevContext };
🧹 Nitpick comments (4)
components/hubspot/sources/new-engagement/new-engagement.mjs (1)

10-10: Minor wording nit.

This is a source, not an action; suggest “This source returns a maximum of 5000 records…”.

-  description: "Emit new event for each new engagement created. This action returns a maximum of 5000 records at a time, make sure you set a correct time range so you don't miss any events",
+  description: "Emit a new event for each new engagement created. This source returns a maximum of 5000 records at a time; set an appropriate time range so you don't miss events",
components/hubspot/actions/batch-update-companies/batch-update-companies.mjs (1)

55-59: Harden error parsing to avoid double JSON.parse failures.

Current parsing is brittle and may throw on non-JSON messages. Use safe fallbacks and common axios shapes.

-      const message = JSON.parse(
-        JSON.parse(error.message).message.split(/:(.+)/)[1],
-      )[0].message;
-      throw new ConfigurationError(message.split(/:(.+)/)[0]);
+      // Be robust across HubSpot / axios error shapes
+      let message = "Failed to update companies";
+      try {
+        const errMsg = error?.response?.data?.message ?? error?.message;
+        if (typeof errMsg === "string") {
+          const txt = errMsg.trim();
+          const maybeJSON = (txt.startsWith("{") || txt.startsWith("[")) ? JSON.parse(txt) : txt;
+          if (Array.isArray(maybeJSON)) {
+            message = maybeJSON[0]?.message ?? message;
+          } else if (typeof maybeJSON === "object") {
+            message = maybeJSON.message ?? message;
+          } else {
+            message = String(maybeJSON).split(/:(.+)/)[0];
+          }
+        }
+      } catch (_) {
+        message = error?.message || message;
+      }
+      throw new ConfigurationError(message);
components/hubspot/actions/create-form/create-form.mjs (1)

274-311: Preserve boolean fields when explicitly set to false.

Truthiness checks omit false values, preventing users from turning features off. Gate on undefined instead.

   async run({ $ }) {
-    const configuration = {};
+    const configuration = {};
+    const setIfDefined = (obj, key, val) => { if (val !== undefined) obj[key] = val; };
@@
-    if (this.language) {
-      configuration.language = this.language;
-    }
-    if (this.cloneable) {
-      configuration.cloneable = this.cloneable;
-    }
+    setIfDefined(configuration, "language", this.language);
+    setIfDefined(configuration, "cloneable", this.cloneable);
@@
-    if (this.editable) {
-      configuration.editable = this.editable;
-    }
-    if (this.archivable) {
-      configuration.archivable = this.archivable;
-    }
-    if (this.recaptchaEnabled) {
-      configuration.recaptchaEnabled = this.recaptchaEnabled;
-    }
-    if (this.notifyContactOwner) {
-      configuration.notifyContactOwner = this.notifyContactOwner;
-    }
-    if (this.notifyRecipients) {
-      configuration.notifyRecipients = parseObject(this.notifyRecipients);
-    }
+    setIfDefined(configuration, "editable", this.editable);
+    setIfDefined(configuration, "archivable", this.archivable);
+    setIfDefined(configuration, "recaptchaEnabled", this.recaptchaEnabled);
+    setIfDefined(configuration, "notifyContactOwner", this.notifyContactOwner);
+    if (this.notifyRecipients !== undefined) {
+      configuration.notifyRecipients = parseObject(this.notifyRecipients);
+    }
@@
-    if (this.createNewContactForNewEmail) {
-      configuration.createNewContactForNewEmail =
-        this.createNewContactForNewEmail;
-    }
-    if (this.prePopulateKnownValues) {
-      configuration.prePopulateKnownValues = this.prePopulateKnownValues;
-    }
-    if (this.allowLinkToResetKnownValues) {
-      configuration.allowLinkToResetKnownValues =
-        this.allowLinkToResetKnownValues;
-    }
-    if (this.lifecycleStages) {
-      configuration.lifecycleStages = parseObject(this.lifecycleStages);
-    }
+    setIfDefined(configuration, "createNewContactForNewEmail", this.createNewContactForNewEmail);
+    setIfDefined(configuration, "prePopulateKnownValues", this.prePopulateKnownValues);
+    setIfDefined(configuration, "allowLinkToResetKnownValues", this.allowLinkToResetKnownValues);
+    if (this.lifecycleStages !== undefined) {
+      configuration.lifecycleStages = parseObject(this.lifecycleStages);
+    }
components/hubspot/hubspot.app.mjs (1)

116-126: Clarify description for generic Object ID prop

This prop is used for multiple object types; the description says “for the contact”.

Apply:

-      description: "Hubspot's internal ID for the contact",
+      description: "HubSpot's internal ID for the selected object type",
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a9fffb6 and e480da8.

📒 Files selected for processing (84)
  • components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs (1 hunks)
  • components/hubspot/actions/batch-create-companies/batch-create-companies.mjs (1 hunks)
  • components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs (1 hunks)
  • components/hubspot/actions/batch-update-companies/batch-update-companies.mjs (1 hunks)
  • components/hubspot/actions/batch-upsert-companies/batch-upsert-companies.mjs (1 hunks)
  • components/hubspot/actions/clone-email/clone-email.mjs (1 hunks)
  • components/hubspot/actions/clone-site-page/clone-site-page.mjs (1 hunks)
  • components/hubspot/actions/common/common-create.mjs (2 hunks)
  • components/hubspot/actions/common/common-get-object.mjs (1 hunks)
  • components/hubspot/actions/create-associations/create-associations.mjs (1 hunks)
  • components/hubspot/actions/create-communication/create-communication.mjs (1 hunks)
  • components/hubspot/actions/create-company/create-company.mjs (1 hunks)
  • components/hubspot/actions/create-contact-workflow/create-contact-workflow.mjs (1 hunks)
  • components/hubspot/actions/create-custom-object/create-custom-object.mjs (1 hunks)
  • components/hubspot/actions/create-deal/create-deal.mjs (1 hunks)
  • components/hubspot/actions/create-email/create-email.mjs (1 hunks)
  • components/hubspot/actions/create-engagement/create-engagement.mjs (1 hunks)
  • components/hubspot/actions/create-form/create-form.mjs (1 hunks)
  • components/hubspot/actions/create-landing-page/create-landing-page.mjs (1 hunks)
  • components/hubspot/actions/create-lead/create-lead.mjs (1 hunks)
  • components/hubspot/actions/create-meeting/create-meeting.mjs (1 hunks)
  • components/hubspot/actions/create-note/create-note.mjs (1 hunks)
  • components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs (1 hunks)
  • components/hubspot/actions/create-page/create-page.mjs (1 hunks)
  • components/hubspot/actions/create-task/create-task.mjs (1 hunks)
  • components/hubspot/actions/create-ticket/create-ticket.mjs (1 hunks)
  • components/hubspot/actions/create-workflow/create-workflow.mjs (1 hunks)
  • components/hubspot/actions/delete-workflow/delete-workflow.mjs (1 hunks)
  • components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs (1 hunks)
  • components/hubspot/actions/get-associated-emails/get-associated-emails.mjs (1 hunks)
  • components/hubspot/actions/get-associated-meetings/get-associated-meetings.mjs (1 hunks)
  • components/hubspot/actions/get-company/get-company.mjs (1 hunks)
  • components/hubspot/actions/get-contact/get-contact.mjs (1 hunks)
  • components/hubspot/actions/get-deal/get-deal.mjs (1 hunks)
  • components/hubspot/actions/get-file-public-url/get-file-public-url.mjs (1 hunks)
  • components/hubspot/actions/get-meeting/get-meeting.mjs (1 hunks)
  • components/hubspot/actions/get-subscription-preferences/get-subscription-preferences.mjs (1 hunks)
  • components/hubspot/actions/list-blog-posts/list-blog-posts.mjs (1 hunks)
  • components/hubspot/actions/list-campaigns/list-campaigns.mjs (1 hunks)
  • components/hubspot/actions/list-forms/list-forms.mjs (1 hunks)
  • components/hubspot/actions/list-marketing-emails/list-marketing-emails.mjs (1 hunks)
  • components/hubspot/actions/list-marketing-events/list-marketing-events.mjs (1 hunks)
  • components/hubspot/actions/list-pages/list-pages.mjs (1 hunks)
  • components/hubspot/actions/list-templates/list-templates.mjs (1 hunks)
  • components/hubspot/actions/retrieve-migrated-workflow-mappings/retrieve-migrated-workflow-mappings.mjs (1 hunks)
  • components/hubspot/actions/retrieve-workflow-details/retrieve-workflow-details.mjs (1 hunks)
  • components/hubspot/actions/retrieve-workflow-emails/retrieve-workflow-emails.mjs (1 hunks)
  • components/hubspot/actions/retrieve-workflows/retrieve-workflows.mjs (1 hunks)
  • components/hubspot/actions/search-crm/search-crm.mjs (1 hunks)
  • components/hubspot/actions/update-company/update-company.mjs (1 hunks)
  • components/hubspot/actions/update-contact/update-contact.mjs (1 hunks)
  • components/hubspot/actions/update-custom-object/update-custom-object.mjs (1 hunks)
  • components/hubspot/actions/update-deal/update-deal.mjs (1 hunks)
  • components/hubspot/actions/update-fields-on-the-form/update-fields-on-the-form.mjs (1 hunks)
  • components/hubspot/actions/update-landing-page/update-landing-page.mjs (1 hunks)
  • components/hubspot/actions/update-lead/update-lead.mjs (1 hunks)
  • components/hubspot/actions/update-page/update-page.mjs (1 hunks)
  • components/hubspot/hubspot.app.mjs (6 hunks)
  • components/hubspot/package.json (1 hunks)
  • components/hubspot/sources/delete-blog-article/delete-blog-article.mjs (1 hunks)
  • components/hubspot/sources/new-company-property-change/new-company-property-change.mjs (1 hunks)
  • components/hubspot/sources/new-contact-added-to-list/new-contact-added-to-list.mjs (1 hunks)
  • components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs (1 hunks)
  • components/hubspot/sources/new-custom-object-property-change/new-custom-object-property-change.mjs (1 hunks)
  • components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs (1 hunks)
  • components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs (1 hunks)
  • components/hubspot/sources/new-email-event/new-email-event.mjs (1 hunks)
  • components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs (1 hunks)
  • components/hubspot/sources/new-engagement/new-engagement.mjs (1 hunks)
  • components/hubspot/sources/new-event/new-event.mjs (1 hunks)
  • components/hubspot/sources/new-form-submission/new-form-submission.mjs (1 hunks)
  • components/hubspot/sources/new-note/new-note.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs (1 hunks)
  • components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs (1 hunks)
  • components/hubspot/sources/new-social-media-message/new-social-media-message.mjs (1 hunks)
  • components/hubspot/sources/new-task/new-task.mjs (1 hunks)
  • components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs (1 hunks)
  • components/hubspot/sources/new-ticket/new-ticket.mjs (1 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: Verify TypeScript components
  • GitHub Check: pnpm publish
🔇 Additional comments (82)
components/hubspot/actions/create-engagement/create-engagement.mjs (1)

14-14: Metadata-only version bump—approved.

This file contains only a version string update (0.0.29 → 0.0.30) with no functional changes. The actual useQuery enhancements are implemented in shared components and common files (as per the PR summary). The version bump aligns with the coordinated release across HubSpot action and source modules.

components/hubspot/actions/list-templates/list-templates.mjs (1)

8-8: Verify version bump aligns with PR scope.

The PR objectives describe adding useQuery support to props that list HubSpot records and using the searchCRM method when a query is present. This file receives only a version bump (0.0.8 → 0.0.9), but no functional changes to add useQuery support or search functionality are present.

Clarify whether:

  1. This action should have had useQuery support added (in which case the implementation is incomplete), or
  2. Template listing is out of scope for this PR and the version bump is part of a separate coordinated release.
components/hubspot/actions/list-marketing-events/list-marketing-events.mjs (1)

7-7: Verify whether this file should have useQuery support added.

The PR objective is to add useQuery support to props that list HubSpot records, but this file only shows a version bump (0.0.9 → 0.0.10) with no functional changes. The listMarketingEvents action currently paginates through all records without search capability.

Clarify whether:

  • Marketing events should have useQuery-based searching capability added (similar to CRM objects like contacts/companies), or
  • This version bump is for consistency only and marketing events are intentionally excluded from the useQuery enhancement
components/hubspot/actions/update-page/update-page.mjs (1)

10-10: LGTM! Routine version bump.

The patch version increment is appropriate for this release cycle.

components/hubspot/actions/list-campaigns/list-campaigns.mjs (1)

7-7: Verify the version bump rationale for this module.

This module's version is bumped from 0.0.9 to 0.0.10, but the file contains no functional changes—only the version number itself was updated. Based on web search, the HubSpot Campaigns API does not support search functionality and is separate from the CRM Search API; query parameter searches are available for CRM objects like contacts, companies, and deals, but not campaigns.

Since this file correctly uses listCampaigns and doesn't require useQuery support, clarify whether this version bump is intentional (e.g., for package versioning consistency) or if a functional change was unexpectedly omitted.

components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs (1)

10-10: Version bump is justified—common props have been updated with useQuery support.

The verification confirms that the common configuration has been properly updated with useQuery support for object-searching props and refactored to use searchCRM/searchMeetings when query is present. The version bump to 0.0.23 appropriately reflects these changes across dependent modules.

components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs (1)

10-10: No issues found; version bump is appropriate and correctly positioned.

Verification confirms the implementation is correct:

  • The objectType prop in hubspot.app.mjs (lines 82–100) is intentionally a basic dropdown selector without useQuery—it's not a searchable record list.
  • The dependent props that DO require useQuery (objectId and objectIds at lines 117–140) correctly have useQuery: true to enable async filtering based on selected object type.
  • The source file requires no functional changes; the version bump from 0.0.35 to 0.0.36 appropriately tracks the prop ecosystem infrastructure updates.
components/hubspot/actions/update-lead/update-lead.mjs (1)

11-11: Now let me run scripts to verify the complete inheritance chain for the objectId/leadId prop:

Version bump is appropriate and properly inherits useQuery functionality.

The inheritance chain confirms that common-update-object.mjs spreads common.props from common-create.mjs and the hubspot app reference, following the standard Pipedream pattern for prop inheritance. The leadId propDefinition in hubspot.app.mjs includes useQuery: true with async searchCRM options, which allows users to dynamically search for leads as they type in the workflow UI.

Since update-lead.mjs extends common-update-object.mjs, it properly inherits the updated leadId property definition with full search support. The version bump from "0.0.19" to "0.0.20" appropriately reflects the new functionality available through the parent component updates.

components/hubspot/actions/create-email/create-email.mjs (1)

13-13: Version bump consistent with PR scope.

The metadata version update aligns with the AI summary indicating broad version refreshes across 50+ action modules. This signals that shared prop definitions and option-fetching logic have been updated in related files (hubspot.app.mjs, common-create.mjs).

To ensure the PR fully implements useQuery support as scoped, please verify that the shared prop definitions referenced by this file have been updated:

components/hubspot/actions/clone-site-page/clone-site-page.mjs (1)

8-8: Version bump looks good.

The version increment aligns with the broader PR changes introducing useQuery support in the HubSpot integration.

components/hubspot/actions/clone-email/clone-email.mjs (1)

9-9: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/update-contact/update-contact.mjs (1)

11-11: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/list-blog-posts/list-blog-posts.mjs (1)

7-7: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/get-company/get-company.mjs (1)

10-10: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/create-lead/create-lead.mjs (1)

16-16: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/get-associated-emails/get-associated-emails.mjs (1)

9-9: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/create-page/create-page.mjs (1)

10-10: Version bump looks good.

The version increment aligns with the broader PR changes.

components/hubspot/actions/create-landing-page/create-landing-page.mjs (1)

10-10: Version bump only — OK.

No functional changes detected. Safe to merge.

components/hubspot/sources/new-email-event/new-email-event.mjs (1)

11-11: Version bump only — OK.

No behavior changes observed.

components/hubspot/sources/new-engagement/new-engagement.mjs (1)

11-11: Version bump only — OK.

No logic changes detected.

components/hubspot/actions/batch-update-companies/batch-update-companies.mjs (1)

11-11: Version bump only — OK.

No functional changes in this file aside from metadata.

components/hubspot/actions/create-form/create-form.mjs (1)

13-13: Version bump only — OK.

No functional diffs here.

components/hubspot/actions/create-contact-workflow/create-contact-workflow.mjs (1)

9-9: Version bump only — OK.

No behavioral diffs in this file.

components/hubspot/package.json (1)

3-3: useQuery and query parameter verification — confirmed working correctly.

All implementation details check out:

  • useQuery: true properly set on 6 fields across hubspot.app.mjs and common-get-object.mjs
  • query parameter correctly destructured in options handlers and forwarded through createOptions
  • createOptions function (line 828) properly passes query to searchCRM in the data object

The version bump and feature implementation are solid. Consider updating CHANGELOG/release notes to document the new query-based search UX for users.

components/hubspot/sources/new-ticket/new-ticket.mjs (1)

13-13: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.35" to "0.0.36" is a metadata-only change with no functional modifications.

components/hubspot/actions/get-file-public-url/get-file-public-url.mjs (1)

8-8: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.26" to "0.0.27" is a metadata-only change with no functional modifications.

components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs (1)

8-8: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.26" to "0.0.27" is a metadata-only change with no functional modifications.

components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs (1)

10-10: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.24" to "0.0.25" is a metadata-only change with no functional modifications.

components/hubspot/sources/new-contact-added-to-list/new-contact-added-to-list.mjs (1)

15-15: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.7" to "0.0.8" is a metadata-only change with no functional modifications.

components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs (1)

8-8: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.23" to "0.0.24" is a metadata-only change with no functional modifications.

components/hubspot/actions/retrieve-workflows/retrieve-workflows.mjs (1)

7-7: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.4" to "0.0.5" is a metadata-only change with no functional modifications.

components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs (1)

11-11: LGTM! Version bump is consistent with the PR.

The version increment from "0.0.31" to "0.0.32" is a metadata-only change with no functional modifications.

components/hubspot/sources/new-note/new-note.mjs (1)

11-11: Version bump looks good.

This metadata-only version increment aligns with the broader release across the HubSpot integration.

components/hubspot/sources/new-company-property-change/new-company-property-change.mjs (1)

10-10: Version bump looks good.

Metadata-only change consistent with the coordinated release pattern.

components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs (1)

13-13: Version bump looks good.

Metadata-only increment consistent with the release.

components/hubspot/actions/list-pages/list-pages.mjs (1)

8-8: Version bump looks good.

Metadata-only change aligned with the coordinated release.

components/hubspot/sources/new-event/new-event.mjs (1)

11-11: Version bump looks good.

Metadata-only increment consistent with the release pattern.

components/hubspot/actions/create-deal/create-deal.mjs (1)

10-10: Version bump looks good.

Metadata-only change consistent with the coordinated release.

components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs (1)

10-10: Version bump looks good.

Metadata-only increment aligned with the release.

components/hubspot/actions/create-task/create-task.mjs (1)

11-11: Version bump looks good.

Metadata-only change consistent with the coordinated release pattern.

components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs (1)

13-13: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs (1)

13-13: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/actions/create-communication/create-communication.mjs (1)

12-12: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/sources/new-task/new-task.mjs (1)

12-12: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/actions/get-associated-meetings/get-associated-meetings.mjs (1)

10-10: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/actions/list-marketing-emails/list-marketing-emails.mjs (1)

7-7: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/actions/create-workflow/create-workflow.mjs (1)

8-8: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/actions/update-company/update-company.mjs (1)

11-11: Version bump looks good.

This version increment aligns with the broader PR changes that add useQuery support to HubSpot object props in the app layer.

components/hubspot/actions/update-fields-on-the-form/update-fields-on-the-form.mjs (1)

13-13: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update (1.7.14 → 1.7.15) and the addition of useQuery support in the core app.

components/hubspot/actions/get-deal/get-deal.mjs (1)

10-10: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update.

components/hubspot/actions/delete-workflow/delete-workflow.mjs (1)

7-7: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update.

components/hubspot/actions/create-note/create-note.mjs (1)

11-11: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update.

components/hubspot/actions/update-custom-object/update-custom-object.mjs (1)

10-10: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update.

components/hubspot/actions/get-contact/get-contact.mjs (1)

10-10: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update.

components/hubspot/actions/batch-upsert-companies/batch-upsert-companies.mjs (1)

10-10: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update.

components/hubspot/actions/create-associations/create-associations.mjs (1)

9-9: LGTM! Version bump coordinated with package release.

This metadata-only version bump aligns with the broader HubSpot package update (1.7.14 → 1.7.15) and the addition of useQuery support in the core app.

components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs (1)

10-10: LGTM! Version bump aligns with the package update.

This metadata-only version increment is consistent with the broader package version update (1.7.14 → 1.7.15) across the HubSpot integration.

components/hubspot/actions/update-landing-page/update-landing-page.mjs (1)

10-10: LGTM! Version bump aligns with the package update.

Metadata-only version increment consistent with the HubSpot package update.

components/hubspot/actions/get-meeting/get-meeting.mjs (1)

10-10: LGTM! Version bump aligns with the package update.

Metadata-only version increment consistent with the HubSpot package update.

components/hubspot/actions/batch-create-companies/batch-create-companies.mjs (1)

11-11: LGTM! Version bump aligns with the package update.

Metadata-only version increment consistent with the HubSpot package update.

components/hubspot/actions/create-company/create-company.mjs (1)

10-10: LGTM! Version bump aligns with the package update.

Metadata-only version increment consistent with the HubSpot package update.

components/hubspot/actions/common/common-get-object.mjs (1)

16-25: LGTM! useQuery flag enables query-based object searching.

The addition of useQuery: true on the objectId prop enables users to search for objects via query instead of paginating through all records. The existing options function correctly passes opts (which includes the query parameter) to this.hubspot.createOptions(), so the query will flow through to the search implementation.

components/hubspot/actions/retrieve-workflow-details/retrieve-workflow-details.mjs (1)

7-7: LGTM! Version bump aligns with the package update.

Metadata-only version increment consistent with the HubSpot package update.

components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs (1)

16-16: LGTM! Version bump aligns with the package update.

Metadata-only version increment consistent with the HubSpot package update.

components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs (1)

9-9: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs (1)

8-8: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/sources/new-form-submission/new-form-submission.mjs (1)

9-9: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs (1)

11-11: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/actions/get-subscription-preferences/get-subscription-preferences.mjs (1)

8-8: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/actions/create-ticket/create-ticket.mjs (1)

10-10: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/actions/list-forms/list-forms.mjs (1)

8-8: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/actions/create-meeting/create-meeting.mjs (1)

14-14: LGTM: Coordinated version bump.

This metadata-only version increment aligns with the broader HubSpot module release.

components/hubspot/sources/delete-blog-article/delete-blog-article.mjs (1)

9-9: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/actions/create-custom-object/create-custom-object.mjs (1)

13-13: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/sources/new-social-media-message/new-social-media-message.mjs (1)

10-10: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/actions/update-deal/update-deal.mjs (1)

11-11: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs (1)

13-13: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs (1)

13-13: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/sources/new-custom-object-property-change/new-custom-object-property-change.mjs (1)

10-10: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/actions/retrieve-migrated-workflow-mappings/retrieve-migrated-workflow-mappings.mjs (1)

8-8: LGTM! Version bump aligns with package release.

This metadata-only version update is consistent with the broader PR changes.

components/hubspot/actions/retrieve-workflow-emails/retrieve-workflow-emails.mjs (1)

7-7: Version bump only — LGTM

No behavioral change detected. Safe to merge.

components/hubspot/actions/search-crm/search-crm.mjs (1)

21-21: Version bump only — LGTM

No functional changes. Consistent with the broader query-enabled release.

Copy link
Collaborator

@jcortes jcortes left a comment

Choose a reason for hiding this comment

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

Hi @michelle0927 lgtm! Ready for QA!

@vunguyenhung vunguyenhung merged commit 1864774 into master Oct 22, 2025
10 checks passed
@vunguyenhung vunguyenhung deleted the issue-18790 branch October 22, 2025 08:11
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.

HubSpot: add useQuery support for searching objects

3 participants