Directory Sync

Automatic user and group provisioning

Quickly enable SCIM provisioning from all major corporate directory providers with a single integration.

Integrates with

Streamline user activation, deactivation, and groups

Directory Sync

Your app’s gateway into enterprise HR

Real-time updates

with webhook events

12+

Directory services supported

Integrate into the systems that enterprises are already using

WorkOS integrates corporate directories and HRIS systems to power the user lifecycle management of your app. With a single integration, automatically provision and deprovision users, groups, and access controls.

Effortlessly integrate with directory users + groups

Seamless user lifecycle management for both you and your customers by keeping your app in sync with their employee directory.


// Get a list of all users
// from an existing Directory

import WorkOS from '@workos-inc/node';

const workos = new WorkOS('sk_example_123456');

const users = await workos.directorySync.listUsers({
  directory: 'directory_01ECAZ',
});



# Get a list of all users
# from an existing Directory

require 'workos'

WorkOS.key = 'sk_example_123456'

users = WorkOS::DirectorySync.list_users(
  directory: 'directory_01ECAZ',
)



# Get a list of all users
# from an existing Directory

import workos
from workos import client

workos.api_key = 'sk_example_123456'
workos.client_id = 'client_123456789'

users = client.directory_sync.list_users(group='directory_01ECAZ')



// Get a list of all users
// from an existing Directory

import "github.com/workos/workos-go/pkg/directorysync"

directorysync.SetAPIKey("sk_example_123456")

response, err := directorysync.ListUsers(context.Background(), directorysync.ListUsersOpts{
  Directory: "directory_01ECAZ",
})



// Get a list of all users
// from an existing Directory

$this->ds = new DirectorySync();

list($before, $after, $users) = $this->ds->listUsers();







// Get a list of all users
// from an existing Directory

import com.workos.WorkOS;

WorkOS workos = new WorkOS("sk_example_123456");

DirectoryUserList userList = workos.directorySync.listDirectoryUsers(
  ListDirectoryUserOptions.builder()
    .directory("directory_01ECAZ")
    .build()
);

// Get a list of all users
// from an existing Directory

WorkOS.SetApiKey("sk_example_123456");

var service = new DirectorySyncService();
var options = new ListUsersOptions
{
    Directory = "directory_01ECAZ",
}

var users = await service.ListUsers(options);

curl --request GET \
  --url "https://api.workos.com/directory_users?directory=directory_01ECAZ" \
  --header "Authorization: Bearer sk_example_123456"
  
  
  
  
  
  
  
  
  
  • Normalized data

    Access attributes in a standardized format from dozens of HRIS and directory providers.
  • Attribute mapping

    Map the required custom attributes you want to pull in from various directory providers.
  • Advanced use cases

    Fetch and manipulate data from different entities such as directories, groups, and users.

Real-time updates with webhooks

Receive events to stay up-to-date any time a change is made to a directory sync connection.

dsync.group.user_added
A user was added to a directory group
dsync.user.created
A new user was created
dsync.user.updated
A user’s properties were updated
dsync.deleted
A directory sync connection was deleted
dsync.activated
A directory sync connection was activated
dsync.group.updated
A directory group’s properties were updated
dsync.group.user_added
A user was added to a directory group
dsync.user.created
A new user was created
dsync.user.updated
A user’s properties were updated
dsync.deleted
A directory sync connection was deleted
dsync.activated
A directory sync connection was activated
dsync.group.updated
A directory group’s properties were updated
dsync.user.created
A new user was created
dsync.group.created
A group was added to a directory.
dsync.user.deleted
A user was removed from the directory
dsync.group.user_removed
A user was removed to a directory group
dsync.deactivated
A directory sync connection was deactivated
dsync.user.created
A new user was created
dsync.group.created
A group was added to a directory.
dsync.user.deleted
A user was removed from the directory
dsync.group.user_removed
A user was removed to a directory group
dsync.deactivated
A directory sync connection was deactivated
“I think we could have done even more business if we had partnered with WorkOS earlier, but it's been incredibly well received.”
Guillermo Rauch
Founder & CEO
Read more
“WorkOS takes care of all of the infrastructure, all of the technical problems, managing the servers, and managing any issues that come up.”
Joe Conte
CTO
Read more

Transparent pricing

Integrate corporate directories and HRIS systems to power the user lifecycle management of your app.

$49 / mo
per connection
  • Support Workday, AzureAD, Okta, BambooHR, Google, and more
  • Seamless enterprise user lifecycle management
  • Webhooks track changes in users, groups, and access rules

This site uses cookies to improve your experience. Please accept the use of cookies on this site. You can review our cookie policy here and our privacy policy here. If you choose to refuse, functionality of this site will be limited.