> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opal.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Sync schedules and triggers

> Learn how Opal syncs apps, groups, resources, and users from remote systems.

> [!NOTE]
>
> Real-time sync, which syncs objects on an event-driven basis as they're
> updated in end systems, is supported for Okta, Azure, and AWS. Follow the
> guides to enable real-time sync for
> [Azure](https://docs.opal.dev/integrations/azure-real-time-sync.md) or
> [AWS](https://docs.opal.dev/integrations/aws-real-time-sync.md). [Okta real-time
> sync](https://docs.opal.dev/integrations/okta.md#real-time-sync) is automatically enabled.

Learn about the different ways Opal supports syncing items from your end system.

Note that syncs, both automatic and manual, may be throttled to preserve service.

## Automatic syncs

Opal periodically syncs resources, apps, groups, and users from your end systems.

**Managed** resources are apps, groups, and resources you’ve imported to Opal. **Unmanaged** resources exist in your end system but are not imported to Opal. See the guide to [import items to Opal](https://docs.opal.dev/docs/import-and-configure-resources-and-groups.md) to learn more.

### Periodic syncs

Multiple times per day (every 4 hours for regular syncs and hourly for IDP syncs), [user attributes](https://docs.opal.dev/docs/add-additional-idphr-providers.md#import-attributes) from IDP/HRIS data, and managed resources and groups are synced. These syncs may be skipped if they overlap with other syncs.

IDP Status and other user attributes from your IDP/HRIS (for example, whether a user is active, suspended, or deprovisioned) are refreshed by the hourly IDP sync, or on demand with **Sync Users** on the **Inventory** > **Users** tab. For Okta, event-driven sync (behind a feature flag) can also refresh a user's name, manager, title, and custom attributes, and promote their IDP Status (for example, from suspended to active), shortly after Okta reports the change. A user suspended or deactivated in your IDP will show the new IDP Status after the next IDP sync.

Once per day, all apps, groups, and resources are synced, including unmanaged ones, to reconcile any discrepancies between the end system and objects in Opal. These syncs may be delayed given high volume.

Both of these syncs may create and remove users in Opal if they've changed in the remote app.

### High-priority syncs

The following tasks are considered high-priority and are executed soon after they’re triggered:

* On-call schedules synced from [productivity integrations](https://docs.opal.dev/docs/connect-your-productivity-tools.md)
* [Access rule](https://docs.opal.dev/docs/access-rules.md) membership updates
* Notification sends for escalated request or access reviews
* [Ticket propagation](https://docs.opal.dev/docs/ticket-propagation.md)

## Trigger manual syncs

### Managed resources and groups

To sync resources, groups, and users for an individual app, go to the detail page for the app in the **Inventory** and select the **Sync item** button on the upper right.

To sync all apps, resources, groups, and users, go to **Inventory** > **Apps** and select the **Sync Inventory** button the upper right.

Both of these syncs may create and remove users in Opal if they've changed in the remote app. These syncs do **not** sync user attributes.

![](https://mintcdn.com/opalsecurity/lt0M-hBs5yNe5ff5/images/docs/a94287d271b0df9525a5b42640a8030ceaeddbdb611359cb5747e9fa5041b00e-sync-item.png?fit=max\&auto=format\&n=lt0M-hBs5yNe5ff5\&q=85\&s=5fe8bb3c2a5047b4efda9e455ff6ad4e)

### User attributes

To sync user attributes from your IDP/HRIS—title, manager, etc.—go to the **Inventory** > **Users** tab and select the **Sync Users** button on the upper right. This does not create new users, but it populates attributes for existing users.

## View sync status

Use the **Sync Status** modal by clicking the last synced date on the upper right to see when objects were last synced and who started the sync. Scheduled syncs show the **Sync initiated by** field set to **Opal System**.

![](https://mintcdn.com/opalsecurity/lwwIeFbsleftxaXx/images/docs/cd506b87447cef1dba550ca33a3657e77bfd02e2c6e70e124ded51521100f0b0-sync-status.png?fit=max\&auto=format\&n=lwwIeFbsleftxaXx\&q=85\&s=cb110af22549d1231021f6e78fbd0d83)

You can also use the `GET /v1/sync_errors` [API endpoint](https://docs.opal.dev/api-reference/apps/get-sync_errors.md) to programmatically retrieve errors since the last successful sync.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.