Skip to content

Conversation

@seynadio
Copy link
Contributor

@seynadio seynadio commented Jul 14, 2025

Summary

  • Add createInternalNote method to Trengo app with JSDoc documentation
  • Create dedicated create-internal-note action for adding notes to tickets
  • Enhance send-a-message action with createInternalNote option and proper validation
  • Leverage existing new-internal-note webhook source for notifications

Changes

  • trengo.app.mjs: Added createInternalNote method with proper JSDoc
  • create-internal-note.mjs: New action for creating internal notes on tickets
  • send-a-message.mjs: Enhanced with internal note option and ticket ID validation
  • package.json: Version bump to 0.1.1

Test plan

  • Test creating internal notes via both actions
  • Test validation for required ticket ID in send-a-message action
  • Add JSDoc documentation for code quality
  • Remove accidental Freshdesk changes from original PR

API Usage

Uses Trengo's /tickets/notes endpoint for creating internal notes.

Summary by CodeRabbit

  • New Features

    • Added the ability to create internal notes on Trengo tickets, visible only to team members.
    • Enhanced the message sending action to optionally create an internal note instead of sending a message.
  • Chores

    • Updated the Trengo integration package version to 0.1.1.

- Add createInternalNote method to Trengo app with JSDoc documentation
- Create dedicated create-internal-note action for adding notes to tickets
- Enhance send-a-message action with createInternalNote option and proper validation
- Update package version to 0.1.1
- Leverage existing new-internal-note webhook source for notifications
@adolfo-pd adolfo-pd added the User submitted Submitted by a user label Jul 14, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 14, 2025

Walkthrough

A new "Create Internal Note" action was added to the Trengo integration, allowing users to create internal notes on tickets. The "Send a Message" action was updated to optionally create internal notes instead of sending messages. The Trengo app gained a createInternalNote method, and the package version was incremented.

Changes

File(s) Change Summary
components/trengo/actions/create-internal-note/create-internal-note.mjs Added new "Create Internal Note" action for adding internal notes to tickets.
components/trengo/actions/send-a-message/send-a-message.mjs Updated to support creating internal notes via new props and conditional logic in the run method.
components/trengo/trengo.app.mjs Added createInternalNote method for posting internal notes to the Trengo API.
components/trengo/package.json Bumped package version from 0.1.0 to 0.1.1.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Action
    participant App
    participant TrengoAPI

    User->>Action: Trigger "Create Internal Note"
    Action->>App: call createInternalNote(ticketId, note)
    App->>TrengoAPI: POST /tickets/notes
    TrengoAPI-->>App: Response
    App-->>Action: Response
    Action-->>User: Summary & Result
Loading
sequenceDiagram
    participant User
    participant Action
    participant App
    participant TrengoAPI

    User->>Action: Trigger "Send a Message"
    alt createInternalNote = true
        Action->>App: call createInternalNote(ticketId, message)
        App->>TrengoAPI: POST /tickets/notes
        TrengoAPI-->>App: Response
        App-->>Action: Response
        Action-->>User: Internal note created summary
    else createInternalNote = false
        Action->>App: sendMessage(...)
        App->>TrengoAPI: POST /messages
        TrengoAPI-->>App: Response
        App-->>Action: Response
        Action-->>User: Message sent summary
    end
Loading

Poem

In the warren of code, a note hops in,
Internal whispers where teamwork begins.
Messages leap, or quietly stay,
With Trengo’s new features, we rabbits say:
“A ticket’s a burrow, with secrets to keep,
Now notes nestle softly, where only teams peep!” 🐇✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

components/trengo/actions/create-internal-note/create-internal-note.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:255:9)
at packageResolve (node:internal/modules/esm/resolve:767:81)
at moduleResolve (node:internal/modules/esm/resolve:853:18)
at defaultResolve (node:internal/modules/esm/resolve:983:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)
at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)
at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)
at #link (node:internal/modules/esm/module_job:202:49)

components/trengo/actions/send-a-message/send-a-message.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:255:9)
at packageResolve (node:internal/modules/esm/resolve:767:81)
at moduleResolve (node:internal/modules/esm/resolve:853:18)
at defaultResolve (node:internal/modules/esm/resolve:983:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)
at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)
at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)
at #link (node:internal/modules/esm/module_job:202:49)

components/trengo/trengo.app.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:255:9)
at packageResolve (node:internal/modules/esm/resolve:767:81)
at moduleResolve (node:internal/modules/esm/resolve:853:18)
at defaultResolve (node:internal/modules/esm/resolve:983:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)
at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)
at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)
at #link (node:internal/modules/esm/module_job:202:49)


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e21d334 and 2ee9753.

