Source: https://atomicwork.docs.pageloop.ai/integrations/hrms/rippling

# Rippling

# Rippling

Automate employee onboarding, offboarding, and role changes with synced HR data — and automate HR tasks like leave requests and document retrieval from within your workflows.

> **At a glance**
>
> |                              |                                                                                                                                         |
> | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
> | **What Rippling is**         | An HR Information System (HRIS) — the system of record for employees, departments, and HR data.                                         |
> | **What Atomicwork supports** | **1. User sync** — powers onboarding, offboarding, and mover workflows. **2. Call API** — call any Rippling API from within a workflow. |
> | **Authentication**           | API key (Rippling API key)                                                                                                              |
> | **Sync cadence**             | Starts immediately when you enable sync, then runs automatically every 24 hours.                                                        |
> | **Configured in**            | Atomicwork → **Settings > Enterprise integrations > App store > Rippling**                                                              |
> | **Access required**          | Org admin on Atomicwork; a Rippling API key with the required permissions                                                               |

## Overview

Rippling is an HRIS — the system of record for your employees. The most common reason to connect it is to automate employee lifecycle work: when someone joins, changes role, or leaves in Rippling, Atomicwork automatically triggers the matching onboarding, mover, or offboarding workflow — whether that's granting or revoking access, requesting a laptop, creating tickets, or any other task the workflow covers. It does this by **syncing users** from Rippling.

Beyond the lifecycle, the **Call API** capability lets any Atomicwork workflow call any Rippling API endpoint on demand — so you can automate HR processes well beyond user data.

Together, they keep IT and HR work aligned with what's happening in Rippling and replace repetitive manual tasks with automation.

## What you can automate

### User sync

Syncing users from Rippling powers the full employee lifecycle:

- **Onboarding (joiner)** — when a new hire appears in Rippling, kick off onboarding: grant access, request a laptop or other equipment, create the right tickets, and more.
- **Movers** — react to role, department, or location changes with the right access and resource updates.
- **Offboarding (leaver)** — when someone leaves, run offboarding: revoke access, reclaim equipment, and close out accounts.

### Call any Rippling API in workflows

The **Call API** capability lets a workflow call any Rippling endpoint, so almost any HR process can be automated. For example:

- **Leave management** — check leave balances and create, approve, reject, or cancel time-off requests through Atom.
- **Fetching HR letters** — retrieve documents such as employment or verification letters.

