Reference
Directory sync API
9 operations. Generated from the OpenAPI document, so this page always matches the API.
OpenAPI documentErrors and rate limitsSDK and CLI recipes
On this page
sync.current
Read the People sync provider, its last sync and what it found
POST/api/v1/manage/sync/current
- Read
- Permission sync.current
const result = await shuffl.sync.current();Request fields (none)
This operation takes no input.
Response object
- catalog object[] required
- auth object required
- Option 1 object optional
- kind "scim" required
- Option 2 object optional
- kind "installation" required
- Option 3 object optional
- fields object[] required
- kind "api_key" required
- steps string[] required
- Option 4 object optional
- kind "oauth" required
- steps string[] required
- Option 1 object optional
- availability object required
- Option 1 object optional
- state "available" required
- Option 2 object optional
- note string required
- state "partner_pending" required
- Option 3 object optional
- note string optional
- state "coming_soon" required
- Option 1 object optional
- blurb string required
- capabilities object required
- accessApps false | true optional
- accessGroups false | true optional
- benefits false | true optional
- deactivation boolean required
- departments boolean required
- hires false | true optional
- managers boolean required
- offerStartDates false | true optional
- payCalendar false | true optional
- people boolean required
- recruiterNotes false | true optional
- startDates boolean required
- teams boolean required
- timeOffApprovals false | true optional
- timeOffBalances false | true optional
- timeOffRequests false | true optional
- titles boolean required
- webhooks boolean required
- whosOut false | true optional
- category "chat" | "hiring" | "hris" | "identity" required
- docsHref string optional
- employeePortalUrl string optional
- hidden true optional
- id "adp" | "ashby" | "bamboohr" | "deel" | "entra" | "fixture_ats" | "fixture_hris" | "fixture_idp" | "google_team" | "google_workspace" | "greenhouse" | "gusto" | "hibob" | "jumpcloud" | "justworks" | "microsoft" | "okta" | "onelogin" | "personio" | "rippling" | "scim" | "slack" | "workday" required
- name string required
- via "scim" optional
- auth object required
- connections object[] required
- automaticAccess boolean required
- createdAt string required
- groups object required
- imported number required
- listed number required
- hiring null | object required
- notes boolean required
- open number required
- total number required
- id string required
- label string required
- lastSyncAt null | string required
- live boolean required
- manage null | "scim" | "slack" required
- people number required
- provider string required
- runs object[] required
- counts object required
- errorCode null | string required
- finishedAt null | string required
- id string required
- startedAt string required
- status string required
- trigger string required
- slack null | object required
- reason "connected" | "grid_pending" | "missing_permissions" | "not_installed" | "paused" | "revoked" | "sample_data" | "unavailable" | "uninstalled" | "workspace_changed" required
- state "connected" | "needs_reconnect" | "not_connected" required
- status "connected" | "disconnected" | "needs_attention" required
- writes object required
- enabled boolean required
- offered boolean required
- organizationId string required
- requests object[] required
- createdAt string required
- name string required
- scimAvailable boolean required
- scimRestricted boolean required
sync.groups
List this source’s groups and which ones come into Shuffl
POST/api/v1/manage/sync/groups
- Read
- Permission sync.groups
const result = await shuffl.sync.groups({
"connectionId": "<connectionId>"
});Request fields (1)
- connectionId string required
Response object
- connection object required
- id string required
- label string required
- name string required
- provider string required
- source "directory" | "scim" | "slack" required
- groups object[] required
- groupId null | string required
- id string required
- imported boolean required
- listed boolean required
- memberCount number required
- name string required
- onProfile boolean required
- seenAt string required
sync.connect
Connect a directory sync provider with the credential given
POST/api/v1/manage/sync/connect
- Write
- Permission sync.connect
- Needs a requestKey
- Needs confirm set to sync.connect
const result = await shuffl.sync.connect({
"fields": null,
"provider": "adp",
"confirm": "sync.connect",
"requestKey": "a-new-unique-key"
});Request fields (5)
- automaticAccess false | true optional
- fields object required
- provider "adp" | "ashby" | "bamboohr" | "deel" | "entra" | "fixture_ats" | "fixture_hris" | "fixture_idp" | "google_team" | "google_workspace" | "greenhouse" | "gusto" | "hibob" | "jumpcloud" | "justworks" | "microsoft" | "okta" | "onelogin" | "personio" | "rippling" | "scim" | "slack" | "workday" required
- confirm "sync.connect" required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- connectionId string required
- first object required
- Option 1 object optional
- error any optional
- status "skipped" required
- Option 2 object optional
- error string required
- status "failed" required
- Option 3 object optional
- created number required
- ended number required
- error any optional
- groupMoves number required
- groups number required
- hires number required
- linked number required
- managers number required
- missing number required
- skipped number required
- status "completed" required
- suspended number required
- unchanged number required
- units number required
- updated number required
- withdrawn number required
- Option 1 object optional
sync.disconnect
Disconnect this directory sync provider
POST/api/v1/manage/sync/disconnect
- Write
- Permission sync.disconnect
- Needs a requestKey
- Needs confirm set to sync.disconnect
const result = await shuffl.sync.disconnect({
"connectionId": "<connectionId>",
"confirm": "sync.disconnect",
"requestKey": "a-new-unique-key"
});Request fields (3)
- connectionId string required
- confirm "sync.disconnect" required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- disconnected boolean required
sync.request
Ask for a People sync provider Shuffl does not support yet
POST/api/v1/manage/sync/request
- Write
- Permission sync.request
- Needs a requestKey
const result = await shuffl.sync.request({
"name": "<name>",
"requestKey": "a-new-unique-key"
});Request fields (2)
- name string required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- requested boolean required
sync.run
Sync People from the connected provider now
POST/api/v1/manage/sync/run
- Write
- Permission sync.run
- Needs a requestKey
const result = await shuffl.sync.run({
"connectionId": "<connectionId>",
"requestKey": "a-new-unique-key"
});Request fields (2)
- connectionId string required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- queued boolean required
sync.setAccess
Turn automatic access on or off for this people sync connection
POST/api/v1/manage/sync/setAccess
- Write
- Permission sync.setAccess
- Needs a requestKey
- Needs confirm set to sync.setAccess
const result = await shuffl.sync.setAccess({
"connectionId": "<connectionId>",
"enabled": false,
"confirm": "sync.setAccess",
"requestKey": "a-new-unique-key"
});Request fields (4)
- connectionId string required
- enabled boolean required
- confirm "sync.setAccess" required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- enabled boolean required
- saved boolean required
sync.setGroup
Change which of this source’s groups come into Shuffl
POST/api/v1/manage/sync/setGroup
- Write
- Permission sync.setGroup
- Needs a requestKey
- Needs confirm set to sync.setGroup
const result = await shuffl.sync.setGroup({
"connectionId": "<connectionId>",
"id": "<id>",
"confirm": "sync.setGroup",
"requestKey": "a-new-unique-key"
});Request fields (6)
- connectionId string required
- id string required
- imported false | true optional
- onProfile false | true optional
- confirm "sync.setGroup" required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- groupId null | string required
- imported boolean required
- syncing boolean required
sync.setWrites
Let Mello file requests in this source, or stop it
POST/api/v1/manage/sync/setWrites
- Write
- Permission sync.setWrites
- Needs a requestKey
- Needs confirm set to sync.setWrites
const result = await shuffl.sync.setWrites({
"connectionId": "<connectionId>",
"enabled": false,
"confirm": "sync.setWrites",
"requestKey": "a-new-unique-key"
});Request fields (4)
- connectionId string required
- enabled boolean required
- confirm "sync.setWrites" required
- requestKey string required1 to 128 characters
Response object
- receipt object required
- completedAt string (date-time) | null required
- createdAt string (date-time) required
- id string (uuid) required
- operation string required
- requestKey string required
- status "running" | "succeeded" | "failed" | "unknown" required
- result object | null required
- catalog object[] required
- auth object required
- Option 1 object optional
- kind "scim" required
- Option 2 object optional
- kind "installation" required
- Option 3 object optional
- fields object[] required
- kind "api_key" required
- steps string[] required
- Option 4 object optional
- kind "oauth" required
- steps string[] required
- Option 1 object optional
- availability object required
- Option 1 object optional
- state "available" required
- Option 2 object optional
- note string required
- state "partner_pending" required
- Option 3 object optional
- note string optional
- state "coming_soon" required
- Option 1 object optional
- blurb string required
- capabilities object required
- accessApps false | true optional
- accessGroups false | true optional
- benefits false | true optional
- deactivation boolean required
- departments boolean required
- hires false | true optional
- managers boolean required
- offerStartDates false | true optional
- payCalendar false | true optional
- people boolean required
- recruiterNotes false | true optional
- startDates boolean required
- teams boolean required
- timeOffApprovals false | true optional
- timeOffBalances false | true optional
- timeOffRequests false | true optional
- titles boolean required
- webhooks boolean required
- whosOut false | true optional
- category "chat" | "hiring" | "hris" | "identity" required
- docsHref string optional
- employeePortalUrl string optional
- hidden true optional
- id "adp" | "ashby" | "bamboohr" | "deel" | "entra" | "fixture_ats" | "fixture_hris" | "fixture_idp" | "google_team" | "google_workspace" | "greenhouse" | "gusto" | "hibob" | "jumpcloud" | "justworks" | "microsoft" | "okta" | "onelogin" | "personio" | "rippling" | "scim" | "slack" | "workday" required
- name string required
- via "scim" optional
- auth object required
- connections object[] required
- automaticAccess boolean required
- createdAt string required
- groups object required
- imported number required
- listed number required
- hiring null | object required
- notes boolean required
- open number required
- total number required
- id string required
- label string required
- lastSyncAt null | string required
- live boolean required
- manage null | "scim" | "slack" required
- people number required
- provider string required
- runs object[] required
- counts object required
- errorCode null | string required
- finishedAt null | string required
- id string required
- startedAt string required
- status string required
- trigger string required
- slack null | object required
- reason "connected" | "grid_pending" | "missing_permissions" | "not_installed" | "paused" | "revoked" | "sample_data" | "unavailable" | "uninstalled" | "workspace_changed" required
- state "connected" | "needs_reconnect" | "not_connected" required
- status "connected" | "disconnected" | "needs_attention" required
- writes object required
- enabled boolean required
- offered boolean required
- requests object[] required
- createdAt string required
- name string required
- catalog object[] required