📒 Files selected for processing (4)
  • components/trengo/actions/create-internal-note/create-internal-note.mjs (1 hunks)
  • components/trengo/actions/send-a-message/send-a-message.mjs (2 hunks)
  • components/trengo/package.json (1 hunks)
  • components/trengo/trengo.app.mjs (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
components/trengo/package.json (1)
Learnt from: jcortes
PR: PipedreamHQ/pipedream#14935
File: components/sailpoint/package.json:15-18
Timestamp: 2024-12-12T19:23:09.039Z
Learning: When developing Pipedream components, do not add built-in Node.js modules like `fs` to `package.json` dependencies, as they are native modules provided by the Node.js runtime.
components/trengo/actions/send-a-message/send-a-message.mjs (3)
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-10-08T15:33:38.240Z
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`.
Learnt from: GTFalcao
PR: PipedreamHQ/pipedream#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`.
Learnt from: jcortes
PR: PipedreamHQ/pipedream#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".
components/trengo/actions/create-internal-note/create-internal-note.mjs (1)
Learnt from: jcortes
PR: PipedreamHQ/pipedream#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".
🔇 Additional comments (8)
components/trengo/trengo.app.mjs (1)

244-255: LGTM! Well-implemented method with proper documentation.

The createInternalNote method follows the established patterns in the codebase and includes clear JSDoc documentation. The implementation correctly uses the existing _makeRequest method and targets the appropriate /tickets/notes endpoint.

components/trengo/package.json (1)

3-3: LGTM! Appropriate version increment for new functionality.

The minor version increment from 0.1.0 to 0.1.1 correctly reflects the addition of internal notes functionality to the Trengo integration.

components/trengo/actions/send-a-message/send-a-message.mjs (3)

6-6: LGTM! Appropriate version increment for feature enhancement.

The version increment from 0.0.2 to 0.0.3 correctly reflects the addition of internal note functionality to the existing send message action.


43-57: LGTM! Well-designed properties with proper validation requirements.

The new properties are well-structured:

  • createInternalNote defaults to false, maintaining backward compatibility
  • ticketId is correctly marked as optional but documented as required when creating internal notes
  • Property definitions follow the established patterns in the codebase

59-89: LGTM! Excellent implementation with proper validation and error handling.

The conditional logic is well-implemented:

  • Proper validation ensures ticketId is provided when creating internal notes
  • Clear error message for missing required parameter
  • Maintains original functionality when createInternalNote is false
  • Appropriate summary messages for both code paths
  • Consistent data structure formatting (snake_case for API)
components/trengo/actions/create-internal-note/create-internal-note.mjs (3)

3-8: LGTM! Well-structured action with proper metadata and documentation.

The action definition follows Pipedream conventions with appropriate key, version, name, and description. The documentation link provides helpful context for users.


9-25: LGTM! Proper property definitions with required validation.

The props are well-defined:

  • Correctly uses propDefinitions from the app
  • The note property is appropriately marked as required (optional: false)
  • Clear and descriptive property documentation

26-37: LGTM! Clean and effective implementation.

The run method is well-implemented:

  • Correctly calls the app's createInternalNote method
  • Proper data structure with snake_case for API consistency
  • Informative summary message with ticket ID
  • Returns the response appropriately
✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need 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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@vercel
Copy link

vercel bot commented Jul 14, 2025

@seynadio is attempting to deploy a commit to the Pipedreamers Team on Vercel.

A member of the Team first needs to authorize it.

@vercel
Copy link

vercel bot commented Jul 14, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
pipedream-docs ⬜️ Ignored (Inspect) Jul 21, 2025 11:28am
pipedream-docs-redirect-do-not-edit ⬜️ Ignored (Inspect) Jul 21, 2025 11:28am

@pipedream-component-development
Copy link
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development
Copy link
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@seynadio seynadio mentioned this pull request Jul 14, 2025
Afstkla and others added 4 commits July 21, 2025 08:27
- Increment version number for send-a-message action from 0.0.3 to 0.0.4
- This fixes the "Ensure component commits modify component versions" check

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Add newline at end of create-internal-note.mjs to fix linting error
- Update version numbers for all components that depend on trengo.app.mjs
  - create-contact: 0.0.2 -> 0.0.3
  - find-contacts: 0.0.2 -> 0.0.3
  - log-a-voice-call: 0.0.2 -> 0.0.3
  - send-a-team-chat-message: 0.0.2 -> 0.0.3
  - send-a-whatsapp-message-template: 0.0.2 -> 0.0.3
  - new-inbound-message: 0.0.2 -> 0.0.3
  - new-internal-note: 0.0.2 -> 0.0.3
  - new-outbound-message: 0.0.2 -> 0.0.3
  - phone-call-ended: 0.0.2 -> 0.0.3
  - phone-call-missed: 0.0.2 -> 0.0.3
  - phone-call-started: 0.0.2 -> 0.0.3
  - ticket-label-added: 0.0.2 -> 0.0.3
  - voice-call-recorded: 0.0.1 -> 0.0.2

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@seynadio seynadio closed this Aug 15, 2025
@seynadio seynadio deleted the trengo-internal-notes-clean branch August 15, 2025 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants