-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Hubspot - bug fix to sources w/ property changes #18379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
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. Comment |
There was a problem hiding this 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 forafter
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 toundefined
, which is always false, thenelse 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
performId
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 tolastMembershipTimestamp
(ISO string) using>
. If one is a number and the other an ISO string, coercion yieldsNaN
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 HubSpotafter
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 forstartTimestamp
.
If_getAfter()
ever returns undefined, this will sendstartTimestamp: 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
: GuardoccurredAfter
in first run.
Events useoccurredAfter: 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 thesince
parameter.Passing
since: after
whenafter
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 receivesafter
. 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
📒 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 falsyafter
as a first-run (does not rely on anafter
-based GTE filter) and new-or-updated-line-item.getParams() does not build any filter usingafter
. (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
: Sameafter
default concern — confirmafter
isn't undefined.
Deals usehs_lastmodifieddate GTE
; check components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs (processResults, ~lines 121–123) — ensureafter
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 filterThere 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 theafter
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 whenafter
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" whenafter
is null/undefined — only include the filter whenafter
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
: Passafter
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
: Passingafter
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
: Guardhs_lastmodifieddate GTE
byafter
— correct fix.Prevents “operator GTE requires a value” on first run. Good.
107-111
: Use updated pagination withafter
— 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
: Guardhs_lastmodifieddate GTE
byafter
— correct.
113-117
: Passafter
to pagination — good.components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs (3)
10-10
: Version bump — OK.
72-79
: Guardhs_lastmodifieddate GTE
byafter
— correct.
104-108
: Passafter
to pagination — good.components/hubspot/sources/common/common.mjs (1)
1-191
: Repo-wide verification for GTE filterscomponents/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
: Passingafter
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 thirdafter
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 passesparams, 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 supplyafter
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.
* updates * versions
* 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]>
Resolves #18339
Followup to PR #18345
Summary by CodeRabbit
New Features
Chores