Uh oh!
There was an error while loading. Please reload this page.
feat(rippling): add Rippling HR integration with 19 tools - #3764
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Registers 19 new Rippling tools in the tool registry (employees/org data, leave, groups, candidates, company activity), each issuing Bearer-token requests to Rippling’s API and transforming responses into typed outputs. Updates UI/icon infrastructure to include Written by Cursor Bugbot for commit 6ed19dd. Configure here. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Greptile SummaryThis PR adds a Rippling HR integration with 19 API tools covering employee management, leave workflows, organizational data (departments, teams, levels, work locations), group management, candidate onboarding, and company activity. The integration follows the established block-per-integration pattern with a single Key implementation details:
Confidence Score: 5/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant W as Workflow
participant B as RipplingBlock
participant R as Rippling API
W->>B: params (operation, apiKey, ...)
B->>B: tool = rippling_${operation}
B->>B: map params → tool payload
alt List operations (employees, depts, teams, …)
B->>R: GET /platform/api/{resource}?limit=&offset=
R-->>B: Array or { results: [] }
B-->>W: { items[], totalCount }
else Single-resource GET (get_employee, get_company, …)
B->>R: GET /platform/api/{resource}/{id}
R-->>B: Single object
B-->>W: Flat fields (id, name, email, …)
else process_leave_request
B->>B: validate action ∈ {approve, decline}
B->>R: POST /leave_requests/{id}/process?action=
R-->>B: Updated leave request
B-->>W: { id, status, requestedBy, … }
else create_group / update_group
B->>B: build body (guard empty PUT)
B->>R: POST/PUT /platform/api/groups[/{id}]
R-->>B: Group object
B-->>W: { id, name, spokeId, users, version }
else push_candidate
B->>R: POST /ats_candidates/push_candidate
R-->>B: Candidate object
B-->>W: { id, firstName, lastName, email, status }
else get_company_activity
B->>R: GET /company_activity?startDate=&endDate=&next=
R-->>B: { results: [], next: cursor }
B-->>W: { events[], totalCount, nextCursor }
end
Reviews (5): Last reviewed commit: "fix(rippling): add input validation for ..." | Re-trigger Greptile |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Fix lint:check import ordering in icon-mapping.ts - Build clean params object instead of spreading all UI fields to API - Add try/catch around JSON.parse for users field - Use != null guard for limit/offset to not drop 0 values - Add missing tags to block config and integrations.json
waleedlatif1
commented
Mar 25, 2026
waleedlatif1
commented
Mar 25, 2026
@cursor review |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…scriptions - Guard startDate/endDate with operation check to prevent candidateStartDate from clobbering date filters on leave/activity operations - Update totalCount output descriptions on paginated tools to clarify it reflects page size, not total record count
waleedlatif1
commented
Mar 25, 2026
waleedlatif1
commented
Mar 25, 2026
@cursor review |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
waleedlatif1
commented
Mar 25, 2026
waleedlatif1
commented
Mar 25, 2026
@cursor review |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
waleedlatif1
commented
Mar 25, 2026
waleedlatif1
commented
Mar 25, 2026
@cursor review |
Uh oh!
There was an error while loading. Please reload this page.
* feat(rippling): add Rippling HR integration with 19 tools * fix(rippling): address PR review feedback - Fix lint:check import ordering in icon-mapping.ts - Build clean params object instead of spreading all UI fields to API - Add try/catch around JSON.parse for users field - Use != null guard for limit/offset to not drop 0 values - Add missing tags to block config and integrations.json * fix(rippling): guard startDate by operation and clarify totalCount descriptions - Guard startDate/endDate with operation check to prevent candidateStartDate from clobbering date filters on leave/activity operations - Update totalCount output descriptions on paginated tools to clarify it reflects page size, not total record count * fix(rippling): use null-safe guard for groupVersion param * fix(rippling): remove operation field from tool params payload * fix(rippling): add input validation for action param and empty group update body
* feat(rippling): add Rippling HR integration with 19 tools * fix(rippling): address PR review feedback - Fix lint:check import ordering in icon-mapping.ts - Build clean params object instead of spreading all UI fields to API - Add try/catch around JSON.parse for users field - Use != null guard for limit/offset to not drop 0 values - Add missing tags to block config and integrations.json * fix(rippling): guard startDate by operation and clarify totalCount descriptions - Guard startDate/endDate with operation check to prevent candidateStartDate from clobbering date filters on leave/activity operations - Update totalCount output descriptions on paginated tools to clarify it reflects page size, not total record count * fix(rippling): use null-safe guard for groupVersion param * fix(rippling): remove operation field from tool params payload * fix(rippling): add input validation for action param and empty group update body
* feat(rippling): add Rippling HR integration with 19 tools * fix(rippling): address PR review feedback - Fix lint:check import ordering in icon-mapping.ts - Build clean params object instead of spreading all UI fields to API - Add try/catch around JSON.parse for users field - Use != null guard for limit/offset to not drop 0 values - Add missing tags to block config and integrations.json * fix(rippling): guard startDate by operation and clarify totalCount descriptions - Guard startDate/endDate with operation check to prevent candidateStartDate from clobbering date filters on leave/activity operations - Update totalCount output descriptions on paginated tools to clarify it reflects page size, not total record count * fix(rippling): use null-safe guard for groupVersion param * fix(rippling): remove operation field from tool params payload * fix(rippling): add input validation for action param and empty group update body
Summary
Type of Change
Testing
Tested manually
Checklist