Who this is for: Coda users who want to bring Rippling HR data into their docs, no coding required.
Time to complete: approximately 20 minutes for initial setup; each section below can be used independently.
1. Before You Start
Make sure you have the following before proceeding:
A Rippling account with administrator access (or sufficient permissions to create API tokens). The Time & Attendance module active in Rippling if you intend to use Leave Requests features. A Coda account — any plan works, though some advanced Coda features referenced in this tutorial require a Pro plan. The Rippling Pack installed in your Coda workspace (see Step 2). Note on data access: Rippling enforces field-level permissions at the API level. If certain columns (such as annual salary or date of birth) appear blank in your sync table, it means your API token does not have the entitlement to read those fields. This is controlled by Rippling, not by the Pack. Contact your Rippling administrator to adjust token permissions if needed.
2. Step 1 — Generate Your Rippling API Token
The Pack uses a Bearer Token to authenticate with Rippling. You generate this token once inside Rippling and paste it into Coda.
In Rippling:
Log in to your Rippling account at . Navigate to Settings in the left sidebar. Select API Tokens (under the Integrations or Developer section). Give the token a descriptive name, e.g. Coda Integration. Select the scopes you need: Employee Read — required for Workers, GetWorker, WorkerCount, WorkersByDepartment Department Read — required for Departments Leave Read — required for Leave Requests and GetLeaveRequests Leave Write — required for ApproveLeaveRequest, DenyLeaveRequest, CreateLeaveRequest Employee Write — required for UpdateWorkerTitle, PushATSCandidate Click Create and copy the token immediately — Rippling only shows it once. Security tip: Treat this token like a password. Do not share it or commit it to any version control system. If it is ever exposed, revoke it in Rippling and generate a new one.
3. Step 2 — Install the Pack in Your Coda Doc
Open the Coda doc where you want to use Rippling data (or create a new one). Click the ⚡ Packs icon in the right-hand sidebar, or go to Insert → Packs. Click Install on the Rippling Pack card. The Pack is now available in your doc. You will not see any data yet — that happens in the next step.
4. Step 3 — Connect Your Rippling Account
After installing, the Pack will prompt you to Set up account. Click it.
Alternatively, click the ⚡ Packs icon → Rippling → Settings → Add account. A dialogue will appear asking for your API token. Paste the token you copied from Rippling. If the connection is successful, you will see your company name (e.g. Converteo) listed as the connected account. If you see an error, double-check that you copied the full token without any trailing spaces.
5. Sync Tables — Live Data From Rippling
Sync tables are the core feature of the Pack. Each one creates a live table in your doc that you can refresh at any time to pull in the latest data from Rippling.
How to add any sync table
In your doc, click Insert in the top menu, or press / in a blank line. Select Table → Sync table. Choose Rippling from the list of Packs. Select the table you want (Workers, Departments, etc.). Configure any filter options shown in the dialogue. Click Sync now to fetch the data. 5.1 Workers
The Workers table is the most important table in the Pack. It contains one row per employee, with all the core HR fields from Rippling.
What it includes:
Sync option — Include Terminated:
When adding the table, you will see a checkbox labelled Include Terminated. Tick this to include employees who have left the company. Useful for offboarding logs and audit trails.
How to use it:
Filter by Role State = ACTIVE to show only current employees. Group by Department to see headcount per team. Filter by Is Remote = true to list all remote workers. Use the Rippling URL column to add a direct link to each person’s Rippling profile in your doc. Refresh schedule:
Click the ⟳ Sync button at the top of the table to refresh. You can also set an automatic schedule by clicking the sync icon → Schedule sync → choose a frequency (hourly, daily, etc.).
5.2 Departments
A list of every department in your company, including parent-child hierarchy information.
How to use it:
Use this table as a lookup reference. For example, pair it with the Workers table using a filter formula to show all employees in a given department. Build a simple org hierarchy by grouping rows by the Parent field. 5.3 Teams
A flat list of all teams configured in Rippling.
How to use it:
Reference this table when building access dashboards or capacity planning views. Use team names as filter criteria in other tables. 5.4 Work Locations
All the physical and remote work locations configured in your Rippling account.
How to use it:
Match against the Workers table’s Location City / Location Country columns to build a location-based headcount view. Use Is Remote to segment remote vs. office-based populations. 5.5 Employment Types
The contract classifications defined in your Rippling account.
How to use it:
Filter the Workers table by Employment Type using the Name column. Build a formula that counts CONTRACTOR vs. EMPLOYEE workers. 5.6 Leave Requests
All absence requests from your Rippling account, with filtering by status and date range.
Sync options:
When adding the table, you can configure three optional filters:
Status filter — show only PENDING, APPROVED, DENIED, or CANCELLED requests. Leave blank to show all. From — only include requests with a start date on or after this date. To — only include requests with a start date on or before this date. How to use it:
Set the status filter to PENDING to build a manager approval queue. Filter by date range to see all absences for a given month or quarter. The Status column is editable — see Section 8 for how to use two-way sync to approve or deny requests directly from this table. Prerequisite: Leave Requests requires the Time & Attendance module to be active in your Rippling account, and the leave:read scope on your API token.
6. Formulas — Query Rippling From Anywhere
Formulas let you call the Rippling API from any cell, button, or formula bar in your Coda doc. You do not need a sync table to use them.
How to use a formula:
Click into any cell, or type / to open the insert menu. Start typing the formula name (e.g. GetWorker). Fill in the parameters as prompted. 6.1 GetWorker
Retrieves the full profile of a single employee by their Role ID or work email address.
Syntax:
Rippling::GetWorker("idOrEmail")
Parameters:
Returns: A rich employee object (same fields as the Workers sync table).
Examples:
=Rippling::GetWorker("alice@acme.com")
=Rippling::GetWorker("role_abc123")
Practical use:
In a table that already has an email column, add a formula column to pull in the employee’s current title:
=Rippling::GetWorker([Work Email]).Title
Or display their Rippling profile link:
=Rippling::GetWorker([Work Email]).RipplingUrl
6.2 WorkerCount
Returns the current headcount as a plain number.
Syntax:
Rippling::WorkerCount([includeTerminated])
Parameters:
Returns: A number.
Examples:
=Rippling::WorkerCount()
=Rippling::WorkerCount(true)
Practical use:
Drop this formula into a KPI card or summary row:
Active headcount: =Rippling::WorkerCount()
Total (incl. leavers): =Rippling::WorkerCount(true)
6.3 WorkersByDepartment
Returns a list of active employees in a specific department.
Syntax:
Rippling::WorkersByDepartment("departmentId")
Parameters:
Returns: A list of employee objects.
Examples:
=Rippling::WorkersByDepartment("dept_abc123")
Practical use:
Display the names of all engineers on a project page:
=Rippling::WorkersByDepartment("dept_engineering").Name.BulletedList()
Count headcount by department:
=Rippling::WorkersByDepartment("dept_engineering").Count()
Tip: When typing the formula, an autocomplete dropdown will appear after the opening quote, showing your departments by name. Select from the list rather than typing the ID manually.
6.4 GetLeaveRequests
Returns all approved leave requests for a specific employee, optionally filtered by date range.
Syntax:
Rippling::GetLeaveRequests("roleId", [from], [to])
Parameters:
Returns: A list of leave request objects.
Examples:
=Rippling::GetLeaveRequests("role_abc123")
=Rippling::GetLeaveRequests("role_abc123", Date(2025,1,1), Date(2025,12,31))
Practical use:
Display total approved holiday hours for an employee this year:
=Rippling::GetLeaveRequests(
[Role ID],
Date(Year(Today()),1,1),
Today()
).Filter(CurrentValue.LeaveType = "VACATION").NumHours.Sum()
7. Actions — Trigger Changes in Rippling From a Button
Actions are formulas that write data back to Rippling. They are designed to be used in Coda buttons. When a user clicks the button, the action runs and the change is reflected in Rippling immediately.
How to add a button
In a table, click + Add column → Button. Click Edit button → Add action. Type the action formula (see each section below). Give the button a label and an optional colour. 7.1 ApproveLeaveRequest
Approves a pending leave request and updates the row in the Leave Requests sync table automatically.
Syntax:
Rippling::ApproveLeaveRequest("leaveRequestId", ["comment"])
Parameters:
Example button formula:
=Rippling::ApproveLeaveRequest([Id], "Approved — enjoy your time off!")
Practical setup:
Add the Leave Requests sync table filtered to Status = PENDING. Add a button column with the label Approve. Set the formula to =Rippling::ApproveLeaveRequest([Id]). When a manager clicks Approve, the request is approved in Rippling and the row’s Status column updates to APPROVED in the same sync table. 7.2 DenyLeaveRequest
Declines a pending leave request and updates the row automatically.
Syntax:
Rippling::DenyLeaveRequest("leaveRequestId", ["reason"])
Parameters:
Example button formula:
=Rippling::DenyLeaveRequest([Id], "Team is at minimum capacity during this period.")
Practical setup:
Add this as a second button column labelled Decline alongside the Approve button described above, to create a full approval queue inside Coda.
7.3 CreateLeaveRequest
Submits a new absence request for an employee directly from Coda.
Syntax:
Rippling::CreateLeaveRequest("roleId", startDate, endDate, "leaveType", ["reason"])
Parameters:
Example button formula:
=Rippling::CreateLeaveRequest(
[Role ID],
[Start Date],
[End Date],
[Leave Type],
[Notes]
)
Practical setup:
Build a simple absence request form in Coda:
Create a table with columns: Employee Role ID, Start Date, End Date, Leave Type (select list), Notes. Add a button column labelled Submit to Rippling. Set the formula to =Rippling::CreateLeaveRequest([Employee Role ID], [Start Date], [End Date], [Leave Type], [Notes]). Employees fill in the row and click Submit. The request appears in Rippling instantly.
7.4 UpdateWorkerTitle
Changes an employee’s job title in Rippling and refreshes the Workers sync table row automatically.
Syntax:
Rippling::UpdateWorkerTitle("employeeId", "newTitle")
Parameters:
Example button formula:
=Rippling::UpdateWorkerTitle([Id], [New Title])
Practical setup:
In the Workers sync table, add a text column called New Title. Add a button column labelled Update Title in Rippling. Set the formula to =Rippling::UpdateWorkerTitle([Id], [New Title]). Type a new title in the New Title column and click the button. The title updates in Rippling and the Title column in the Workers table refreshes automatically. 7.5 PushATSCandidate
Sends a new hire candidate from Coda into Rippling’s onboarding flow, as if they had been pushed from an ATS.
⚠️ Important: This action immediately triggers Rippling’s onboarding workflows, which may send emails to the candidate and trigger app provisioning. Only use this when you are ready to onboard the person.
Syntax:
Rippling::PushATSCandidate(