These are just examples — anything exposed by the [Rippling API](https://developer.rippling.com/) can be called and automated this way.

## Before you begin

Make sure you have the following before you start, so setup runs end to end without interruption:

- **Org admin access** on Atomicwork.
- Admin access to the **Rippling admin console** to generate an API key.
- The API key must include the permissions listed in [Permissions](#permissions) below.

## Permissions

The Rippling API key you generate must carry every permission your workflows use — the user-sync read permissions below, plus any additional permissions your Call API workflows need.

### For user sync (read)

User sync needs read access to the following Rippling data:

| Permission           | Purpose                                                                             |
| -------------------- | ----------------------------------------------------------------------------------- |
| **Workers**          | Base worker records — `GET /workers` and `GET /workers/{id}`. The core of the sync. |
| **Users**            | Identity details: name, email, and photo.                                           |
| **Departments**      | Department data.                                                                    |
| **Titles**           | Worker job titles.                                                                  |
| **Levels**           | Job level / seniority.                                                              |
| **Employment Types** | Worker employment type.                                                             |
| **Teams**            | Team membership.                                                                    |
| **Custom Fields**    | Custom fields configured in Rippling.                                               |
| **Work Locations**   | Work location data, used by the Get work locations action.                          |

### For Call API actions

Call API workflows need whatever permissions their specific use case requires, on top of the read permissions above. Grant only what each workflow actually uses.

**Example — leave management.** A workflow that lets employees check balances and request time off, and lets managers approve or reject requests, needs leave-related permissions such as:

| Permission                         | Purpose                                                                |
| ---------------------------------- | ---------------------------------------------------------------------- |
| **leave\_requests** (read + write) | List and read leave requests; create, approve, reject, or cancel them. |
| **leave\_balances** (read)         | Check remaining leave balances for a worker.                           |
| **leave\_types** (read)            | List available leave types (Vacation, Sick, WFH, etc.).                |

## Setup

Setup has three parts: generate a key in Rippling, connect it in Atomicwork, then verify.

### 1. Generate an API key in Rippling

1. Log in to Rippling as an admin and go to **Tools > Developer**.
2. Go to **API Tokens** and click **Create API Token**.
3. Enter a name for the key and click **Continue**.
4. Select the required permissions (see [Permissions](#permissions)) and click **Save**.
5. Copy the API key and store it securely.

> **Important:** Rippling shows the API key only once, at creation. Copy it right away and store it securely — if you navigate away without copying it, you'll need to create a new one.

### 2. Connect in Atomicwork

1. In Atomicwork, go to **Settings > Enterprise integrations > App store > Rippling**.
2. Paste your Rippling API key into the **API Key** field.
3. Click **Test** to validate the connection.
4. Click **Connect** to activate the integration.

### 3. Verify the connection

Click **Test** on the Rippling connection to confirm the key works.

- **Success:** a confirmation appears — _"Connection tested. You're all set!"_ Click **Connect** to finish.
- **Failure:** an error appears — _"Unauthorized, please check the configuration."_ This usually means the API key is wrong, incomplete, or missing required permissions. Re-check the key and try again.

If the test fails, see [Troubleshooting](#troubleshooting).

> **After you connect:** user sync starts immediately, then runs automatically every 24 hours. Synced people appear in the left navigation under **Directory > People**.

### 4. Update or rotate the API key

To change the API key later — for example, after rotating it in Rippling:

1. Go to **Settings > Enterprise integrations > App store > Rippling** and click **Edit**.
2. Enter the new API key.
3. Click **Connect** again to save.

## Supported workflow actions

Once connected, you can automate the following Rippling actions within your Atomicwork workflows:

| **Action**               | **Description**                                                            |
| ------------------------ | -------------------------------------------------------------------------- |
| **Get departments**      | Retrieve organizational department data from Rippling.                     |
| **Get users**            | Retrieve user information from Rippling.                                   |
| **Get work locations**   | Retrieve work location data from Rippling.                                 |
| **List workers**         | List all workers with pagination support.                                  |
| **Get worker by email**  | Retrieve a specific worker's details using their email address.            |
| **List leave requests**  | List leave requests for a specific worker.                                 |
| **Get leave request**    | Get details of a specific leave request.                                   |
| **Create leave request** | Create a new time-off request for a worker.                                |
| **Update leave request** | Update an existing leave request (approve, reject, or cancel).             |
| **Get leave balances**   | Retrieve leave balances for a worker in minutes.                           |
| **Get leave types**      | Get all configured leave types (such as Vacation, Sick, or WFH).           |
| **Call API**             | Execute a generic API call to any Rippling endpoint for custom operations. |

## Behaviors and limits

Design your workflows around these behaviors when using Call API:

- **Pagination.** Rippling list endpoints use cursor-based pagination. Pass the cursor from the previous response's `next_link` to retrieve the next page. The default page size is 20 items; the maximum is 100.
- **Leave request status changes** (if you build leave workflows) — you can only change the status of **PENDING** leave requests; you can still update comments on non-pending ones.
- **Leave balances are returned in minutes** — convert as needed for display.

## Troubleshooting

If you hit an issue, check the message against the table below:

| Error                                                        | Cause                                                              | Resolution                                                                         |
| ------------------------------------------------------------ | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------- |
| **"access\_token is null"**                                  | The integration configuration is missing the API key.              | Re-enter your key in the integration settings.                                     |
| **"Unauthorized, please check the configuration"** (on Test) | The API key is wrong, incomplete, or missing required permissions. | Re-check the key and confirm it has the permissions listed above, then test again. |
| **401 Unauthorized**                                         | Your API key has expired or been revoked.                          | Generate a new key in the Rippling admin console and update the connection.        |

## Related

- [Importing people into Atomicwork: setting up sync from multiple sources](/product/identity-access-management/people-roles-and-teams/importing-people-into-atomicwork#setting-up-sync-from-multiple-sources)
- Need help? Contact <support@atomicwork.com> for assistance with your Rippling integration.
