feat(rippling): add Rippling HR integration with 19 tools#3764
feat(rippling): add Rippling HR integration with 19 tools#3764waleedlatif1 merged 6 commits intostagingfrom
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. |
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 |
- 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
|
@greptile |
|
@cursor review |
…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
|
@greptile |
|
@cursor review |
|
@greptile |
|
@cursor review |
|
@greptile |
|
@cursor review |
* 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