Microsoft Entra ID — add Create, Update, and Delete Group actions#20596
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds Create, Update, and Delete Group actions and corresponding app methods to the Microsoft Entra ID component; increments several action versions and bumps the component package version. No other runtime behavior changes to pre-existing actions. Changes
Sequence Diagram(s)sequenceDiagram
participant Runner as Action Runner
participant App as microsoft_entra_id.app
participant Graph as Microsoft Graph API
Runner->>App: createGroup(data)
App->>Graph: POST /groups with data (ConsistencyLevel: rgba(0,128,0,0.5))
Graph-->>App: 201 Created (response)
App-->>Runner: return response, export $summary
Runner->>App: updateGroup(groupId, data)
App->>Graph: PATCH /groups/{groupId} with data (ConsistencyLevel: rgba(0,128,0,0.5))
Graph-->>App: 200 OK (response)
App-->>Runner: return response, export $summary
Runner->>App: deleteGroup(groupId)
App->>Graph: DELETE /groups/{groupId} (ConsistencyLevel: rgba(0,128,0,0.5))
Graph-->>App: 204 No Content / confirmation
App-->>Runner: return response, export $summary
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@components/microsoft_entra_id/actions/add-member-to-group/add-member-to-group.mjs`:
- Line 6: The description in add-member-to-group.mjs currently links to the
wrong API (user-update); update the description string to point to the Microsoft
Graph "Add member to group" (group-post-members) docs instead — replace the
existing URL in the description with the correct endpoint documentation URL for
group-post-members
(https://learn.microsoft.com/graph/api/group-post-members?view=graph-rest-1.0),
keeping the rest of the description text intact.
- Around line 8-9: The annotations object in add-member-to-group (property
destructiveHint) is currently set to true but this is an add operation and
reversible; change destructiveHint to false in the annotations block for the
add-member-to-group action so the UI/guidelines treat it as non-destructive
(locate the annotations object where destructiveHint is declared and update its
value).
In `@components/microsoft_entra_id/actions/create-group/create-group.mjs`:
- Around line 16-35: displayName, mailNickname, and securityEnabled are being
duplicated inline in create-group (in create-group.mjs) and update-group
(update-group.mjs); move these shared prop definitions into the app's
propDefinitions in microsoft_entra_id.app.mjs and replace the inline definitions
in both actions with propDefinition references (e.g., use propDefinition: [{
propDefinitionName: "displayName" }] style for displayName, mailNickname, and
securityEnabled) so labels, descriptions and options are centralized and
consistent across CreateGroup and UpdateGroup.
In `@components/microsoft_entra_id/actions/update-group/update-group.mjs`:
- Around line 58-67: Update the visibility property's description in the action
definition so it explicitly includes concrete allowed-value examples for the AI
agent (e.g., "Public" or "Private"); locate the visibility property (type:
"string", label: "Visibility") and change its description to mention the exact
enum strings and an example usage so the agent knows the expected values.
In `@components/microsoft_entra_id/actions/update-user/update-user.mjs`:
- Around line 9-10: The annotations object in the update-user action currently
sets destructiveHint: true; change it to destructiveHint: false to align with
guidelines for non-destructive update/patch operations. Locate the annotations
block in components/microsoft_entra_id/actions/update-user/update-user.mjs (the
annotations object where destructiveHint is defined) and replace true with false
so updates are not marked as destructive.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 0d71ac56-5299-4dbd-a42d-e918670bbf3d
📒 Files selected for processing (14)
components/microsoft_entra_id/actions/add-member-to-group/add-member-to-group.mjscomponents/microsoft_entra_id/actions/create-group/create-group.mjscomponents/microsoft_entra_id/actions/delete-group/delete-group.mjscomponents/microsoft_entra_id/actions/get-manager/get-manager.mjscomponents/microsoft_entra_id/actions/get-ms365-groups/get-ms365-groups.mjscomponents/microsoft_entra_id/actions/get-organization-groups/get-organization-groups.mjscomponents/microsoft_entra_id/actions/get-organization-users/get-organization-users.mjscomponents/microsoft_entra_id/actions/get-profile/get-profile.mjscomponents/microsoft_entra_id/actions/remove-member-from-group/remove-member-from-group.mjscomponents/microsoft_entra_id/actions/search-groups/search-groups.mjscomponents/microsoft_entra_id/actions/update-group/update-group.mjscomponents/microsoft_entra_id/actions/update-user/update-user.mjscomponents/microsoft_entra_id/microsoft_entra_id.app.mjscomponents/microsoft_entra_id/package.json
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…pedreamHQ#20596) * new group actions * versions * Update components/microsoft_entra_id/actions/update-user/update-user.mjs Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * update * version --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* add avinode component
* add get airport for easier testing
* install pipedream platform
* use async options for get airport
* bump package version
* fix page number
* Update pnpm lockfile
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* [ACTION] Zoho Desk - Ticket Comments (List, Get, Update, Delete, History) (#20556)
* [ACTION] Zoho Desk - Ticket Comments (List, Get, Update, Delete, History)
* chore: bump version of List Ticket Threads action to 0.0.4
---------
Co-authored-by: Luan Cazarine <luanhc@gmail.com>
* Quickbooks - add methods for listing specific types of invoices (#20538)
* add methods for listing specific types of invoices
* reduce duplication and trim query before sending
* further reduce duplication and normalize response output
* fix timezone issue and verify query is an invoice query
* Update components/quickbooks/common/quickbooks-company-date.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix linting issue
* Update pnpm lockfile
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Josh Ellman <josh.ellman@robosource.us>
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* Initial CodeRabbit guidelines (#20533)
* Initial CodeRabbit guidelines
* syntax fix
* another syntax fix
* Description adjustment
* Adjusting code example syntax
* Review adjustments
* Update .github/pipedream-source-guidelines.md
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Small improvements
* Using 'assertive' profile
* Adjusting base branch on config
* Added key checks suggested by CodeRabbit
* Adjusting app file sections
* Minor fixes
* Consistency updates
* Adjustment
* Added file handling instructions
---------
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update QuickBooks actions to import app module and bump version to 0.0.2 (#20583)
* Update QuickBooks actions to import app module and bump version to 0.0.2
* Bump version of QuickBooks Sandbox component to 0.5.1
* Adding app scaffolding for lever
* feat: Add Status Change Source (#20156)
* feat: Add Status Change Source
* Update status_change.mjs
* Update status_change.mjs
* Update status_change.mjs
Fixed various errors and warnings from Lint Code Base.
* Update status_change.mjs
* move api request methods to app file
* update folder/file names
* update name, add getter/setter methods, updates
* pnpm-lock.yaml
* versions
---------
Co-authored-by: ooi2018 <251248496+ooi2018@users.noreply.github.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Zoho Desk - List Conversations (#20578)
* list conversations action
* versions
* add orgId header
* version
* versions
* fix(odoo): support dynamic model in actions (#20483)
* Enhance Odoo integration by adding modelName prop to actions and updating method signatures. Bump action versions to 0.0.3 for create, search-read, and update record actions. This allows for dynamic model interaction in Odoo API calls.
* fix(odoo): address PR review for dynamic model props
- Pass modelName into fields options via options({ modelName }) and propDefinition callback
- Remove unused readRecord helper
- Use plain odoo prop with reloadProps on modelName (create, search-read, update)
* chore(odoo): bump package patch version to 0.1.1
* fixed prop issue
* feat: Add modelName options to Odoo app and fix promise error handling
- Add predefined model options (res.partner, helpdesk.ticket, sale.order, crm.lead) to modelName prop
- Fix promise error handling in getUid() and makeRequest() methods to properly reject on errors
- Bump package version from 0.1.1 to 0.2.0
- Bump action versions from 0.0.3 to 0.0.4
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
* Update components/odoo/actions/create-record/create-record.mjs
Co-authored-by: Jorge Cortes <jacortesmahmud@gmail.com>
* Update components/odoo/actions/search-read-records/search-read-records.mjs
Co-authored-by: Jorge Cortes <jacortesmahmud@gmail.com>
* Update components/odoo/actions/update-record/update-record.mjs
Co-authored-by: Jorge Cortes <jacortesmahmud@gmail.com>
---------
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Co-authored-by: Jorge Cortes <jacortesmahmud@gmail.com>
* update get-organization-users (#20597)
* Bump axios from 0.30.3 to 1.15.0 (#20598)
Bumps [axios](https://github.com/axios/axios) from 0.30.3 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.30.3...v1.15.0)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.15.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* GitHub — add name search to List Repositories action (#20604)
* add name prop to list-repositories
* Update components/github/actions/list-repositories/list-repositories.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update components/github/package.json
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Hubspot - Migrate Contact Lists v1 API to v3 (#20180)
* migrate List API to v3
* remove console.log
* versions
* updates for feedbackSurveyId
* versions
* add info alert
* versions
* versions
---------
Co-authored-by: Michelle Bergeron <michelle.pipedream@gmail.com>
* Gitlab - List Groups action (#20606)
* list-groups action
* updates
* Asana - Search Tasks Premium action (#20607)
* new search-tasks-premium action
* update package.json version
* versions
* updates
* Update components/asana/actions/search-tasks-premium/search-tasks-premium.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Flock new actions (#20581)
* new actions
* pnpm-lock.yaml
* Improving userId options
---------
Co-authored-by: GTFalcao <gtfalcao96@gmail.com>
* Adding app scaffolding for pubrio
* Adding app scaffolding for xray_cloud
* Adding app scaffolding for trugrid_securerdp
* Adding app scaffolding for strale
* feat(components): add Pubrio component — B2B data intelligence (#20522)
* feat(components): add Pubrio component — B2B data intelligence
Add component for Pubrio (https://pubrio.com), a glocalized business
data layer for AI agents and revenue teams.
50 actions covering:
- Company search, lookup, enrich, LinkedIn lookup
- People search, lookup, enrich, contact reveal, batch redeem
- Job, news, advertisement search & lookup
- Technology lookup, similar companies, lookalikes
- 14 filter/reference data endpoints
- 13 monitor operations (create, update, delete, duplicate, test, logs, etc.)
- Profile & usage endpoints
1 webhook source for receiving monitor events.
Auth: API key from dashboard.pubrio.com
* chore: add JSDoc, async options for dynamic dropdowns
- Add JSDoc comments to all app methods (getBaseUrl, getHeaders, makeRequest, splitComma)
- Add async options for locations, managementLevels, departments, departmentFunctions, companySizes
- Update search-companies and search-people to use async option propDefinitions
- Props with async options now use string[] type with API-populated dropdowns
* feat: add full parameter parity and missing lookup/query actions
* feat: add full parameter parity and missing lookup/query actions
* feat: add full parameter parity and missing lookup/query actions
* feat: add full parameter parity and missing lookup/query actions
* feat: add full parameter parity and missing lookup/query actions
* feat: add full parameter parity and missing lookup/query actions
* feat: add full parameter parity and missing lookup/query actions
* fix: address CodeRabbit review feedback
- Use crypto.randomUUID() for webhook event deduplication
- Wrap JSON.parse in try/catch with descriptive errors (create/update monitor, validate-webhook)
- Add isNaN guard to parseInt for domain_id lookups (4 files)
- Validate destination-specific required fields (create/update monitor)
- Validate at least one identifier in reveal-contact
- Fix grammar: 'test ran' -> 'ran monitor test'
- Fix grammar: 'a similar companies' -> 'similar companies'
* fix: address second round CodeRabbit review
- Use event-unique dedupe key (event_id/id/randomUUID) instead of monitor_id
- Reject conflicting isActive+isPaused both true in update-monitor
- Use shared propDefinitions in lookup-lookalike + add domain_id parseInt guard
- Validate JSON shapes: company_filters=object, signal_filters/people_enrichment_configs=array
* fix: extract shared parseJsonField helper, update lookalike description
- Add parseJsonField() to pubrio.app.mjs for reusable JSON parse+validate
- Use shared helper in create-monitor and update-monitor (removes duplication)
- Update lookup-lookalike description to include domain_id
* fix(pubrio): date from/to pairs, revenue/founded arrays, full lookalike filters
- Replace comma-separated date fields with explicit from/to pairs across
search-companies, search-jobs, search-news, search-ads
- Fix revenue to send as revenues: [min, max] array
- Fix founded year to send as founded_dates: [start, end] array
- Expand find-similar-companies with all filter params (locations, employees,
revenue, founded, technologies, verticals, categories, job/news dates, similarity)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: destination field gating, range validation, similarity score parsing
* fix: add annotations, move utils, string[] props, fix date ranges
- Add annotations (readOnlyHint, destructiveHint, openWorldHint) to all 50 actions
- Move splitComma/parseJsonField to common/utils.mjs
- Create API methods (listLocations etc.) in pubrio.app.mjs
- Convert comma-separated string props to string[] type
- Fix date range fallback logic (use null instead of duplicating single bound)
* refactor: move API calls to named methods in pubrio.app.mjs, fix bugs
Per reviewer feedback:
- Define all API endpoint functions as named methods in pubrio.app.mjs
(Pipedream standard pattern) instead of raw makeRequest() calls
- Actions now call semantic methods like this.pubrio.searchCompanies()
- Rename internal helpers to _baseUrl, _headers, _makeRequest (private)
- Update @pipedream/platform dependency to ^3.1.1
Bug fixes:
- Parse similarityScore as float with 0-1 range validation in search-companies
- Use shared parseJsonField utility in validate-webhook for consistency
- Fix "Peoples" label to "People" in batch-redeem-contacts
- Add missing description to peopleName prop in search-people
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: align with n8n API values, strict validation, list-monitors filters
- Detection mode: use company_first/signal_first (matching n8n/API)
- Destination type: use sequences instead of outreach_sequence
- Add list-monitors filter params: search_term, destination_type,
detection_mode, is_active, is_paused, order_by options
- Use strict /^\d+$/ regex for domain_id validation before parseInt
in 5 actions (reviewer feedback)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve all ESLint errors and warnings
- Add missing annotations (destructiveHint, readOnlyHint) to all 50 actions
- Fix all array-bracket-newline and object-curly-newline formatting
- Break long lines (>100 chars) into multi-line statements
- Add missing prop descriptions (employeesMin, employeesMax)
- Rename source to "New Monitor Event" with "Emit new" description
(Pipedream source naming convention)
ESLint now reports 0 errors, 0 warnings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: align pubrio component with Pipedream conventions and review feedback
- Fix package.json author to use Pipedream standard
- Reorder annotations before type with alphabetical keys in all 50 actions
- Add missing range descriptions in update-monitor (1-10, 0-3, 1-5)
- Add employees array length validation in search-people
- Remove unnecessary data: {} from get-profile, get-usage, get-monitor-stats
- Improve summary messages with contextual IDs/values across all actions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: update pnpm-lock.yaml to include pubrio component dependency
The lockfile was missing the components/pubrio workspace entry,
causing CI to fail with frozen-lockfile check.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address jcortes review feedback — doc links, splitComma, profileId, readOnlyHint
- Update all 50 action descriptions with proper API documentation links
- Remove unused splitComma function from utils.mjs and pubrio.app.mjs
- Add optional profileId prop to get-profile per API docs
- Change validate-webhook readOnlyHint to true (read-only check)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: bump pubrio component version to 1.0.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fixed package.json version and generated pnpm-lock.yaml file
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Jorge Cortes <jacortesmahmud@gmail.com>
* Update Returnista component with new actions and sources, version bum… (#20602)
* Update Returnista component with new actions and sources, version bump to 0.1.0
- Bumped version from 0.0.1 to 0.1.0 in package.json.
- Added new actions for creating, retrieving, and updating return locations, as well as fetching consumer purchases, draft return orders, return orders, return order emails, return reasons, and return requests.
- Introduced new sources for new return order and shipment label events.
- Enhanced prop definitions in returnista.app.mjs for better integration and usability.
- Added constants for country codes to support return location management.
* pnpm update
* Refactor Returnista component for clarity and consistency
- Updated descriptions in returnista.app.mjs for better clarity.
- Renamed method getReturnOrdersEmails to getReturnOrderEmails for consistency.
- Enhanced metadata generation in various sources by including timestamps in IDs.
- Added a check in base.mjs to prevent deactivation if no hook ID is present.
* Add Get Return Order Emails action to Returnista component
- Introduced a new action to retrieve emails related to return orders.
- Enhanced prop definitions for account ID and return order ID.
- Included documentation link for reference.
- Added summary export for successful email retrieval.
* Fix description typo in Get Return Order Emails action for clarity
* fix doc link
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* Breezy HR - Get Candidate (#20476)
* initial breezy code
* fix async options
* remove unnecessary auth check
* Update components/breezy_hr/actions/get-candidate/get-candidate.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: e11man <115963151+e11man@users.noreply.github.com>
* feat: add urlSource to Trello create card (#20502)
fix: version
fix
* feat: add claap components (#20503)
* Dr/datadog mcp actions (#20501)
* Datadog: fix log prop descriptions to include date math format
The from/to props incorrectly documented only ISO-8601 and epoch ms.
The Datadog API also accepts date math (now-15m, now-24h) which is
the most common format users will want.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Datadog: MCP-optimize actions with rich LLM descriptions
- Drop list-logs (redundant with search-logs POST endpoint)
- Rename get-account-region → get-account-info as identity entry point
- Rewrite all 10 action descriptions with behavioral guidance,
query syntax examples, and cross-tool references (bold names)
- Remove listLogs method from app file
- Bump package to 0.4.0, all actions to 0.0.2/0.1.5
Follows the AI-Optimized Tools Playbook: fewer tools (10 vs 12),
descriptions as LLM instructions, cross-tool discovery flows.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Update new-monitor-event.mjs
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add claap components
fix
fix
fix
fix
fix
fix
fix
* fix: fix CI issues
* fix: fix create recording
fix: fix eslint
---------
Co-authored-by: Danny Roosevelt <danny@pipedream.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* update exa search action description (#20341)
* update exa search action description
Co-Authored-By: ishan <ishan@exa.ai>
* updates
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ishan <ishan@exa.ai>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Bump axios from 1.13.5 to 1.15.0 in /components/yotpo (#20615)
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.15.0)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.15.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* (google_drive) return fileId in download-file and stashFile (#20617)
* (google_drive) return fileId in download-file and stashFile
download-file already receives the Google Drive file ID as an input prop
but never included it in the return value. Callers who need to re-fetch
the file after File Stash's 24h TTL expires had no durable reference to
store. Added fileId to both return paths (buffer and filePath).
stashFile (used by event sources) had the same gap — it has access to
item.id but did not pass it through. Updated to include fileId in the
return value alongside the existing File Stash fields.
Both changes are additive and non-breaking.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* (google_drive) bump versions for all components after utils.mjs change
stashFile in common/utils.mjs is a shared dependency used by all
Google Drive actions and sources. The CI version check requires every
dependent component to bump its version when a shared file changes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Monday — add queryParams to Get Board Items Page action (#20601)
* add queryParams to get-board-items-page
* versions
* updates
* some new get-current-user actions (#19553)
* some new get-current-user actions
none have been tested yet
* Improve get-current-user action descriptions and trim response shapes
Update descriptions across 10 get-current-user actions and box list-folder-items
to be AI-agent-friendly: explain when to call, what fields to use downstream,
and how they connect to other actions. Trim Microsoft Graph and ServiceNow
responses to return only relevant fields. Use Confluence app's _makeRequest
instead of raw axios.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix {{ts}} version placeholder in box list-folder-items
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Bump package versions for new get-current-user actions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix Microsoft Graph actions to use client() SDK and trim noisy return fields
- Outlook, Outlook Calendar, SharePoint: replace _makeRequest() (doesn't
exist on these apps) with client().api("/me").select(...).get()
- Gmail: drop redundant `email` field (keep `emailAddress`), drop `historyId`
- Jira: drop `avatarUrls` and `accountType`
- Salesforce: drop `nickname` (auto-generated) and `picture` (placeholder)
- Zoom: drop `type` (opaque number) and `language`
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix confluence get-current-user to use /me endpoint
The /wiki/rest/api/user/current endpoint requires read:confluence-user
scope. Switch to the Atlassian platform /me endpoint which only needs
read:me (already granted). Returns the same accountId needed for
downstream filtering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Bump confluence package version to 0.4.2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* LoopMessage New gen API update; (#20459)
* New gen API update;
* New gen API update; refactoring;
* New gen API update; refactoring;
* New gen API update; refactoring;
* Updated README;
* New gen API update; refactoring;
* New gen API update; refactoring;
* fix filenames
* fix component key
* New gen API update; refactoring;
* New gen API update; refactoring;
---------
Co-authored-by: Andrew <itehdrew@gmail.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* AI-optimized Slack actions (#20620)
* AI-optimized Slack actions
* apply coderabbit suggestions
* versions
* coderabbit suggestions
* update
---------
Co-authored-by: Dylan Sather <Dylan Sather>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* pdfcrowd: enable data conversion functions (#20285)
* pdfcrowd: enable data conversion functions
* update prop descriptions
* versions
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* [Components] Permit.io (#20600)
* [Components] Permit.io
* prop descriptions
* pnpm-lock.yaml
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* Freshchat - Enhance Update Conversation action (#20479)
* Freshchat - Enhance Update Conversation action
Expanded the update-conversation-status action to support all fields from the Freshchat API's Update Conversation endpoint.
Changes:
- Renamed action from "Update Conversation Status" to "Update Conversation" (broader scope)
- Made status field optional (was required)
- Added support for group assignment (assigned_group_id)
- Added support for priority field (Low, Medium, High, Urgent)
- Added support for custom conversation properties (cf_* fields)
- Added ability to unassign agent/group by passing empty string
- Improved summary message to show all updated fields
- Bumped action version from 0.0.3 to 0.0.4
- Bumped package version from 0.3.1 to 0.3.2
New Features:
- Users can now update priority without changing status
- Users can set custom properties on conversations
- Users can assign conversations to groups
- Users can unassign agents or groups
- More flexible - all fields are now optional
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Bump all freshchat component versions due to package.json change
* Fix linting errors: format ternary expressions with newlines
* updates
* eslint
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Amazon Selling Partner - bug fix to pagination (#20632)
* remove other params if NextToken is present
* versions
* Datadog: use region from auth; remove per-component region prop (#20635)
* Datadog: use region from auth; remove per-component region prop
The Datadog auth config now carries a Host Site (region) field, so
threading region through as a separate user-facing prop is redundant.
- datadog.app.mjs: _region() reads this.$auth.region with a
"datadoghq.com" fallback for legacy accounts predating the field
- Remove region prop + region: this.region calls from 10 actions
and actions/common/log-props.mjs
- sources/new-monitor-event: remove region prop, drop threaded
this.region from webhook/event calls
- search-dashboards: drop stale "region comes from Get Account Info"
description hint; add computed dashboard_url to each result so the
LLM no longer has to build the URL itself
- Bump package 0.4.0 -> 0.5.0, modified components to next patch
Note: get-account-info is intentionally untouched; to be reviewed
after an eval run.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Datadog: bump get-account-info version for app dep change
Required by the "Ensure component commits modify component versions"
CI check: components that import a modified dep must also bump. No
functional change to this action; to be revisited after eval run.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Datadog: bump components to v1.0.0 (major)
Region is now sourced from auth instead of a per-component prop, which
is a breaking change for existing configured components.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Revert "Datadog: use region from auth; remove per-component region prop" (#20635) (#20636)
* Revert "Datadog: use region from auth; remove per-component region prop (#20635)"
This reverts commit ccce3b1a3b8e353a1afeed918bd39afcc9bd5750.
* Datadog: bump components to v1.0.1 after revert
npm already has @pipedream/datadog@1.0.0 published; the registry also
has each component at 1.0.0. The revert restored pre-PR versions, so
stacking a patch bump here per the repo's revert convention (see the
ServiceNow auth revert in #19853).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(strale): add Strale — 290+ quality-tested data capabilities (#20584)
* feat(strale): add Strale — 290+ quality-tested data capabilities
Adds Strale integration with 3 actions:
- Search Capabilities: find matching capabilities via natural language
- Execute Capability: run a specific capability by slug
- Search and Execute: find + run in one step
Strale provides 290+ quality-tested data capabilities for AI agents:
company verification across 20 countries, sanctions screening, VAT
validation, invoice extraction, and more. Every response includes a
quality score (SQS) and audit trail.
5 free capabilities work without an API key.
https://strale.dev
* updates
* updates
* fix summary
* fix(strale): address CodeRabbit feedback on PR #20584
- _makeRequest: merge per-request headers instead of allowing caller
headers to overwrite the auth header (reliability/security fix)
- maxPriceCents propDefinition: mark as optional so execute actions
don't require a price ceiling
- All documentation links: point to https://strale.dev/docs, not homepage
- search-and-execute description: distinguish vs Execute Capability and
Search Capabilities so agents pick the right action
No behavioral change to successful executions; only fixes the three
reliability/correctness issues CodeRabbit flagged.
* fix(strale): surface Strale API errors instead of generic ISE; coerce inputs; bump versions
Addresses michelle0927's review — the 'internal server error' on non-dry-run
execution was the Strale API's HTTP 500 'execution_failed' body being
thrown by axios and displayed in Pipedream as a generic ISE. The app now
catches non-2xx responses and rethrows with the API's actual message +
error_code, so the workflow UI shows (for example) 'Strale API error
[HTTP 500] (execution_failed): Missing required input: email' instead of
just 'Internal server error'.
Also adds defensive JSON-parse on the 'Inputs' prop in both
execute-capability and search-and-execute — if Pipedream passes the value
as a string (can happen when the user pastes raw JSON in the UI), we parse
it to an object before sending to /v1/do.
Bump action versions 0.0.1 -> 0.0.2.
Files:
components/strale/strale.app.mjs
components/strale/actions/execute-capability/execute-capability.mjs
components/strale/actions/search-and-execute/search-and-execute.mjs
* fix(strale): revert action versions to 0.0.1 per michelle0927 review
New components stay at 0.0.1 through initial merge per Pipedream
convention; bumps come later.
* pnpm-lock.yaml
* fix lint errors
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* add find meeting times to outlook calendar component (#20297)
* add find meeting times to outlook calendar component
* normalize attendees
* trim userId before check
* add start and end checking
* update endpoint to match prismatic integration
* Add suggestionReason and locations to meeting time response
* allow requests with either attendees or resourceAttendees
* fix incorrect destructuring of response
* remove unnecessary token check
* extract axios method
* extract util methods
* increase get-schedule version
* use graph api client and remove readme
* version updates
* chore(microsoft_outlook_calendar): bump get-current-user version for CI
---------
Co-authored-by: e11man <115963151+e11man@users.noreply.github.com>
Co-authored-by: Josh Ellman <josh.ellman@robosource.us>
* google_drive: default mimeType and filePath in download-file (#20656)
* google_drive: default mimeType and filePath in download-file
- fall back mimeType per Workspace source type: Docs→docx, Sheets→xlsx,
Slides→pptx, Drawings→png, Apps Script→json; runtime
getExportFormats() as last resort
- fall back filePath to /tmp/<file name>, appending extension for
Workspace docs when the name doesn't already end in it
- resolve shortcuts via shortcutDetails.targetId and download the target
- throw typed errors for folders, forms, and maps naming the source
MIME and explaining why
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* google_drive: enrich download-file props and surface webViewLink
- expand top-level description with when-to-use, defaults, and
unsupported-type guidance
- add descriptions to drive, fileId, and getBufferResponse props
- mark syncDir optional to match convention used by peer components
- include webViewLink in getFile field sets and return it at the top
level of both file and buffer responses
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* google_drive: fix lint and bump package version for download-file PR
- shorten over-length comment in download-file.mjs to satisfy max-len
- bump package version 1.6.2 -> 1.6.3 to satisfy component version check
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fellow - new actions (#20664)
* new components
* fix key
* updates
* Update components/fellow/actions/archive-action-item/archive-action-item.mjs
Co-authored-by: Guilherme Falcão <48412907+GTFalcao@users.noreply.github.com>
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
Co-authored-by: Guilherme Falcão <48412907+GTFalcao@users.noreply.github.com>
* shopify: include fulfillment tracking in search_orders (#20676)
* shopify: include fulfillment tracking in search_orders
Expand LIST_ORDERS fulfillments selection to include createdAt, updatedAt,
and trackingInfo (number, url, company) so search_orders returns shipment
tracking without a separate fetch.
* shopify: bump all component versions
CI requires all component versions to bump together with the package
version bump.
---------
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Feature/rk 6251 improvements to arcgis actions (#20631)
* Basic Get Lead, Company, Contact working
* Get Company, Contact, Lead and formatting working
* Update Lead and Custom Fields working
* Update Company Working
* Update Contact Working
* Search Functionality working
* Applied component guidelines
* Comment added as to why we are not formatting the output the same as the other methods.
* Code Review Change to maintain backwards compatibility
* Code Review Requests Applied
* Additional Code Review Requests resolved.
* Another set of Code Review Requests
* Additional Code Review Changes
* Apply suggestion from @luancazarine
Co-authored-by: Luan Cazarine <luanhc@gmail.com>
* Code Review Changes
* Code Review suggestions: Removed all references to accounts and annotations in sources
* Resolved GetLead Lookup issues and repaired output to have valid account information
* Fixes to ensure all methods pass testing
* added three new arcgis search actions and udpated existing actions to use proper references rather than map names
* code review items
* arcgis code review items
* arcgis wording update
* arcgis handling pagination edge case
* arcgis edge case handling
* Update components/arcgis_online/actions/query-intersecting-features-by-geometry/query-intersecting-features-by-geometry.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update components/arcgis_online/actions/update-row-by-object-id/update-row-by-object-id.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update components/arcgis_online/actions/search-by-column/search-by-column.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update components/arcgis_online/actions/query-intersecting-features-by-search-query/query-intersecting-features-by-search-query.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update components/arcgis_online/actions/query-intersecting-features-by-object-id/query-intersecting-features-by-object-id.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* added imports for ConfigurationError
* Fixed ConfigurationError Import
---------
Co-authored-by: Jason Beutler <jason.beutler@robosource.us>
Co-authored-by: Luan Cazarine <luanhc@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Fix/hubspot add note to contact (#20662)
* feat(hubspot): add Add Note to Contact action for simple contact notes
- New action with static props (contactId, noteBody) resolves note→contact
association types at runtime; no reloadProps/additionalProps for AI tools.
- Point Create Note / Create Engagement descriptions at the new action.
- Bump @pipedream/hubspot to 1.11.0.
* docs(hubspot): improve MCP/AI tool descriptions for note actions
- Add Note to Contact: clarify preferred agent workflow and prop hints.
- Create Engagement: document reloadProps, enum values, CONFIGURE_COMPONENT.
- Create Note: steer agents to Add Note to Contact; MCP hints on associations.
- Bump package to 1.11.1.
* docs(hubspot): trim PR description template for GitHub body
* fix(hubspot): address PR review for add-note-to-contact
- Use Notes API doc links; initial action version 0.0.1
- contactId via hubspot objectId async options
- Set hs_timestamp (ISO-8601) on note create
- Align create-engagement (0.0.33), create-note (0.0.14), package (1.11.0)
* chore(hubspot): remove accidental PULL_REQUEST_20662.md from package
* Update components/hubspot/actions/create-note/create-note.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update components/hubspot/actions/create-engagement/create-engagement.mjs
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Update components/hubspot/package.json
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
---------
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Microsoft Outlook - get message by id (#20661)
* add get message by id
* fix version
* update description wording
* feat(fitbit): add activity summary MCP action (part 1) (#20666)
* feat(fitbit): add activity summary action
Refs PipedreamHQ/pipedream#20573
* fitbit: bump package version to 0.7.0
* fitbit: fix lint issues in activity summary files
* remove authKeys method
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* microsoft_power_bi: rewrite action set for AI-optimized MCP tools (#20679)
* microsoft_power_bi: rewrite action set for AI-optimized MCP tools
Replaces the propDefinition-heavy registry actions with a static-schema
set aligned to the MCP AI-optimized tools playbook. Every prop is
visible upfront (no async options / remoteOptions / reloadProps), so
the MCP server can serve clean JSONSchema to LLMs.
Added:
- list-workspaces — identity anchor (Power BI has no /me endpoint)
- list-reports — reports in a workspace
- list-datasets — datasets in a workspace
- list-dashboards — dashboards in a workspace
- get-refresh-history
- execute-dax-query — POST /executeQueries; description carries DAX syntax
- export-report — async export with built-in polling (PDF/PPTX/PNG/...)
- add-rows-to-push-dataset — replaces add-rows-dataset-table
Rewrote:
- refresh-dataset — static schema, returns a structured
{ status, requestId, datasetId, groupId, location, headers } shape
Removed:
- add-rows-dataset-table (replaced by add-rows-to-push-dataset)
- cancel-refresh (cancel is not a core user intent; Push datasets
— the only API-creatable type — never produce
cancellable history entries, so the tool was
unreachable via the seed-creatable surface)
- create-dataset (Push-dataset-only; niche vs. Power BI Desktop)
- get-dataset-refresh (superseded by get-refresh-history)
App file:
- Added _groupPrefix() helper for optional /groups/{id} segment.
- Added resolveGroupId({ workspaceId, workspaceName }) — resolves a
workspace name server-side so callers don't need two round trips.
- Added listGroups, listReports, listDatasets, listDashboards,
executeQueries, startReportExport, getReportExportStatus,
getReportExportFile.
- Extended existing methods (addRowsToTable, refreshDataset,
getRefreshHistory, getTables) to accept optional groupId.
- Removed cancelRefresh method + refreshId propDefinition
(only used by the dropped cancel-refresh action).
All actions accept workspaceName as an alternative to workspaceId,
or neither for My workspace — eliminates an extra LLM turn on every
workspace-scoped call.
Validated end-to-end via the MCP eval harness — full evaluation notes
and seed setup in pd-connect-eval-monster (evals/microsoft_power_bi).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* microsoft_power_bi: address CodeRabbit feedback + bump dependent versions
- Bump get-reports, sources/dataset-refresh-{completed,failed},
sources/new-dataset-refresh-created to satisfy the dependent-version
CI check (they transitively depend on the modified app file).
- Unbold "My workspace" across all action descriptions (literal term,
not a tool name).
- refresh-dataset: harden requestId extraction from the Location
header — filter empty segments so a trailing slash doesn't suppress
the x-ms-request-id fallback.
- export-report: distinguish terminal failure vs. poll-timeout in the
$summary message.
- get-refresh-history: simplify params construction (platform axios
strips undefined values).
- app: refactor getReportExportFile to delegate to _makeRequest
instead of an inline axios call with its own try/catch.
Not addressed: the "move shared props to propDefinitions" suggestion
on execute-dax-query. These tools are deliberately fully-inlined to
stay visible to the MCP server's JSONSchema — propDefinition routes
through remoteOptions/async options, which the MCP surface cannot
serve. Reply pending on the PR comment.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* microsoft_power_bi: move shared workspace props to app propDefinitions
Addresses CodeRabbit feedback on execute-dax-query:64 — fully static
propDefinitions are MCP-compatible (unlike `async options`), so the
shared workspaceId + workspaceName props belong in the app file. Each
action now uses `propDefinition: [app, "workspaceId"]` / `[app,
"workspaceName"]` instead of duplicating the shape inline.
- Added static workspaceId + workspaceName propDefinitions to the app
file (no async options — MCP can serve the JSONSchema unchanged).
- Updated 8 actions (add-rows-to-push-dataset, execute-dax-query,
export-report, get-refresh-history, list-dashboards, list-datasets,
list-reports, refresh-dataset) to reference the app-level defs.
Not moved: `datasetId`. The existing app-level `datasetId`
propDefinition uses `async options()`, which MCP cannot serve. It's
also referenced by `sources/common.mjs` and `get-reports` (non-MCP
paths that benefit from the dropdown). Leaving it inlined in MCP
actions keeps both paths working without adding a second, differently-
named propDefinition.
Version bumps (app file changed → all dependents bump):
- New MCP actions: 0.0.1 → 0.0.2 (8 files)
- refresh-dataset: 0.1.0 → 0.1.1
- Unmodified dependents: get-reports 0.0.4→0.0.5,
sources/dataset-refresh-completed 0.0.6→0.0.7,
sources/dataset-refresh-failed 0.0.6→0.0.7,
sources/new-dataset-refresh-created 0.0.3→0.0.4.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* add example to impersonatedUserName prop description
* fix versions
* fix source descriptions
* improve prop descriptions for agent use
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* feat(fitbit): added MCP tools for Heart Rate, Sleep, Nutrition, and Activity (#20669)
* make folders for fitbit actions
* feat(fitbit): add activity summary action
Refs PipedreamHQ/pipedream#20573
* added steps functionality
* added weight/BMI functionality
* added tony's code
* add MCP actions for steps and weight
changed components to comply with guidelines
* trying to fix conflicts
* revert accidental changes
* remove extra quotes
* Fix formatting of Authorization header
* Added heart r heart rate tool to components
* Added heart rate tool
* fitbit: remove empty actions and accidental binaries
* Readded add heart rate files
* feat(fitbit): add sleep and nutrition water tools
# Conflicts:
# components/fitbit/fitbit.app.mjs
* fix body weight and steps to comply with guidelines
* Fixed issues in hearrtt rate tool
* fix(fitbit): address versioning and lint issues
* refactor(fitbit): reuse prop definitions and tighten heart rate inputs
* updates
* revert .gitignore
---------
Co-authored-by: TonyHeeee <donglinh@andrew.cmu.edu>
Co-authored-by: Jessica Zheng <jzheng5@andrew.cmu.edu>
Co-authored-by: belugaaaaaaaa <126969412+belugaaaaaaaa@users.noreply.github.com>
Co-authored-by: Zhanhan Liu <belugazhan@gmail.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Microsoft Entra ID — add Create, Update, and Delete Group actions (#20596)
* new group actions
* versions
* Update components/microsoft_entra_id/actions/update-user/update-user.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* update
* version
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Upsales - Add core endpoints for revenue & performance data (#20625)
* Initial app file and Create User action
* Adding remaining user actions
* Adding stage actions
* Adding company/account actions
* Adding "contact" actions
* Adding more actions
* Adding order actions
* update prop descriptions
* add pagination
* new actions
* pnpm-lock.yaml
* pnpm-lock.yaml
* updates
* updates
* update prop descriptions
* update
* pnpm-lock.yaml
---------
Co-authored-by: GTFalcao <gtfalcao96@gmail.com>
* Upsales fix (#20693)
* update appointmentId prop
* version
* fix(google-sheets): return explicit null/[] instead of undefined for empty results (#20694)
* fix(google-sheets): return explicit null/[] instead of undefined for empty results
get-cell returned implicit undefined for empty cells; get-values-in-range
returned undefined when Google API omits the values key for empty ranges;
list-worksheets could destructure undefined if the sheets key was absent.
All three caused ret to be stripped from the action response JSON, which
the Python SDK collapses to None — misleading MCP clients into thinking
the action failed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(google-sheets): bump package.json version to 0.14.2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(google-sheets): add $summary exports and guard nested cell access
- get-cell: use values?.[0]?.[0] ?? null to guard against [[]] shape;
add $summary for both empty-cell and value-found paths
- get-values-in-range: add $summary with row count
- list-worksheets: add $summary with worksheet count
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Adding app scaffolding for filepost
* Adding app scaffolding for polly_help
* feat(filepost): add FilePost integration (#20565)
* feat(filepost): add FilePost integration
Adds app file and 4 actions for FilePost (https://filepost.dev):
- Upload File: from /tmp path or public URL → returns CDN URL
- List Files: paginated file listing
- Get File: retrieve file metadata by ID
- Delete File: delete a file by ID
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(filepost): clarify file_id field in prop description
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(filepost): address CodeRabbit review comments
- list-files: clamp page (>=1) and perPage (1-100) before API call
- upload-file: add 30s AbortController timeout and 50 MB streaming size
guard when downloading from a remote URL
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* updates
* updates
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
* Bump fast-xml-parser from 5.5.7 to 5.7.0 (#20683)
* Bump fast-xml-parser from 5.5.7 to 5.7.0
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.5.7 to 5.7.0.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.5.7...v5.7.0)
---
updated-dependencies:
- dependency-name: fast-xml-parser
dependency-version: 5.7.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
* update
* versions
* Update components/jenkins/jenkins.app.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* update
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* shopify_developer_app: include fulfillment tracking in search_orders (#20686)
* shopify_developer_app: include fulfillment tracking in search_orders
Mirror of the change merged in #20676 for the shopify app. Expand
LIST_ORDERS fulfillments selection to include createdAt, updatedAt,
and trackingInfo (number, url, company) so search_orders returns
shipment tracking without a separate fetch.
* shopify_developer_app: bump all component versions
CI requires all component versions to bump together with the package
version bump.
* Adding app scaffolding for huntress
* Adding app scaffolding for corporate_merch
* Microsoft Dynamics Sales - new actions (#20526)
* add additional actions for microsoft dynamics
* bump versions
* coderabbit changes
* changes
* move reusable methods to common/utils
---------
Co-authored-by: e11man <115963151+e11man@users.noreply.github.com>
* fix(statuspage): allow updating incident components (#20705)
* fix(statuspage): allow updating incident components
* minor updates
* update annotation
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Microsoft Outlook - details updates (#20677)
* add select param to find email
* add get event action
* update package versions
* Adding app scaffolding for ip2geo
* [20473] Power BI — add Get Report action (#20711)
* [20473] Power BI — add Get Report action
Problem
The existing Get Reports action lists all reports, but there is no way to get details for a single report by ID. There is also no reportId prop with options, so an agent cannot discover or select a specific report. An agent that needs to reference a particular report has no way to look it up or confirm it exists.
What's needed
Add a Get Report action that accepts a reportId input and calls GET /v1.0/myorg/reports/{reportId}. Also add a reportId prop definition with options that call the existing list reports endpoint to populate available reports.
Notes
The existing get-reports action calls GET /v1.0/myorg/reports (list all) — the new action is for a single report
datasetId and tableName props already have options defined, so the pattern for adding reportId options is established
Consider whether group-scoped reports (/v1.0/myorg/groups/{groupId}/reports) should also be supported
link: https://learn.microsoft.com/en-us/rest/api/power-bi/reports/get-report
Github link: https://github.com/PipedreamHQ/pipedream/issues/20473
* updating the version for microsoft powerbi
updating the version for microsoft powerbi
* coderabbit review changes done
coderabbit review changes done
* set version & prop update
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* Add ip2geo component (#20655)
* Add ip2geo component
Add ip2geo.dev IP geolocation component with:
- App module with X-Api-Key header auth
- Lookup IP action: converts IP to geolocation data
(city, country, timezone, ASN, currency, coordinates)
API docs: https://ip2geo.dev/docs
* update doc link
---------
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* feat(statuspage): add fetch active incidents action for issue #20688 (#20692)
* feat(statuspage): add fetch active incidents action for issue #20688
* fix(statuspage): made the description more agent-friendly as per coderabbit review
* fix(statuspage): reordered top-level actions to the conventional order as per coderabbit review
* fix(statuspage): updated fetched count in description because pagination has not been implemented yet as per coderabbit review
* add page & perPage props
* versions
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* feat(statuspage): add create maintenance action with scheduling and component support (#20713)
* feat(statuspage): add create maintenance action with scheduling and component support
* chore(statuspage): fix lint + bump version for create maintenance action
---------
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* fix(hubspot): Create Engagement without CONFIGURE_COMPONENT (#20709)
* fix(hubspot): make Create Engagement usable without CONFIGURE_COMPONENT
- Remove reloadProps from engagementType; override additionalProps to skip
schema-driven fields so agents pass objectProperties in one step
- Use plain string props for association IDs instead of remote options
- Validate engagementType and association pairs; bump to 0.0.36
* chore(hubspot): bump package version to 1.12.1 for CI
Required when modifying HubSpot components per Pipedream versioning guidelines.
* fix(hubspot): address Create Engagement PR review feedback
- Simplify association XOR validation to match create-meeting pattern
- Derive associationTypeId from truthy associationType; reject NaN and <= 0
- Use toObjectId directly in association payload (no redundant String())
- Include created engagement id in $summary export
* Update components/hubspot/actions/create-engagement/create-engagement.mjs
---------
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* feat(daytona): add missing actions, image/resources support, docs, and bug fixes (#20715)
* Daytona — add missing actions, resources/image support, and bug fixes
- Add clone-git-repository action (public and private repos, branch/commit support)
- Add run-command action (execute shell commands in sandbox)
- Add run-code action (execute Python/TS/JS code in sandbox)
- Add delete-sandbox action
- Add get-preview-link action (expose sandbox services via URL)
- Add image, cpu, memory, disk props to create-sandbox action
- Implement snapshot/image/default precedence logic in create-sandbox
- Fix target auth field bug (this.$auth.us -> this.$auth.target)
- Fix create-sandbox passing snapshotId key instead of snapshot to SDK
- Fix networkAllowList type string[] -> string
- Fix wait-until-stopped readOnlyHint false -> true
- Add app methods: deleteSandbox, runCommand, runCode, getPreviewLink, cloneGitRepository
- Add README with overview, use cases, auth setup, and actions reference
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
* fix: lint errors
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
* feat: README troubleshooting section, JSDOC types
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
* update package.json version
* coderabbit suggestions
* versions
---------
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Adding app scaffolding for nationalize
* feat(sendcloud): add get-tracking-info action (#20639)
* feat(sendcloud): add get-tracking-info action
Added a new action to retrieve tracking information for a parcel
using the SendCloud tracking API endpoint.
- New `getTrackingInfo` method in sendcloud.app.mjs
- New `parcelUuid` prop definition
- New `get-tracking-info` action component
API: GET /tracking/{parcel_uuid}
Closes #20629
* feat(sendcloud): rename parcelUuid -> trackingNumber in tracking action
The Sendcloud v2 /tracking/{id} endpoint is keyed by a shipment's
tracking number, not a parcel UUID, so rename the prop and method
parameter to match. Updates the shared prop definition in
sendcloud.app.mjs, the getTrackingInfo request helper, and the new
Get Tracking Info action.
Addresses coderabbit feedback on #20639.
* package version
* versions
* update annotation
---------
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
* Adding app scaffolding for agify
* Adding app scaffolding for obolus
* CodeRabbit improvements + PR Template file (#20657)
* Adding versioning guidelines and fixing annotation guidelines
* Revamping Github PR template
* Removing 'PR Type' and adding 'CodeRabbit' sections
* Removing annotations from global example
* Typo fix
* Adding app scaffolding for virtualsms
* Adding app scaffolding for unirateapi
* Outlook calendar "List Events" updates (#20721)
* outlook calendar list-events updates
* Pagination handling adjustments
* Adding maxResults check + version bumps
* versions
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* fix(nutshell): return API email/phone fields from get-contact and related formatters (#20707)
* fix(nutshell): include email and phone in formatted contact/company output
Nutshell getContact/getAccount return email and phone per RPC docs; the
output allowlists only had emails/phones variants, so Get Contact and MCP
dropped email. RK-6060.
- Add email/phone to CONTACT_OUTPUT_FIELDS and COMPANY_OUTPUT_FIELDS
- Bump affected actions to 0.0.2, package to 0.2.1
- Add output-formatters.test.mjs (node --test)
* chore(nutshell): ASCII-only copy in changelog and get-lead error
- Replace curly apostrophes in CHANGELOG (avoids GitHub bidirectional-Unicode notice)
- Replace em dash in get-lead ConfigurationError with semicolon; bump get-lead 0.0.3
* fix(nutshell): align output formatters with full RPC (lead/contact/company)
- Expand allowlists to match Nutshell _render: value, primaryContact, accounts,
sources, activitiesCount, etc. on leads; rev/htmlUrl/tags/notes/territory on
contacts/accounts; email/phone on formatPrimaryAccount
- Document customFields pass-through; bump package 0.2.2 and affected actions
- Add formatLead/formatPrimaryAccount tests
* chore(nutshell): bump all action versions for common/change CI
Pipedream 'Ensure component commits modify component versions' requires a
version bump on every action that imports shared code when common/* changes.
Bump search/create/get/update actions and package to 0.2.3.
* chore(nutshell): bump source component versions for CI (0.0.3)
lead-won, new-lead, new-person: 0.0.2 -> 0.0.3; package 0.2.4.
Required by Ensure component commits modify component versions when common/ changes.
* chore(nutshell): address PR review — versions, changelog, remove formatter tests
- Set package to 0.2.1 and get/update actions to 0.0.2 per review (minimal bump)
- Consolidate CHANGELOG to single 0.2.1 entry dated 2026-04-29
- Remove output-formatters.test.mjs as requested
* feat(virtualsms): new app — SMS verification with real physical SIMs (#20718)
* feat(virtualsms): add VirtualSMS SMS-verification app + 6 actions + new-sms-received trigger
VirtualSMS provides real-SIM SMS verification numbers across 145+ countries
for 700+ services. This commit adds the initial integration:
App: virtualsms.app.mjs (X-API-Key auth, helper methods)
Actions:
- rent-number Rent a number for a service/country
- check-messages Poll an order for received SMS
- cancel-rental Cancel a rental and refund unused balance
- list-services Discover all 700+ supported services
- list-countries Discover all supported countries with stock
- get-balance Get account balance in USD
Sources:
- new-sms-received Polling source (60s default), dedupes by order:code
* fix(virtualsms): address CodeRabbit review feedback
- Use [See the documentation](...) link text in all 7 components
(cancel-rental, check-messages, get-balance, list-countries,
list-services, rent-number, new-sms-received) per Pipedream
guideline link-text rule.
- Centralize seenCodes db access via private _getSeenCodes() /
_setSeenCodes() helpers in new-sms-received polling source;
apply consistently in deploy() and run() hooks.
- Hash emitted event id with SHA256 to stay within Pipedream's
64-char dedupe id limit regardless of orderId/code length.
No other regressions surfaced during a full audit pass against
the Pipedream component-guidelines checklist.
* fix(virtualsms): apply CodeRabbit round-2 review feedback (PII masking)
* fix(virtualsms): correct field names — messages[], refund_amount, polling source uses order detail
* pnpm-lock.yaml
* eslint errors
* coderabbit suggestions
---------
Co-authored-by: VirtualSMS Bot <agent@virtualsms.io>
Co-authored-by: virtualsms-io <virtualsms-io@users.noreply.github.com>
Co-authored-by: VirtualSMS Bot <noreply@virtualsms.io>
Co-authored-by: michelle0927 <michelle0927@users.noreply.github.com>
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* Add agify, nationalize and extend genderize (#20716)
* Add Agify and Nationalize components; extend Genderize with batch lookup and country scoping
- New: components/agify/ (single + batch age-from-name actions)
- New: components/nationalize/ (single + batch nationality-from-name actions)
- Update: components/genderize/ — add countryId prop and batch action; bump get-gender-from-name 0.0.2 -> 0.1.0 and package 0.1.0 -> 0.2.0
All three apps share auth (api_key query param), prop definitions (name, names, countryId), and batch validation (max 10 names per request).
* Update pnpm-lock.yaml for agify and nationalize
Register the two new components as importers with @pipedream/platform.
* Update READMEs
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* feat(dataforb2b): add 6 new actions - search people, search company, agentic search, text to filters, enrich profile, enrich company (#20722)
* feat(dataforb2b): add app file with all 6 API methods
Added various propDefinitions for filtering and enriching data in the dataforb2b app.
* feat(dataforb2b): add search-people action
This file defines the 'Search People' action for the dataforb2b application, including props and the run method for executing the search.
* feat(dataforb2b): add search-company action
This action allows users to search for companies using various filters, including size, funding stage, and industry. It includes properties for filters, count, offset, and enrichLive, and handles the search request asynchronously.
* feat(dataforb2b): add agent-search action
* feat(dataforb2b): add text-to-filters action
This action converts natural language descriptions into structured filter objects for Search People or Search Company.
* feat(dataforb2b): add enrich-profile action
This action enriches a person's profile with verified contact information and GitHub data.
* feat(dataforb2b): add enrich-company action
This action retrieves detailed company data using a company identifier, including funding, growth signals, and headcount.
* updates
* typos
* pipedream dependency
* pnpm-lock.yaml
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@gmail.com>
* Adding app scaffolding for trolley
* update execute-dax-query description (#20741)
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
* Update and unpin Axios (#20742)
* Gitlab - List Project Members (#20738)
* list-project-members action
* add props userIds and skipUsers
* Update components/gitlab/actions/list-project-members/list-project-members.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Asana - List Users and List Teams actions (#20740)
* list-teams and list-users actions
* versions
* updates
* update optFields props
* fix offset bug
* update component descriptions
* update component description
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
* Github - List Branches (#20739)
* list-branches action
* updates
* update component description
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
* Evernote - Get Note action (#20529)
* new get-note action (wip)
* versions
* remove ConfigurationError
* Evernote - List Notebooks and List Notes actions (#20763)
* list-notebooks and list-notes actions
* versions
---------
Co-authored-by: Michelle Bergeron <michelle.bergeron@ahp7jvtgvfr.celonis.cloud>
* HubSpot - Get Engagements action (#20756)
* get-engagements action
* updates
* default to all properties
* update descriptions
* pass $ object
* Update components/hubspot/actions/get-engagements/get-engagements.mjs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Asana - List Workspaces action (#20757)
* list-workspaces action
* Update components/asana/actions/list-workspaces/list-workspaces.mjs
Co-authored-by: Guilherme Falcão <48412907+GTFalcao@users.noreply.github.com>
* update component description
* update component description
---------
Co-authored-by: Guilherme Falcão <48412907+GTFalcao@users.noreply.github.com>
* UniRate - new components (#20689)
* New Components - unirate
Adds the UniRate app and three initial components:
- Convert Currency action
- Get Exchange Rates action
- New Rate Update source (polling)…
Resolves #20586
Summary by CodeRabbit
New Features
Chores