-
Notifications
You must be signed in to change notification settings - Fork 5.5k
17171 action new trigger action new lead update instant in pipedrive #17199
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
17171 action new trigger action new lead update instant in pipedrive #17199
Conversation
…17171 Sources - Updated Lead (Instant)
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 3 Skipped Deployments
|
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including You can disable this status message by setting the """ WalkthroughThis update introduces a new "Lead Updated (Instant)" source trigger for Pipedrive, including its implementation and a sample test event. Additionally, several existing actions and sources have their version numbers incremented, some import statements are reordered, and helper methods for parsing custom fields were added. The package version was also incremented. Changes
Sequence Diagram(s)sequenceDiagram
participant Pipedrive as Pipedrive
participant Source as "Lead Updated (Instant) Source"
participant App as Application
Pipedrive->>Source: Webhook event (lead updated)
Source->>Source: getExtraData() returns event info
Source->>Source: getSummary(event) generates summary
Source->>App: Emit event with lead update data and summary
Assessment against linked issues
Assessment against linked issues: Out-of-scope changes
Suggested reviewers
Poem
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
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: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (18)
components/pipedrive/actions/add-activity/add-activity.mjs(1 hunks)components/pipedrive/actions/add-deal/add-deal.mjs(1 hunks)components/pipedrive/actions/add-lead/add-lead.mjs(1 hunks)components/pipedrive/actions/add-note/add-note.mjs(1 hunks)components/pipedrive/actions/add-organization/add-organization.mjs(1 hunks)components/pipedrive/actions/add-person/add-person.mjs(1 hunks)components/pipedrive/actions/remove-duplicate-notes/remove-duplicate-notes.mjs(1 hunks)components/pipedrive/actions/search-notes/search-notes.mjs(1 hunks)components/pipedrive/actions/search-persons/search-persons.mjs(1 hunks)components/pipedrive/actions/update-deal/update-deal.mjs(1 hunks)components/pipedrive/actions/update-person/update-person.mjs(1 hunks)components/pipedrive/package.json(2 hunks)components/pipedrive/sources/new-deal-instant/new-deal-instant.mjs(1 hunks)components/pipedrive/sources/new-person-instant/new-person-instant.mjs(1 hunks)components/pipedrive/sources/updated-deal-instant/updated-deal-instant.mjs(1 hunks)components/pipedrive/sources/updated-lead-instant/test-event.mjs(1 hunks)components/pipedrive/sources/updated-lead-instant/updated-lead-instant.mjs(1 hunks)components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (4)
- GitHub Check: Verify TypeScript components
- GitHub Check: Publish TypeScript components
- GitHub Check: pnpm publish
- GitHub Check: Lint Code Base
🔇 Additional comments (21)
components/pipedrive/package.json (1)
3-3: Version and dependency updated correctly.The package version has been bumped to
0.7.0and the@pipedream/platformdependency updated to^3.1.0, aligning with the coordinated release across Pipedrive components.Also applies to: 17-17
components/pipedrive/actions/update-person/update-person.mjs (1)
9-9: Patch version bump for update-person action.Version updated to
0.0.3, consistent with the minor version increments applied to other Pipedream components in this release.components/pipedrive/sources/new-deal-instant/new-deal-instant.mjs (1)
9-9: Version bump for new-deal-instant source.Updated version to
0.0.7, matching the coordinated version updates for instant sources in this PR.components/pipedrive/actions/update-deal/update-deal.mjs (1)
8-8: Minor version increment for update-deal action.Version bumped to
0.1.13to stay in sync with the overall Pipedream component release.components/pipedrive/actions/add-note/add-note.mjs (1)
8-8: Incremented version for add-note action.Version updated to
0.0.9, consistent with other Pipedream actions receiving minor version bumps in this release.components/pipedrive/actions/add-organization/add-organization.mjs (1)
8-8: Consistent version bump
Updated the action version to "0.1.11" to align with the coordinated release across Pipedrive actions.components/pipedrive/actions/remove-duplicate-notes/remove-duplicate-notes.mjs (2)
2-2: Alphabetize imports
Reordering the imports to havedecodebeforepipedriveAppmatches the style used in other components.
8-8: Consistent version bump
Updated the action version to "0.0.2" in line with the bulk version upgrade for Pipedrive actions.components/pipedrive/actions/add-person/add-person.mjs (1)
9-9: Consistent version bump
Action version updated to "0.1.11" to stay in sync with related modules.components/pipedrive/actions/add-deal/add-deal.mjs (1)
8-8: Consistent version bump
Updated the action version to "0.1.11" matching the coordinated release update.components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs (1)
9-9: Consistent version bump
Bumped the source version to "0.0.7" in line with other Pipedrive source components.components/pipedrive/actions/search-notes/search-notes.mjs (1)
7-7: Consistent version bump
Version updated to "0.0.2", matching the coordinated versioning update across Pipedrive actions.components/pipedrive/sources/updated-deal-instant/updated-deal-instant.mjs (1)
9-9: Consistent version bump
Updated version to "0.0.7", aligning with other instant sources in this PR.components/pipedrive/sources/new-person-instant/new-person-instant.mjs (1)
9-9: Consistent version bump
Incremented version to "0.0.7" to maintain parity across instant sources.components/pipedrive/actions/search-persons/search-persons.mjs (1)
10-10: Consistent version bump
Version updated to "0.1.11", matching related action components.components/pipedrive/actions/add-activity/add-activity.mjs (1)
10-10: Consistent version bump
Bumped version to "0.1.11", in line with other Pipedrive action updates.components/pipedrive/actions/add-lead/add-lead.mjs (2)
1-3: LGTM! Import organization follows best practices.The reordering of imports (platform imports → utility imports → app imports) improves code organization and readability.
9-9: Version bump looks appropriate.The version increment from 0.0.4 to 0.0.5 aligns with the coordinated update across Pipedrive components mentioned in the summary.
components/pipedrive/sources/updated-lead-instant/test-event.mjs (1)
1-56: Well-structured test event data.The test event provides comprehensive mock data that accurately represents a Pipedrive lead update webhook event, including current state, previous state, and metadata. The structure aligns well with Pipedrive's webhook format.
components/pipedrive/sources/updated-lead-instant/updated-lead-instant.mjs (2)
4-11: Component metadata looks well-defined.The component key, name, description, version, type, and dedupe strategy are all appropriately configured for a new Pipedrive lead update source.
14-19: getExtraData method correctly configured.The method properly returns the event action and object type for lead update events, which aligns with Pipedrive's webhook event structure.
components/pipedrive/sources/updated-lead-instant/updated-lead-instant.mjs
Show resolved
Hide resolved
GTFalcao
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!
components/pipedrive/sources/updated-lead-instant/updated-lead-instant.mjs
Outdated
Show resolved
Hide resolved
…ged "New Deal Update" to "Deal Updated", "Updated Lead" to "Lead Updated", and "Updated Person" to "Person Updated".
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
🧹 Nitpick comments (2)
components/jobber/actions/search-quotes/search-quotes.mjs (2)
65-76: Consider adding date format validation.The date props specify YYYY-MM-DD format but lack validation. Invalid date formats could cause GraphQL errors at runtime.
Consider adding format validation:
dateFrom: { type: "string", label: "Date From", description: "Filter quotes created from this date (YYYY-MM-DD)", optional: true, + pattern: "^\\d{4}-\\d{2}-\\d{2}$", }, dateTo: { type: "string", label: "Date To", description: "Filter quotes created until this date (YYYY-MM-DD)", optional: true, + pattern: "^\\d{4}-\\d{2}-\\d{2}$", },
152-230: Consider using template literals for better query readability.The string concatenation approach works but could be more maintainable using template literals.
Consider refactoring to use template literals:
- let query = `query SearchQuotes { - quotes${filterString}(first: ${limit}) { + const query = ` + query SearchQuotes { + quotes${filterString}(first: ${limit}) { + nodes { + id + quoteNumber + title + message + quoteStatus + previewUrl + jobberWebUri + createdAt + updatedAt + transitionedAt + clientHubViewedAt + client { + id + firstName + lastName + companyName + } + property { + id + address { + street + city + state + zip + } + } + amounts { + subtotal + tax + total + } + ${includeLineItems ? ` + lineItems { + nodes { + id + name + description + quantity + unitPrice + total + } + } + ` : ''} + ${includeNotes ? ` + notes { + nodes { + id + body + createdAt + } + } + ` : ''} + ${includeCustomFields ? ` + customFields { + id + name + value + } + ` : ''} + } + pageInfo { + hasNextPage + endCursor + } + } + } + `;
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
components/jobber/actions/search-quotes/search-quotes.mjs(1 hunks)components/pipedrive/sources/updated-deal-instant/updated-deal-instant.mjs(1 hunks)components/pipedrive/sources/updated-lead-instant/updated-lead-instant.mjs(1 hunks)components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- components/pipedrive/sources/updated-deal-instant/updated-deal-instant.mjs
🚧 Files skipped from review as they are similar to previous changes (2)
- components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs
- components/pipedrive/sources/updated-lead-instant/updated-lead-instant.mjs
⏰ Context from checks skipped due to timeout of 90000ms (4)
- GitHub Check: Lint Code Base
- GitHub Check: pnpm publish
- GitHub Check: Publish TypeScript components
- GitHub Check: Verify TypeScript components
🔇 Additional comments (4)
components/jobber/actions/search-quotes/search-quotes.mjs (4)
1-8: LGTM! Clean module setup and metadata.The import structure and module metadata follow standard conventions. The documentation link could be more specific to the GraphQL API, but the current reference is acceptable.
121-150: Excellent filter building logic.The dynamic filter construction is well-implemented with proper GraphQL syntax. The enum value handling (unquoted) and string value escaping (quoted) are correct.
239-241: Error handling is adequate but basic.The current error handling takes only the first GraphQL error, which is a common and acceptable practice.
243-250: Excellent response handling and summary generation.The data extraction and summary export with proper pluralization handling are well-implemented.
|
/approve |
components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs
Outdated
Show resolved
Hide resolved
…rive sources - Introduced `getDealCustomFields` and `getPersonCustomFields` methods in the Pipedrive app for fetching custom fields. - Implemented `parseCustomFields` utility to map custom fields to their respective names. - Updated `parseData` method in common utilities to handle custom fields for both deals and persons. - Enhanced `parseData` methods in updated deal and person sources to utilize the new parsing logic. - Bumped version for updated deal and person sources to 0.1.0.
…-in-pipedrive' of https://github.com/PipedreamHQ/pipedream into 17171-action-new-trigger-action-new-lead-update-instant-in-pipedrive
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: 3
♻️ Duplicate comments (1)
components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs (1)
8-8: Name change addresses previous review feedback.The name change from "Updated Person (Instant)" to "Person Updated (Instant)" addresses the previous review suggestion.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
components/pipedrive/common/utils.mjs(1 hunks)components/pipedrive/pipedrive.app.mjs(1 hunks)components/pipedrive/sources/common/base.mjs(2 hunks)components/pipedrive/sources/updated-deal-instant/updated-deal-instant.mjs(2 hunks)components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- components/pipedrive/sources/updated-deal-instant/updated-deal-instant.mjs
⏰ Context from checks skipped due to timeout of 90000ms (4)
- GitHub Check: Lint Code Base
- GitHub Check: Verify TypeScript components
- GitHub Check: Publish TypeScript components
- GitHub Check: pnpm publish
🔇 Additional comments (3)
components/pipedrive/sources/common/base.mjs (1)
41-41: LGTM! Proper async handling of parseData.The implementation correctly awaits the
parseDatamethod call before emitting the event.components/pipedrive/pipedrive.app.mjs (1)
362-369: LGTM! New API methods follow established patterns.The
getDealCustomFieldsandgetPersonCustomFieldsmethods are correctly implemented following the existing pattern used by other API methods in this file.components/pipedrive/sources/updated-person-instant/updated-person-instant.mjs (1)
24-29: LGTM! Proper integration of custom field parsing.The
parseDatamethod correctly integrates the utility function with the appropriate API method for fetching person custom fields.
- Added `parseData` method to process lead data using custom fields. - Updated version from 0.0.1 to 0.1.0 to reflect new functionality.
…pdate-instant-in-pipedrive
…pdate-instant-in-pipedrive
|
/approve |
Resolves #17171
Summary by CodeRabbit
New Features
Enhancements
Version Updates
Chores