-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Hubspot - new components #19230
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
base: master
Are you sure you want to change the base?
Hubspot - new components #19230
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
WalkthroughAdds HubSpot conversations support: new actions (send/add-comment, list/get inboxes/channels/threads/messages), two new event sources (thread/message), new app propDefinitions and conversation methods, an API path constant, package bump, and version increments across many HubSpot modules. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant Action as Action (send/add-comment/list-*)
participant App as HubSpot App
participant API as HubSpot API
User->>Action: Invoke action (e.g., threadId, text, fileId, params)
Action->>App: Call method (createMessage / listMessages / listThreads / getInbox / listInboxes / listChannels)
App->>API: HTTP request to /conversations/v3/... (GET or POST)
API-->>App: Response (items or created message)
App-->>Action: Return API response
Action->>User: Export summary and return result
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45–60 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touches❌ Failed checks (1 warning, 2 inconclusive)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (3)
🧰 Additional context used🧠 Learnings (2)📚 Learning: 2024-07-04T18:11:59.822ZApplied to files:
📚 Learning: 2025-10-20T01:01:02.970ZApplied to files:
🧬 Code graph analysis (3)components/hubspot/actions/add-comment/add-comment.mjs (1)
components/hubspot/actions/list-channels/list-channels.mjs (4)
components/hubspot/actions/send-message/send-message.mjs (2)
⏰ 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)
🔇 Additional comments (3)
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: 7
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
components/hubspot/actions/retrieve-migrated-workflow-mappings/retrieve-migrated-workflow-mappings.mjs (1)
44-62: Bug:this.workflowIdsis undefined — prop is namedworkflow.Line 46 references
this.workflowIds, but the prop is defined asworkflowon line 30. This causesparsedWorkflowIdsto always be an empty array, so V3 workflow IDs are never processed.Apply this diff to fix the reference:
async run({ $ }) { const parsedFlowIds = parseObject(this.flowIds) || []; - const parsedWorkflowIds = parseObject(this.workflowIds) || []; + const parsedWorkflowIds = parseObject(this.workflow) || [];components/hubspot/actions/list-campaigns/list-campaigns.mjs (1)
65-66: Pre-existing: Add optional chaining tonextproperty access.If
pagingexists butnextis undefined, accessing.afterwill throw a TypeError. Consider using optional chaining for safer access.- hasMore = paging?.next.after; - params.after = paging?.next.after; + hasMore = paging?.next?.after; + params.after = paging?.next?.after;components/hubspot/actions/get-associated-emails/get-associated-emails.mjs (2)
77-80: Operator precedence issue: condition works by accident.
!results?.length > 0is parsed as(!results?.length) > 0due to operator precedence, comparing a boolean to0. While this happens to work, it's confusing and fragile.- if (!results?.length > 0) { + if (!results?.length) {
96-100: The|| []is a no-op here.The
|| []applies to the result ofsort(), not toemails. Ifemailsis nullish, the optional chain short-circuits and the|| []is never reached in a useful way. If you want a fallback, assign it earlier.- // Sort emails by timestamp in descending order (most recent first) - emails?.sort((a, b) => { - const timestampA = new Date(a.properties?.hs_timestamp || 0).getTime(); - const timestampB = new Date(b.properties?.hs_timestamp || 0).getTime(); - return timestampB - timestampA; - }) || []; + // Sort emails by timestamp in descending order (most recent first) + emails?.sort((a, b) => { + const timestampA = new Date(a.properties?.hs_timestamp || 0).getTime(); + const timestampB = new Date(b.properties?.hs_timestamp || 0).getTime(); + return timestampB - timestampA; + });
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (93)
components/hubspot/actions/add-comment/add-comment.mjs(1 hunks)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/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-channel/get-channel.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-inbox/get-inbox.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-channels/list-channels.mjs(1 hunks)components/hubspot/actions/list-forms/list-forms.mjs(1 hunks)components/hubspot/actions/list-inboxes/list-inboxes.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-messages/list-messages.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/list-threads/list-threads.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/send-message/send-message.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/common/constants.mjs(1 hunks)components/hubspot/hubspot.app.mjs(3 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-message-in-thread/new-message-in-thread.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-thread-created/new-thread-created.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)
🧰 Additional context used
🧠 Learnings (6)
📚 Learning: 2025-01-23T03:55:15.166Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.
Applied to files:
components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjscomponents/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjscomponents/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjscomponents/hubspot/sources/new-or-updated-company/new-or-updated-company.mjscomponents/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs
📚 Learning: 2024-10-30T15:24:39.294Z
Learnt from: jcortes
Repo: PipedreamHQ/pipedream PR: 14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In `components/gainsight_px/actions/create-account/create-account.mjs`, the action name should be "Create Account" instead of "Create Memory".
Applied to files:
components/hubspot/actions/create-lead/create-lead.mjscomponents/hubspot/actions/create-page/create-page.mjs
📚 Learning: 2025-10-20T01:01:02.970Z
Learnt from: js07
Repo: PipedreamHQ/pipedream PR: 18744
File: components/slack_v2/actions/send-large-message/send-large-message.mjs:49-64
Timestamp: 2025-10-20T01:01:02.970Z
Learning: In components/slack_v2/actions/send-large-message/send-large-message.mjs, the metadata_event_payload prop is typed as string, so the code only needs to handle string-to-JSON parsing and does not need to handle object inputs.
Applied to files:
components/hubspot/actions/create-communication/create-communication.mjscomponents/hubspot/actions/send-message/send-message.mjs
📚 Learning: 2024-07-04T18:11:59.822Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-07-04T18:11:59.822Z
Learning: When exporting a summary message in the `run` method of an action, ensure the message is correctly formatted. For example, in the `hackerone-get-members` action, the correct format is `Successfully retrieved ${response.data.length} members`.
Applied to files:
components/hubspot/actions/list-messages/list-messages.mjscomponents/hubspot/actions/send-message/send-message.mjs
📚 Learning: 2024-10-10T19:18:27.998Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In `components/the_magic_drip/sources/common.mjs`, when processing items in `getAndProcessData`, `savedIds` is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.
Applied to files:
components/hubspot/sources/new-message-in-thread/new-message-in-thread.mjscomponents/hubspot/sources/new-thread-created/new-thread-created.mjs
📚 Learning: 2024-07-24T02:06:47.016Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The `common-webhook-methods.mjs` object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like `generateWebhookMeta` and `getEventType` to enforce implementation in subclasses.
Applied to files:
components/hubspot/sources/new-message-in-thread/new-message-in-thread.mjscomponents/hubspot/sources/new-thread-created/new-thread-created.mjs
🧬 Code graph analysis (10)
components/hubspot/actions/get-inbox/get-inbox.mjs (8)
components/hubspot/actions/add-comment/add-comment.mjs (1)
response(55-70)components/hubspot/actions/list-messages/list-messages.mjs (1)
response(70-79)components/hubspot/actions/send-message/send-message.mjs (1)
response(89-119)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)components/hubspot/actions/get-channel/get-channel.mjs (1)
response(24-27)components/hubspot/actions/list-channels/list-channels.mjs (1)
response(30-36)components/hubspot/actions/list-inboxes/list-inboxes.mjs (1)
response(36-43)components/hubspot/actions/list-threads/list-threads.mjs (1)
response(72-83)
components/hubspot/actions/get-channel/get-channel.mjs (8)
components/hubspot/actions/add-comment/add-comment.mjs (1)
response(55-70)components/hubspot/actions/list-messages/list-messages.mjs (1)
response(70-79)components/hubspot/actions/send-message/send-message.mjs (1)
response(89-119)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)components/hubspot/actions/get-inbox/get-inbox.mjs (1)
response(24-27)components/hubspot/actions/list-channels/list-channels.mjs (1)
response(30-36)components/hubspot/actions/list-inboxes/list-inboxes.mjs (1)
response(36-43)components/hubspot/actions/list-threads/list-threads.mjs (1)
response(72-83)
components/hubspot/actions/list-messages/list-messages.mjs (8)
components/hubspot/actions/add-comment/add-comment.mjs (1)
response(55-70)components/hubspot/actions/send-message/send-message.mjs (1)
response(89-119)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)components/hubspot/actions/get-channel/get-channel.mjs (1)
response(24-27)components/hubspot/actions/get-inbox/get-inbox.mjs (1)
response(24-27)components/hubspot/actions/list-channels/list-channels.mjs (1)
response(30-36)components/hubspot/actions/list-inboxes/list-inboxes.mjs (1)
response(36-43)components/hubspot/actions/list-threads/list-threads.mjs (1)
response(72-83)
components/hubspot/sources/new-message-in-thread/new-message-in-thread.mjs (1)
components/zep/actions/get-threads/get-threads.mjs (1)
max(39-39)
components/hubspot/actions/list-channels/list-channels.mjs (6)
components/hubspot/actions/add-comment/add-comment.mjs (1)
response(55-70)components/hubspot/actions/list-messages/list-messages.mjs (1)
response(70-79)components/hubspot/actions/send-message/send-message.mjs (1)
response(89-119)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)components/hubspot/actions/list-inboxes/list-inboxes.mjs (1)
response(36-43)components/hubspot/actions/list-threads/list-threads.mjs (1)
response(72-83)
components/hubspot/actions/list-threads/list-threads.mjs (6)
components/hubspot/actions/list-messages/list-messages.mjs (1)
response(70-79)components/hubspot/actions/send-message/send-message.mjs (1)
response(89-119)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)components/hubspot/actions/get-inbox/get-inbox.mjs (1)
response(24-27)components/hubspot/actions/list-channels/list-channels.mjs (1)
response(30-36)components/hubspot/actions/list-inboxes/list-inboxes.mjs (1)
response(36-43)
components/hubspot/sources/new-thread-created/new-thread-created.mjs (3)
components/zep/actions/get-threads/get-threads.mjs (1)
max(39-39)components/hubspot/sources/new-message-in-thread/new-message-in-thread.mjs (1)
after(23-23)components/hubspot/hubspot.app.mjs (1)
results(147-152)
components/hubspot/hubspot.app.mjs (1)
components/hubspot/common/constants.mjs (1)
API_PATH(9-31)
components/hubspot/actions/send-message/send-message.mjs (2)
components/hubspot/actions/add-comment/add-comment.mjs (1)
response(55-70)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)
components/hubspot/actions/add-comment/add-comment.mjs (4)
components/hubspot/actions/send-message/send-message.mjs (1)
response(89-119)components/hubspot/hubspot.app.mjs (3)
response(1088-1093)response(1521-1525)response(1547-1552)components/hubspot/actions/get-channel/get-channel.mjs (1)
response(24-27)components/hubspot/actions/get-inbox/get-inbox.mjs (1)
response(24-27)
⏰ 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: pnpm publish
- GitHub Check: Publish TypeScript components
- GitHub Check: Lint Code Base
- GitHub Check: Verify TypeScript components
🔇 Additional comments (89)
components/hubspot/actions/update-contact/update-contact.mjs (1)
11-11: Version bump approved.This metadata-only change aligns with the broader coordinated version updates across HubSpot modules in this PR.
components/hubspot/sources/new-company-property-change/new-company-property-change.mjs (1)
10-10: Version bump is appropriate.This version increment aligns with the PR's addition of new HubSpot conversations components. The existing code structure, error handling, and logic remain sound and unchanged.
components/hubspot/sources/new-engagement/new-engagement.mjs (1)
11-11: Version bump is appropriate and consistent with PR scope.The patch version increment aligns with the coordinated HubSpot release adding conversations API support. The existing implementation remains sound with proper pagination, filtering, and deduplication semantics.
components/hubspot/sources/new-deal-property-change/new-deal-property-change.mjs (1)
10-10: Version bump is appropriate and consistent with the PR objectives.The metadata-only version update (0.0.31 → 0.0.32) aligns with the stated PR objective to bump version numbers across 80+ existing HubSpot modules due to the addition of new conversations API functionality. Since this is a patch-level version bump with no functional changes, the semantic versioning approach is sound.
components/hubspot/actions/get-company/get-company.mjs (1)
10-10: Verify the version bump strategy for unmodified modules.This file receives only a version increment from "0.0.27" to "0.0.28" with no functional changes. The PR's primary objective is to add new conversations API components, and this file is outside that scope.
Please confirm:
- Is this version bump intentional as part of a broader release strategy (e.g., all HubSpot modules versioned together)?
- Does the project's versioning convention require bumping versions of existing modules even when they are not modified?
components/hubspot/actions/get-contact/get-contact.mjs (1)
10-10: Version bump consistent with module update.The version change from 0.0.27 to 0.0.28 aligns with the module-wide version bump to 1.8.0 as part of this PR. The action structure and configuration remain unchanged and sound.
components/hubspot/sources/new-or-updated-deal/new-or-updated-deal.mjs (1)
13-13: Routine version bump—approved.The version field has been updated from 0.0.23 to 0.0.24 as a patch-level increment. Since this component has no functional changes, the version bump appears to be part of a broader release coordination across HubSpot modules (as noted in the PR summary). This is appropriate for bundled maintenance releases.
components/hubspot/sources/new-or-updated-company/new-or-updated-company.mjs (1)
13-13: Version bump approved as routine maintenance.The patch-level version increment aligns with the PR's pattern of updating version metadata across HubSpot modules following the addition of conversations API support. No functional changes detected in this component.
components/hubspot/actions/batch-create-or-update-contact/batch-create-or-update-contact.mjs (1)
8-8: Version bump as part of coordinated release.The version is incremented from 0.0.24 to 0.0.25 with no accompanying code changes. This aligns with the PR's broader objective of adding HubSpot conversations support across 80+ modules with coordinated versioning.
components/hubspot/actions/create-landing-page/create-landing-page.mjs (1)
10-10: Version bump is appropriate as part of coordinated module updates.The patch version increment aligns with the coordinated version updates across HubSpot modules in this PR.
components/hubspot/sources/new-or-updated-product/new-or-updated-product.mjs (1)
13-13: Version bump aligns with PR scope.The version is being bumped to
0.0.24as part of the broader HubSpot module updates in this PR. Since there are no functional changes to this source component, the bump appears to be for consistency/release management purposes across the HubSpot module family.components/hubspot/sources/new-ticket-property-change/new-ticket-property-change.mjs (1)
11-11: Version bump aligns with PR pattern.The minor version increment from 0.0.30 to 0.0.31 is consistent with the version bumping pattern across HubSpot modules in this PR.
components/hubspot/actions/create-communication/create-communication.mjs (1)
12-12: LGTM!Version bump is consistent with the coordinated version updates across the HubSpot module suite mentioned in the PR summary.
components/hubspot/actions/update-landing-page/update-landing-page.mjs (1)
10-10: Version bump only; action logic remains unchangedThe change is limited to the action
versionmetadata (0.0.9→0.0.10) with no modifications to props or runtime logic. This is safe and consistent with the broader HubSpot action version bumps in this PR.components/hubspot/sources/new-or-updated-custom-object/new-or-updated-custom-object.mjs (1)
10-10: Version bump is appropriate as part of coordinated PR versioning.The version bump from
0.0.25to0.0.26aligns with the widespread version updates across 80+ HubSpot modules introduced in this PR. No functional changes to this source component; the bump is metadata-only and consistent with the PR's versioning strategy.components/hubspot/actions/list-blog-posts/list-blog-posts.mjs (1)
7-7: Version bump as part of coordinated release strategy.This is a metadata-only change incrementing the version from 0.0.10 to 0.0.11. Based on the PR context indicating version bumps across 80+ HubSpot modules, this appears to be part of an atomic versioning pattern to keep all components in sync.
The action logic, props, and runtime behavior remain unchanged and correct.
Please confirm that this version-increment pattern is intentional and follows the module's versioning strategy. If all HubSpot components are being versioned together as part of this release, ensure the version scheme is documented or standardized across the codebase.
components/hubspot/actions/create-form/create-form.mjs (1)
13-13: Verify that the patch version bump aligns with the versioning strategy.This is a patch-level version increment (0.0.8 → 0.0.9) with no functional changes to this specific file. Per semantic versioning, patch bumps typically accompany bug fixes or patches. Given the broader context of this PR (80+ module version bumps + new HubSpot conversations features), please clarify whether this is part of a coordinated versioning strategy, or if there are underlying bug fixes or improvements that should be documented.
components/hubspot/actions/create-task/create-task.mjs (1)
11-11: Version bump is appropriate for administrative/packaging consistency.The version update from
0.0.12to0.0.13is consistent with the PR's broad version instrumentation across HubSpot modules. Since no functional changes are present in this file, this is purely an administrative update.components/hubspot/sources/new-contact-added-to-list/new-contact-added-to-list.mjs (1)
15-15: Version bump looks good.Patch-level version update (0.0.8 → 0.0.9) is appropriate as part of the broader HubSpot module updates in this PR. The file's existing implementation is solid with proper error handling, batch operation chunking, and pagination.
components/hubspot/actions/enroll-contact-into-workflow/enroll-contact-into-workflow.mjs (1)
8-8: LGTM! Version bump aligns with PR scope.This metadata-only version update is consistent with the broader version refresh across HubSpot modules in this PR.
components/hubspot/actions/update-page/update-page.mjs (1)
10-10: Verify the necessity of the version bump for an unaffected module.This file (CMS page update action) appears unrelated to the conversations API additions mentioned in the PR objectives. According to the AI summary, this PR bumps versions across 80+ HubSpot modules—potentially including unmodified ones. Versioning only unchanged files can obscure which modules were actually affected.
Please verify one of the following:
- Was this file's functionality affected by the conversations API changes (e.g., shared utilities, common properties, or prop definitions)?
- If not affected, consider removing the version bump to keep the changelog accurate and focused on actual changes.
components/hubspot/actions/update-company/update-company.mjs (1)
11-11: Clarify the version-bump strategy for unchanged modules.Line 11 increments the version from "0.0.28" to "0.0.29" (a patch bump), yet this file contains zero functional changes. The PR summary indicates that 80+ existing HubSpot modules are similarly bumped despite being unchanged.
Per semantic versioning, patch bumps should reflect bug fixes or non-breaking corrections. When new features are added to a component suite (e.g., new actions/sources), it's unclear whether all existing, unchanged modules should also be version-bumped.
Verify:
- Is mass version-bumping of unchanged modules a documented convention in this codebase?
- Should only modules with actual changes be version-bumped?
If this is unintended, consider reverting version bumps for unchanged files.
components/hubspot/actions/update-lead/update-lead.mjs (1)
11-11: LGTM! Routine version bump.The version increment aligns with the package-level updates in this PR.
components/hubspot/actions/get-deal/get-deal.mjs (1)
10-10: LGTM! Version bump is appropriate.The patch version increment is clean and introduces no functional changes. This coordinated version bump aligns with the broader package release strategy.
components/hubspot/sources/new-custom-object-property-change/new-custom-object-property-change.mjs (1)
10-10: LGTM! Routine version bump.The version increment is appropriate for this release and maintains consistency across the HubSpot component ecosystem.
components/hubspot/actions/list-marketing-emails/list-marketing-emails.mjs (1)
3-8: Version bump looks consistent with PR-wide metadata updatesThe change to
version: "0.0.11"is straightforward and matches the pattern of metadata-only bumps across the HubSpot actions in this PR. No functional or typing issues identified in this module as a result of this change.components/hubspot/actions/create-note/create-note.mjs (1)
11-11: LGTM! Version bump with no functional changes.This is a maintenance version bump with no code changes, aligned with the broader version sweep across HubSpot components in this PR.
components/hubspot/sources/new-or-updated-blog-article/new-or-updated-blog-article.mjs (1)
10-10: Routine version bump as part of broader release.Version update is consistent with the PR's versioning consolidation across HubSpot modules. No functional changes.
components/hubspot/actions/create-ticket/create-ticket.mjs (1)
10-10: Verify if version bump is necessary for unchanged components.This file received a version bump from "0.0.23" to "0.0.24" with no functional changes. While this may be part of a broader versioning strategy for the HubSpot integration, bumping versions without corresponding changes can make version history less meaningful and may cause unnecessary deployment churn.
Consider clarifying:
- Is there a platform requirement to bump all component versions when the HubSpot integration is updated?
- Does the version bump reflect changes in shared dependencies (e.g., the common module or app connector)?
- If neither applies, consider limiting version bumps to only those components with actual changes.
components/hubspot/actions/get-associated-meetings/get-associated-meetings.mjs (2)
10-10: Clarify version bump justification in scope of PR objectives.This version change is the only modification in a file unrelated to the PR's stated objectives (conversations/tickets support). While the AI summary indicates coordinated versioning across HubSpot modules, please confirm whether these version bumps should be included in this PR or separated into a dedicated maintenance release.
207-217: Review logic of custom date range filter.The operators in the "custom" case appear to be inverted relative to other timeframe cases and may not match the intended filtering behavior:
case "custom": return { hs_meeting_start_time: { operator: "LTE", // meetings that START on or before startDate? value: startDate, }, hs_meeting_end_time: { operator: "GTE", // meetings that END on or after endDate? value: endDate, }, };This would match meetings that span the entire date range, not meetings within the range. Compare to the "today" case which uses
GTEfor start andLTEfor end. Should this be:
hs_meeting_start_time: { operator: "GTE", value: startDate }hs_meeting_end_time: { operator: "LTE", value: endDate }components/hubspot/sources/new-contact-property-change/new-contact-property-change.mjs (1)
11-11: LGTM: Routine version increment.The version bump from "0.0.32" to "0.0.33" is appropriate as part of the PR's bulk version management strategy across HubSpot components.
components/hubspot/actions/list-marketing-events/list-marketing-events.mjs (1)
7-7: Version bump only; metadata update looks goodThe version increment to
"0.0.11"is consistent with a non-breaking metadata bump and there are no associated logic changes in this action. No further changes needed here.components/hubspot/actions/create-email/create-email.mjs (1)
13-13: This file has not been modified in the current PR. The version remains at "0.0.9" from the previous commit. There is no version bump to review here.Likely an incorrect or invalid review comment.
components/hubspot/actions/add-contact-to-list/add-contact-to-list.mjs (1)
8-8: LGTM!Version bump from 0.0.27 to 0.0.28 aligns with the broader package release for the new HubSpot conversations API features.
components/hubspot/actions/batch-create-companies/batch-create-companies.mjs (1)
11-11: LGTM!Version bump from 0.0.10 to 0.0.11 is consistent with the package-wide release.
components/hubspot/package.json (1)
3-3: LGTM!Minor version bump from 1.7.15 to 1.8.0 is appropriate per semantic versioning for the new HubSpot conversations API features (inboxes, channels, threads, messages actions and sources).
components/hubspot/sources/new-or-updated-crm-object/new-or-updated-crm-object.mjs (1)
10-10: LGTM!Version bump from 0.0.36 to 0.0.37 aligns with the package release.
components/hubspot/actions/retrieve-workflows/retrieve-workflows.mjs (1)
7-7: LGTM!Version bump from 0.0.5 to 0.0.6 is consistent with the package-wide release.
components/hubspot/sources/new-ticket/new-ticket.mjs (1)
13-13: Version bump looks good.Metadata version increment aligns with the broader HubSpot component synchronization in this PR.
components/hubspot/actions/retrieve-migrated-workflow-mappings/retrieve-migrated-workflow-mappings.mjs (1)
8-8: Version bump is appropriate.The metadata version increment is consistent with other HubSpot components in this PR.
components/hubspot/actions/clone-email/clone-email.mjs (1)
9-9: LGTM!Version bump aligns with the broader HubSpot component updates.
components/hubspot/actions/create-associations/create-associations.mjs (1)
9-9: LGTM!Version bump is consistent with the HubSpot component synchronization.
components/hubspot/sources/new-task/new-task.mjs (1)
12-12: LGTM!Version bump aligns with the HubSpot module updates in this PR.
components/hubspot/actions/delete-workflow/delete-workflow.mjs (1)
7-7: LGTM!Version bump is consistent with the broader PR versioning update.
components/hubspot/sources/new-note/new-note.mjs (1)
11-11: LGTM!Version bump aligns with the PR's metadata update pattern.
components/hubspot/sources/new-or-updated-line-item/new-or-updated-line-item.mjs (1)
13-13: LGTM!Version bump is consistent with the broader PR versioning sweep.
components/hubspot/actions/create-company/create-company.mjs (1)
10-10: LGTM!Version bump aligns with the PR's metadata update pattern across HubSpot actions.
components/hubspot/sources/delete-blog-article/delete-blog-article.mjs (1)
9-9: LGTM!Version bump is consistent with the PR's versioning update pattern.
components/hubspot/actions/create-contact-workflow/create-contact-workflow.mjs (1)
9-9: LGTM!Version bump aligns with the PR's metadata update pattern.
components/hubspot/actions/list-campaigns/list-campaigns.mjs (1)
7-7: LGTM!Version bump is consistent with the PR's metadata update pattern.
components/hubspot/actions/batch-update-companies/batch-update-companies.mjs (1)
11-11: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/sources/new-form-submission/new-form-submission.mjs (1)
9-9: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/sources/new-deal-in-stage/new-deal-in-stage.mjs (1)
16-16: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/actions/search-crm/search-crm.mjs (1)
21-21: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/actions/create-custom-object/create-custom-object.mjs (1)
13-13: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/actions/batch-upsert-companies/batch-upsert-companies.mjs (1)
10-10: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/actions/create-page/create-page.mjs (1)
10-10: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/actions/create-or-update-contact/create-or-update-contact.mjs (1)
10-10: LGTM! Version bump only.This is a metadata-only update with no functional changes.
components/hubspot/actions/get-associated-emails/get-associated-emails.mjs (1)
9-9: Version bump looks good.components/hubspot/actions/create-engagement/create-engagement.mjs (1)
14-14: Version bump looks good.components/hubspot/sources/new-or-updated-contact/new-or-updated-contact.mjs (1)
13-13: Version bump looks good.components/hubspot/sources/new-event/new-event.mjs (1)
11-11: Version bump looks good.components/hubspot/sources/new-social-media-message/new-social-media-message.mjs (1)
10-10: Version bump looks good.components/hubspot/actions/create-meeting/create-meeting.mjs (1)
14-14: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/update-custom-object/update-custom-object.mjs (1)
10-10: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/retrieve-workflow-emails/retrieve-workflow-emails.mjs (1)
7-7: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/create-lead/create-lead.mjs (1)
16-16: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/update-fields-on-the-form/update-fields-on-the-form.mjs (1)
13-13: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/retrieve-workflow-details/retrieve-workflow-details.mjs (1)
7-7: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/list-templates/list-templates.mjs (1)
8-8: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/actions/get-subscription-preferences/get-subscription-preferences.mjs (1)
8-8: LGTM! Version bump aligns with package-wide versioning update.This metadata-only change is consistent with the PR's broader versioning sweep across HubSpot actions.
components/hubspot/sources/new-email-subscriptions-timeline/new-email-subscriptions-timeline.mjs (1)
9-9: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/get-file-public-url/get-file-public-url.mjs (1)
8-8: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/clone-site-page/clone-site-page.mjs (1)
8-8: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/list-pages/list-pages.mjs (1)
8-8: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/get-meeting/get-meeting.mjs (1)
10-10: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/update-deal/update-deal.mjs (1)
11-11: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/create-deal/create-deal.mjs (1)
10-10: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/sources/new-email-event/new-email-event.mjs (1)
11-11: LGTM! Version bump aligns with package update.This metadata-only change is part of the coordinated version update across HubSpot components.
components/hubspot/actions/create-workflow/create-workflow.mjs (1)
8-8: Version bump only – looks goodThe version increment to
0.0.5is consistent with no behavioral changes in this action.components/hubspot/actions/list-forms/list-forms.mjs (1)
8-8: Version bump only – looks goodThe version update to
0.0.11is in line with the unchanged implementation of this action.components/hubspot/common/constants.mjs (1)
30-31: New CONVERSATIONS API path is consistent
CONVERSATIONS: "/conversations/v3"aligns with the existingAPI_PATHnaming and URL structure and is suitable for the new conversations methods.components/hubspot/actions/get-channel/get-channel.mjs (1)
1-31: Get Channel action wiring looks correctThe action correctly exposes
channelId, delegates tothis.hubspot.getChannel, and exports a clear success summary. Annotations and metadata are consistent with other read-only actions.components/hubspot/actions/get-inbox/get-inbox.mjs (1)
1-31: Get Inbox action is correctly implementedThe action cleanly exposes
inboxId, callsthis.hubspot.getInbox, and exports a clear success summary. Annotations properly reflect a read‑only retrieval.components/hubspot/sources/new-thread-created/new-thread-created.mjs (1)
13-33: Polling, pagination, and seeding behavior look consistent with existing patterns
processEventcorrectly:
- Reads the cursor via
_getAfter,- Pages
listThreadswith a stable sort,- Advances
_setAfter(paging?.next?.after)before applying themaxcap,- Emits each thread via
emitEvent, and- Uses
deploy()to seed a bounded initial batch.This matches the “emit up to N items on deploy but consider the whole page as seen” pattern used in other sources, avoiding retroactive emissions on subsequent runs.
Also applies to: 42-49
components/hubspot/sources/new-message-in-thread/new-message-in-thread.mjs (1)
11-19: Message polling implementation looks solid and consistentThe source cleanly extends
commonand wiresthreadIdintolistMessages, using_getAfter/_setAfteranddedupe: "unique"to avoid duplicates. Thedeploy()cap of 25 messages and descending-createdAtsort follow the same seeding and pagination conventions as the new-thread source.Also applies to: 22-42
components/hubspot/hubspot.app.mjs (2)
381-392: New prop definitions for conversations resources are well-integratedThe added
fileId,inboxId,channelId,threadId,channelAccountId, andsenderActorIdprops:
- Reuse existing search/pagination patterns (
searchFiles,listInboxes,listChannels,listThreads,listChannelAccounts,getOwners) withprevContextandaftercursors.- Provide clear labels / descriptions that make it obvious what each ID represents in the UI.
- Expose enough context (
inboxId,channelId) to filter threads and channel accounts appropriately.This gives the downstream actions and sources a clean, composable way to select the right conversations objects.
Also applies to: 710-849
1826-1890: Conversations helper methods correctly encapsulate the new API surfaceThe new methods:
getInbox,getChannellistInboxes,listChannels,listThreads,listMessageslistChannelAccounts,createMessageall consistently:
- Use
api: API_PATH.CONVERSATIONSwith endpoints like/conversations/inboxes,/conversations/threads/${threadId}/messages, which matches the documentedconversations/v3paths.- Defer params/body and
$handling via...opts, aligning with the rest of the app’s helpers.- Separate reading (
list*) from writing (createMessagewith explicitmethod: "POST").This keeps the conversations API nicely encapsulated and easy to consume from actions/sources.
|
@vunguyenhung For testing the "Send Email" action, I was able to execute it successfully using the "EMAIL" channel. To connect an email to an account: Settings -> General -> Email |
lcaresia
left a 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.
LGTM!
For Integration QA: |
|
Hi everyone, all test cases are passed! Ready for release! Test reports
|
Resolves #19175
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.