# Sync People from your HR system

> Connect Google Workspace, Microsoft 365, JumpCloud, BambooHR, Rippling, HiBob, Personio, Deel or Workday so People keeps titles, managers, start dates and leavers current.

Audience: HR and IT administrators

Kind: How-to guide

Canonical: https://shuffl.ai/docs/people-sync

<a id="overview"></a>
## What Sync does

Sync fills People from the system you already keep up to date: who works here, their title, department, groups, manager and start date, and who has left.

Shuffl only reads; it never changes a record in your HR system or directory. A start date it brings in can start an onboarding playbook.

Administrators find it on People → Sync, marked HR. Connected lists each source with its last run, and Add a source lists what you can connect.

Under Coming soon, Gusto and Justworks wait on each company approving Shuffl’s app; choose Request, or name another system under Something else?.

Everyone a source brings in arrives with pending access, and a sync never turns access on.

- [Open Sync](https://shuffl.ai/app/people?view=sync)

- [Sync in the People guide](https://shuffl.ai/docs/people#sync)

<a id="connect"></a>
## Connect a source

1. Open People, then the Sync tab.

2. Under Add a source, choose Connect on your system. The dialog lists what to create there.

3. Enter the key, token or report details and choose Connect and sync. For Google Workspace or Microsoft 365, choose Continue with and sign in instead.

4. Shuffl reads your people before saving the connection. If the system refuses, the dialog says why and nothing is stored.

5. The first sync runs straight away and says how many people were new or linked.

6. Review the new people in People and enable access for those who should use Shuffl.

- [Open Sync](https://shuffl.ai/app/people?view=sync)

<a id="providers"></a>
## What to create in each system

Google Workspace: sign in as an administrator who can read users and allow Shuffl to see users and groups.

If Google says the app is blocked, trust Shuffl under Security → API controls → App access control. Groups list their direct members; nested groups aren’t expanded. Google Workspace has no start dates.

Microsoft 365: sign in as a Global Administrator or Privileged Role Administrator and accept for your organization.

Shuffl reads users, hire dates and group memberships, leaving out guests, shared mailboxes and room accounts. If you already push people from Entra ID with SCIM, keep one of the two.

JumpCloud: in the Admin Portal, open your administrator menu (top right), choose API Settings and generate or copy an API key. Keys expire after 90 days by default, so note when to rotate it. JumpCloud has no start dates.

BambooHR: as an administrator, open your name (top right), choose API Keys and add a key named Shuffl.

Enter it with your Company domain, the part before .bamboohr.com. Shuffl adds a webhook with the key so changes arrive as they happen; without one it reads daily.

Rippling: open Tools → Developer → API Tokens and create a token with companies.read, departments.read, teams.read, users.read and workers.read, plus leave-balances.read for time off. Rippling expires a token unused for 30 days, so keep Sync connected.

HiBob: under Settings → Integrations → Service users, create one named Shuffl with a permission group that can view Basic info, Work and Lifecycle for all employees, former ones included.

Enter its ID and token. For live changes, add the Connect dialog’s webhook address under Automation → Webhooks and paste Bob’s secret into Webhook secret.

Personio: under Settings → Integrations → API credentials, generate a credential named Shuffl that reads Employees. It needs name, preferred name, email, status, position, supervisor, department, team, hire date and termination date. Enter the Client ID and Client secret.

Deel: open More → Developer → Access Tokens and generate an organization token with people:read and organizations:read, allowing work emails. Deel’s contractors get the Contractor employment type in People.

Workday: give an integration system user access to workers, organizations and managers, and share with it an advanced custom report of all workers, leavers included. Its fields are Employee_ID, Preferred_Name, Email, Business_Title, Manager_Employee_ID, Supervisory_Organization, Hire_Date, Active and Termination_Date.

Enable it as a web service and enter its URL from Actions → Web Service → View URLs with ?format=json, plus the user and password.

<a id="slack"></a>
## What Slack fills in

Slack is listed under Connected once Slack is connected. On every plan, Shuffl reads names, emails, photos, titles, time zones and deactivations from it.

Start dates and managers come from Slack Atlas, or from custom profile fields named Start date, Hire date or Joined and Manager or Reports to. If Slack asks for permission again, reconnect to read custom fields.

Slack fills these only for people no other source manages, and a blank keeps what People has. Managers and custom fields are read on each sync, so choose Sync now on the Slack card after a reorganization.

- [Connect Slack](https://shuffl.ai/docs/slack)

<a id="what-syncs"></a>
## What Shuffl reads and which value wins

Shuffl reads every source daily. BambooHR, and HiBob with a webhook secret, also send changes as they happen. Each card says which.

Shuffl links each record to a person by the source’s id, then by a work email matching exactly one person. Anyone else becomes a new person; a former employee never in People is not imported.

Name and email stay with Slack or SCIM when either holds the person. Job details come from the source: title, department, groups, manager, start date, and employment type and time zone when sent.

A source overwrites those fields on every read, so correct mistakes in the source. A blank keeps what People has, so start dates typed in People survive Google Workspace and JumpCloud.

If you also use an HR system, connect it first so it owns start dates.

Departments are groups marked Department on People → Groups. They are created from the source’s names, or matched by name, and follow renames; a new department moves the person out of their old one.

Groups you bring in follow the source; groups made in Shuffl stay as they are.

A manager is set when the source names one who is also in that source. Shuffl never clears or invents a manager and skips one that would create a loop.

Start dates drive anniversaries, New hires on Home and onboarding dates. Shuffl also keeps a first hire date when the source sends one or someone returns.

HR systems that send a termination date set the person’s last day in People, never with a reason, as not announced. A later start date clears it.

If two sources list the same person, the first keeps them; disconnecting it hands them to the next.

- [Fill in reporting lines](https://shuffl.ai/docs/people#reporting-lines)

- [Start dates and anniversaries](https://shuffl.ai/docs/celebrations#start-dates)

<a id="starters-and-leavers"></a>
## Starters and leavers

A future hire arrives with pending access. Once the source shows them active, Employment becomes Employed.

When an HR system shows someone as terminated or inactive, or their last day has passed, Shuffl sets Employment ended and suspends their access. An archived Google Workspace user is treated the same way.

A suspended or turned-off directory account, or an inactive HiBob one, has access suspended and employment left as it was. JumpCloud has no terminated state, so record Employment ended yourself.

Workday ends employment from Active or a passed Termination_Date, so keep leavers in the report.

Someone a source stops listing is counted as no longer listed, never suspended. Enable a returning employee yourself.

- [When your HR system says they left](https://shuffl.ai/docs/when-someone-leaves#automatic)

- [Enable access](https://shuffl.ai/docs/employee-access#link)

<a id="time-off"></a>
## Time-off balances

With BambooHR, Rippling, HiBob or Deel, Mello can tell an employee their own time-off balances when they ask in their own chat. It uses that system’s policy names and units and says the date they are as of.

Mello reads only the asking person’s balances, never in a shared channel, and never guesses a number. It can prepare an HR request with the dates.

The key or token must be allowed to read time off; the source’s card says whether it can.

- [What Mello knows about you](https://shuffl.ai/docs/ask-mello#what-mello-knows)

<a id="groups"></a>
## Choose which groups come in

1. Open People → Sync and choose Groups on the source’s card.

2. Turn on In Shuffl for each group you want. Shuffl starts a sync so its members arrive.

3. Leave Show on profiles on for teams people work in, and turn it off for groups that only HR uses.

Teams and groups from a source or Slack don’t come in by themselves. Each sync lists them on the source’s Groups screen with their size, so mailing lists stay out of People.

A group you bring in follows the source at every sync. Turn it off and it stays in Groups as a list for you to keep or delete; turn it on again to follow the source.

- [Groups from Slack and People sync](https://shuffl.ai/docs/groups#synced)

<a id="runs"></a>
## Read a sync and fix a failed one

1. When a card shows Needs attention, the provider refused the key. Create a new key, token or password in that system.

2. Choose Connect on the same system and enter the new details. Shuffl replaces the stored key and runs a sync.

3. For Google Workspace or Microsoft 365, sign in again as an administrator.

4. For Microsoft 365, Needs attention usually means someone removed Shuffl under Enterprise applications in Entra.

Each card shows how many people the source manages and when it last synced. Its last run is a row of chips: New, Linked, Updated, Managers, Not listed and Skipped, such as people another source manages. Counts of zero are left out.

Sync now queues a read straight away. It runs within a minute; refresh to see the result.

A failed run changes nobody and says why on a red chip, such as Credential refused. Shuffl tries again at the next daily read.

<a id="disconnect"></a>
## Disconnect a source

Choose Disconnect on the source’s card and confirm. Syncs stop, the stored key is deleted, and every person stays in People to edit by hand.

Shuffl removes its BambooHR webhook. Remove a HiBob webhook or Google authorization yourself. To rotate a key, connect the same source again instead.

## Related guides

- [People and the org chart](https://shuffl.ai/docs/people)

- [Invite and enable employees](https://shuffl.ai/docs/employee-access)

- [When someone leaves](https://shuffl.ai/docs/when-someone-leaves)

- [Celebrate work anniversaries and birthdays](https://shuffl.ai/docs/celebrations)

- [Ask Mello](https://shuffl.ai/docs/ask-mello)

Agent documentation index: https://shuffl.ai/llms.txt

