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

Skip to content

Conversation

michelle0927
Copy link
Collaborator

@michelle0927 michelle0927 commented Sep 16, 2025

Resolves #18339
Followup to PR #18345

Summary by CodeRabbit

  • New Features

    • Improved incremental sync for HubSpot sources by honoring a “fetch after” cursor across multiple triggers (e.g., company/contact/deal/ticket/custom object, notes, tasks), providing more accurate, up-to-date results.
    • Added a pagination safeguard to limit excessive page fetches, improving run performance and reliability.
  • Chores

    • Bumped versions across HubSpot sources and the HubSpot component package; no functional changes from these version updates alone.

Copy link

vercel bot commented Sep 16, 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 5:00pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Sep 16, 2025 5:00pm

Copy link
Contributor

coderabbitai bot commented Sep 16, 2025

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Linked Issues Check ⚠️ Warning The linked issue (#18339) requested initializing a default "after" value so the lastmodifieddate GTE filter always has a timestamp; the diffs show the helper signature was changed to accept an optional after and multiple sources were updated to pass that after and to only add the GTE filter when after is truthy, but I do not see any code that sets a default when this.db.get("after") returns undefined. Because the PR changes avoid sending an empty GTE value rather than implementing the requested defaulting behavior, it does not satisfy the specific coding requirement described in the linked issue. Either implement the requested default (for example return this.db.get("after")
Description Check ⚠️ Warning The PR description only contains "Resolves #18339" and "Followup to PR #18345" and does not follow the repository's required template (the "## WHY" section is missing), so it lacks rationale, a summary of the changes, testing notes, and risk/rollback information needed for reviewers. This makes it difficult to verify intent and review impact against the linked issue from the description alone. Please update the PR description to follow the repository template by adding a "## WHY" section that summarizes the bug, describes the concrete code changes and their rationale, explains how the changes resolve issue #18339, and includes testing/rollback guidance and links to the related PR (#18345) and any relevant logs or reproduction steps.
✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title "Hubspot - bug fix to sources w/ property changes" concisely identifies this as a HubSpot-related bug fix affecting sources that handle property changes and matches the scope of the modified files in the changeset; it is short, on-topic, and understandable to a teammate scanning history. The shorthand "w/" is informal but not misleading.
Out of Scope Changes Check ✅ Passed All modified files are within the HubSpot component (components/hubspot), consisting of a package.json version bump, changes to the common pagination helper, and version bumps plus small pagination-related updates across HubSpot source modules; there are no unrelated modules or feature areas touched by this PR. These changes are consistent with the stated objective of fixing HubSpot source triggers.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-18339-2

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 September 16, 2025 17:01
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: 0

Caution

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

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

51-64: Confirm default for after to avoid HubSpot "GTE requires a value" — _getAfter lacks a fallback.
components/hubspot/sources/common/common.mjs::_getAfter() currently returns this.db.get("after") with no default; new-engagement calls this and can pass undefined into pagination/filters. Fix by returning a sensible fallback (e.g., now − 24h or the API-required timestamp format) or validate/guard callers before sending to HubSpot.

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

24-57: First run emits nothing due to undefined baseline.

isRelevant(result, after) compares a number to undefined, which is always false, then else return; exits early. On first run, no events and no _setAfter.

Apply this minimal fix (default baseline to 0):

-        for (const result of results) {
-          if (await this.isRelevant(result, after)) {
+        for (const result of results) {
+          if (await this.isRelevant(result, after ?? 0)) {

And harden isRelevant:

-    isRelevant(result, submittedAfter) {
-      return this.getTs(result) > submittedAfter;
-    },
+    isRelevant(result, submittedAfter = 0) {
+      return this.getTs(result) > submittedAfter;
+    },

Optional: Consider caching form per formId to avoid an API call per submission.

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

143-158: Normalize timestamp types before comparing and storing.

membershipTimestamp is compared to lastMembershipTimestamp (ISO string) using >. If one is a number and the other an ISO string, coercion yields NaN and comparisons fail, dropping valid events.

Apply this diff to compare in milliseconds and store consistently:

-      const lastMembershipTimestamp = this._getLastMembershipTimestamp(listId);
+      const lastMembershipTimestamp = this._getLastMembershipTimestamp(listId);
+      const lastTs = lastMembershipTimestamp ? Date.parse(lastMembershipTimestamp) : 0;
-      const newMemberships = [];
+      const newMemberships = [];
-      let params = {
+      let params = {
         limit: DEFAULT_LIMIT,
       };
@@
-        let latestMembershipTimestamp = lastMembershipTimestamp;
+        let latestMs = lastTs;
@@
-          for (const membership of results) {
+          for (const membership of results) {
             const { membershipTimestamp } = membership;
-
-            if (membershipTimestamp > lastMembershipTimestamp) {
+            const curTs = typeof membershipTimestamp === "number"
+              ? membershipTimestamp
+              : Date.parse(membershipTimestamp);
+            if (curTs > lastTs) {
               newMemberships.push({
                 membership,
                 listInfo,
               });
-
-              if (
-                !latestMembershipTimestamp ||
-                membershipTimestamp > latestMembershipTimestamp
-              ) {
-                latestMembershipTimestamp = membershipTimestamp;
-              }
+              if (!latestMs || curTs > latestMs) {
+                latestMs = curTs;
+              }
             }
           }
@@
-        if (latestMembershipTimestamp !== lastMembershipTimestamp) {
-          this._setLastMembershipTimestamp(listId, latestMembershipTimestamp);
+        if (latestMs && latestMs !== lastTs) {
+          this._setLastMembershipTimestamp(listId, new Date(latestMs).toISOString());
         }

Also applies to: 180-196, 205-207

components/hubspot/sources/common/common.mjs (1)

186-190: Initialize and persist a default “after” on first run (aligns with Issue #18339).

Root cause persists: when after is unset we don’t initialize a default, relying on callers to omit the GTE filter. Persist a sane default (e.g., now − 24h) so requests always have a value and behavior matches the issue’s expected fix.

Apply this diff:

   async run() {
-    const after = this._getAfter();
-    const params = await this.getParams(after);
-    await this.processResults(after, params);
+    let after = this._getAfter();
+    if (!after) {
+      after = Date.now() - 24 * 60 * 60 * 1000; // 24h lookback on first run
+      this._setAfter(after);
+    }
+    const params = await this.getParams(after);
+    await this.processResults(after, params);
   },
🧹 Nitpick comments (13)
components/hubspot/sources/new-engagement/new-engagement.mjs (1)

19-19: Typo in description (“engagment”).
Change to “engagement”.

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

3-3: Package version bump — LGTM.
Consider updating release notes to call out the HubSpot after default fix explicitly for users of SDK/API deploys.

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

29-35: Defensive guard for startTimestamp.
If _getAfter() ever returns undefined, this will send startTimestamp: undefined. Either rely on a guaranteed default from _getAfter, or guard here.

-    getParams(after) {
-      return {
-        params: {
-          startTimestamp: after,
-        },
-      };
-    },
+    getParams(after) {
+      const start = Number.isFinite(after) ? after : Date.now() - 24 * 60 * 60 * 1000;
+      return { params: { startTimestamp: start } };
+    },
components/hubspot/sources/new-event/new-event.mjs (1)

76-84: Guard occurredAfter in first run.
Events use occurredAfter: after; verify _getAfter supplies a default or add a local fallback to prevent undefined queries.

-        const params = this.getEventParams(objectId, after);
+        const occurredAfter = Number.isFinite(after) ? after : Date.now() - 24 * 60 * 60 * 1000;
+        const params = this.getEventParams(objectId, occurredAfter);
components/hubspot/sources/new-form-submission/new-form-submission.mjs (1)

82-97: Parallel pagination is good; ensure API rate limits are respected.

Promise.all across many forms can spike requests. If customers select many forms, consider a simple concurrency limit.

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

41-47: Guard the since parameter.

Passing since: after when after is undefined risks API validation errors. Include only when set.

Apply this diff:

-    getParams(after) {
-      return {
-        params: {
-          withChannelKeys: this.channel,
-          since: after,
-        },
-      };
-    },
+    getParams(after) {
+      const out = {
+        params: {
+          withChannelKeys: this.channel,
+        },
+      };
+      if (after) out.params.since = after;
+      return out;
+    },
components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs (1)

56-58: Default the updatedAfter baseline.

On first run updatedAfter can be undefined; ts > undefined is false and may suppress emits. Provide a safe default.

Apply this diff:

-    isRelevant(ts, updatedAfter) {
-      return ts > updatedAfter;
-    },
+    isRelevant(ts, updatedAfter = 0) {
+      return ts > updatedAfter;
+    },
components/hubspot/sources/common/common.mjs (2)

143-160: Hard cap of 10 pages may truncate backlog. Make it configurable or warn on cap hit.

If there’s high churn between runs, 10 pages can drop unprocessed items. Consider a prop or module constant, and log when the cap is reached.

Example minimal tweak:

-      const maxPages = 10;
+      const maxPages = this.maxPages ?? 10;
+      let hitCap = false;
...
-      } while (params.after && after && page < maxPages);
+      } while (params.after && after && page < maxPages);
+      if (after && page >= maxPages) {
+        console.warn(`[hubspot] getPaginatedItems reached page cap (${maxPages}); remaining items will process in later runs.`);
+      }

16-18: Optional: default-return helper to reduce caller branching.

Returning a default from _getAfter() keeps callers simpler and avoids repeated “if (after)” checks.

Example:

-    _getAfter() {
-      return this.db.get("after");
-    },
+    _getAfter() {
+      return this.db.get("after") ?? null;
+    },
components/hubspot/sources/new-company-property-change/new-company-property-change.mjs (1)

40-41: Nit: make dedupe ID unambiguous.

Concatenating without a delimiter can collide ("12"+"34" vs "1"+"234"). Prefer a separator.

-        id: `${id}${ts}`,
+        id: `${id}-${ts}`,
components/hubspot/sources/new-custom-object-property-change/new-custom-object-property-change.mjs (1)

46-47: Nit: unambiguous dedupe ID.

Use a delimiter to avoid collisions.

-        id: `${id}${ts}`,
+        id: `${id}-${ts}`,
components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs (1)

38-39: Nit: unambiguous dedupe ID.

Add a delimiter.

-        id: `${id}${ts}`,
+        id: `${id}-${ts}`,
components/hubspot/sources/new-task/new-task.mjs (1)

55-59: Good: pagination now receives after. Minor consistency nit on binding.

Logic is correct. Consider standardizing call style across sources (some pass a bound fn, others pass a plain reference) to reduce confusion.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d3e3821 and 23d1ae4.

📒 Files selected for processing (27)
  • components/hubspot/package.json (1 hunks)
  • components/hubspot/sources/common/common.mjs (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 (4 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 (2 hunks)
  • components/hubspot/sources/new-custom-object-property-change/new-custom-object-property-change.mjs (2 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 (2 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 (2 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 (2 hunks)
  • components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs (2 hunks)
  • components/hubspot/sources/new-ticket/new-ticket.mjs (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (6)
components/hubspot/sources/new-custom-object-property-change/new-custom-object-property-change.mjs (1)
components/hubspot/sources/common/common.mjs (1)
  • after (187-187)
components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs (1)
components/hubspot/sources/common/common.mjs (1)
  • after (187-187)
components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs (1)
components/hubspot/sources/common/common.mjs (1)
  • after (187-187)
components/hubspot/sources/new-task/new-task.mjs (1)
components/hubspot/sources/common/common.mjs (1)
  • after (187-187)
components/hubspot/sources/new-company-property-change/new-company-property-change.mjs (2)
components/hubspot/sources/common/common.mjs (2)
  • params (188-188)
  • after (187-187)
components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs (1)
  • params (49-73)
components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs (1)
components/hubspot/sources/common/common.mjs (1)
  • after (187-187)
⏰ 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). (4)
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Ensure component commits modify component versions
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Lint Code Base
🔇 Additional comments (40)
components/hubspot/sources/new-engagement/new-engagement.mjs (1)

11-11: Version bump only — LGTM.
No functional change. Safe to ship.

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

13-13: Version bump only — LGTM.
No behavior change here.


81-83: No change required — after is handled and no fallback needed.
common._getAfter() may be undefined on first run, but common.paginate treats a falsy after as a first-run (does not rely on an after-based GTE filter) and new-or-updated-line-item.getParams() does not build any filter using after. (components/hubspot/sources/common/common.mjs, components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs)

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

13-13: Version bump only — LGTM.
All good.


121-123: Same after default concern — confirm after isn't undefined.
Deals use hs_lastmodifieddate GTE; check components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs (processResults, ~lines 121–123) — ensure after is always defined or add a fallback in searchCRM to avoid skipping records.

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

9-9: Version bump only — LGTM.


37-42: paginateUsingHasMore uses offset-based pagination — it does NOT set params.after.

components/hubspot/sources/common/common.mjs (paginateUsingHasMore ~line 103) reads results.hasMore/results.offset and sets params.offset = results.offset; it never assigns params.after = after. 'after' is only used for timestamp filtering and to short‑circuit after the first page when falsy. Caller at components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs:37 may pass an after for filtering, but the helper won’t initialize params.after — use paginate(...) for paging.next.after semantics or adjust the caller/helper to set params.offset if the endpoint requires it.

Likely an incorrect or invalid review comment.

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

10-10: Version bump only — LGTM.


60-67: No central 'after' filter builder — per-source getParams must add matching filter

There is no shared filter builder that injects a "GTE/GT after" filter. The contact source already adds a filter using propertyName "lastmodifieddate" with operator "GT". new-or-updated-crm-object.getObjectParams only sets the sort propertyName (contacts => "lastmodifieddate", others => "hs_lastmodifieddate") and does not add params.data.filterGroups; common.searchCRM/paginate do not insert filters. If you need API-side "after" filtering for the generic CRM object source, add a params.data.filterGroups entry using the same propertyName before calling searchCRM.

Files: components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs (getParams); components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs (getObjectParams/processResults); components/hubspot/sources/common/common.mjs (searchCRM/paginate).

Likely an incorrect or invalid review comment.

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

10-10: Version bump only — LGTM.


56-59: Resolved — after is forwarded to paginate/hubspot.searchCRM; no change required.
common.searchCRM calls paginate(..., after) and new-or-updated-custom-object calls this.searchCRM(params, after), so the after value is passed through.

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

11-11: Version bump only — LGTM.

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

9-9: Version bump looks fine.


28-36: Guard deletedAt__gte when after is undefined (components/hubspot/sources/delete-blog-article/delete-blog-article.mjs:28-36).

Unconditionally passing deletedAt__gte: after can trigger "operator GTE requires a value" when after is null/undefined — only include the filter when after is set.

-    getParams(after) {
-      return {
-        params: {
-          limit: 100,
-          deletedAt__gte: after,
-          sort: "-updatedAt",
-        },
-      };
-    },
+    getParams(after) {
+      const out = {
+        params: {
+          limit: 100,
+          sort: "-updatedAt",
+        },
+      };
+      if (after) out.params.deletedAt__gte = after;
+      return out;
+    },

I ran the provided quick scan; it returned no matches — please verify other HubSpot sources for similar unguarded uses of after.

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

13-13: Version bump looks fine.

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

10-10: Version bump looks fine.

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

14-14: Version bump looks fine.

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

15-15: Version bump looks fine.

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

13-13: Version bump looks fine.


122-135: Good: filterGroups only when after is present.

This avoids the “GTE/GT requires a value” class of errors seen in #18339.

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

13-13: Version bump looks fine.


83-85: Pass after through searchCRM (already doing so).

Pattern aligns with the guarded after usage elsewhere and is consistent.

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

10-10: Version bump only — OK.

No functional changes here. Safe to merge.

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

13-13: Version bump only — OK.

No logic changes.

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

11-11: Version bump only — OK.

No functional changes.

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

52-54: Passing after into pagination — good fix.

This aligns with the updated helper and prevents over-fetching.

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

49-82: Guard hs_lastmodifieddate GTE by after — correct fix.

Prevents “operator GTE requires a value” on first run. Good.


107-111: Use updated pagination with after — looks good.

Matches new helper signature and expected behavior.

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

10-10: Version bump — OK.


80-87: Guard hs_lastmodifieddate GTE by after — correct.


113-117: Pass after to pagination — good.

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

10-10: Version bump — OK.


72-79: Guard hs_lastmodifieddate GTE by after — correct.


104-108: Pass after to pagination — good.

components/hubspot/sources/common/common.mjs (1)

1-191: Repo-wide verification for GTE filters

components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs — getParams adds the "GTE" filter only inside if (after) (OK).
No other new-*-property-change.mjs files found under components/hubspot/sources.

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

11-11: Version bump looks good.

Patch-level bump aligns with the scope of the change.


108-112: Passing after into pagination is correct and aligns with the fix.

This enables guarded pagination and, combined with the conditional GTE filter, prevents “operator GTE requires a value.”

Please confirm common.getPaginatedItems uses the third after argument to constrain pagination and that _getAfter() returns a sane default (e.g., recent lookback) to avoid large first-run scans.

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

10-10: Version bump is appropriate.

Matches the functional change surface.


106-110: Fix addresses the reported GTE error; _getAfter lacks default — verify units and caller coverage.

  • _getAfter() currently returns this.db.get("after") with no fallback (components/hubspot/sources/common/common.mjs — methods._getAfter). Add a default lookback (e.g., Date.now() - 246060*1000) on first run to avoid full-history scans.
  • getPaginatedItems(resourceFn, params, after = null) accepts after but defaults to null (components/hubspot/sources/common/common.mjs). Call sites are inconsistent — e.g. new-note passes params, after (components/hubspot/sources/new-note/new-note.mjs:52) and new-contact calls getPaginatedItems (components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs:106), but other sources may not. Ensure callers supply after or that a safe default is applied before pagination.
  • Units not yet confirmed — inspect _setAfter and getParams to ensure after is stored/propagated as milliseconds since epoch (HubSpot search expects epoch ms) and used consistently.
components/hubspot/sources/new-task/new-task.mjs (1)

12-12: Version bump OK.

Patch increment fits the change.

@michelle0927 michelle0927 merged commit a6b99c9 into master Sep 19, 2025
10 checks passed
@michelle0927 michelle0927 deleted the issue-18339-2 branch September 19, 2025 14:37
sergio-eliot-rodriguez pushed a commit to sergio-eliot-rodriguez/sergio_wong_does_pipedream that referenced this pull request Sep 21, 2025
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] Breaking change on Hubspot common -> New contact property change
2 participants