> For the complete documentation index, see [llms.txt](https://docs.securepass.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.securepass.me/documentation/admin-user-guide/scheduler-and-automation.md).

# Scheduler and automation

Schedulers run the jobs that keep SECUREpass in step with the systems it is connected to. A schedule pulls users, groups, roles and resources across from a connected source — or, when a connection is being retired, erases or deletes what came from it.

Every job runs in the background, and you are emailed its result when it finishes.

## The Manage Schedulers page

Select **Schedulers** in the left navigation.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/8nIt2B8LEI5h1RGVyEJ1/assets/01.png)

Three tabs track a job through its life:

| Tab              | Shows                      |
| ---------------- | -------------------------- |
| Pending          | Scheduled, not yet started |
| Queued/Executing | Running now                |
| Executed         | Finished, with its outcome |

The table lists each job's ID, type, category, repository, the date and time it runs, whether it recurs, its frequency, and who created it. The actions at the end of the row are covered in [Managing a schedule](#managing-a-schedule).

## Creating a schedule

Select **Create Schedule**.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/sE6ljkD1YXKt7iPYYHSt/assets/02.png)

### Choosing the type

**Type** is the first decision and it drives everything else on the form.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/oXyVp9FJuUbCpLkhpgyr/assets/03.png)

| Type       | What it does                                                                | Category set automatically |
| ---------- | --------------------------------------------------------------------------- | -------------------------- |
| **Sync**   | Brings users, groups, roles and resources across from the source            | Sync Connection            |
| **Erase**  | Removes the data that came from the source, leaving the connection in place | Erase Sync Data            |
| **Delete** | Permanently removes the connection **and** everything linked to it          | Delete Connection          |

**Category** is read-only. It follows from the type.

{% hint style="warning" %}
**Erase** and **Delete** are not the same. **Erase** clears the synced data but keeps the connection, so a later sync can repopulate it. **Delete** removes the connection itself along with its data, and there is nothing left to sync from.
{% endhint %}

## Scheduling a sync

Select **Sync** as the type. The category fills in as *Sync Connection*.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/Aoe35qt8QiLLy2Gzzua5/assets/04.png)

| Field         | What to choose                                                                            |
| ------------- | ----------------------------------------------------------------------------------------- |
| Repository    | The connected system to sync from — the integrations you have configured                  |
| Connection    | The specific connection under that repository                                             |
| Sync Type     | **Full** brings everything across. **Partial** brings only what is new since the last run |
| Recurrence    | **Yes** to repeat on a schedule, **No** for a single run                                  |
| Date and Time | When the job runs                                                                         |

Select **Save**. The schedule appears in the **Pending** tab.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/e7Zmcrx63ItulQ6vhAbm/assets/05.png)

{% hint style="info" %}
Use **Full** for the first sync of a new connection and **Partial** thereafter. A full sync against a large directory is slow, and there is nothing to gain from repeating it nightly.
{% endhint %}

## Scheduling an erase or a delete

Both follow the same short form. Neither has a Sync Type or a Recurrence — they run once, on the date and time you set.

{% tabs %}
{% tab title="Erase" %}
Select **Erase**. The category fills in as *Erase Sync Data*. Choose the repository and connection, set the date and time, and select **Save**.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/VrFNNge6daI20NVMnym6/assets/06.png)
{% endtab %}

{% tab title="Delete" %}
Select **Delete**. The category fills in as *Delete Connection*. Choose the repository and connection, set the date and time, and select **Save**.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/XnnRncZ8DcZZWG8iNVGe/assets/07.png)
{% endtab %}
{% endtabs %}

## Managing a schedule

Three actions sit on each row of the Pending list — edit, trigger now, and delete.

{% tabs %}
{% tab title="Edit" %}
Reopens the schedule so you can change the repository, connection, sync type, recurrence, or the date and time.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/NtYU51Fe5U0IvO2nB528/assets/08.png)

Select **Update**.
{% endtab %}

{% tab title="Trigger now" %}
Runs the job immediately rather than waiting for its scheduled time. A confirmation is asked first.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/TdwceNQ4tNiHIpQjQAUD/assets/09.png)

Select **Execute**. The job moves to **Queued/Executing**.
{% endtab %}

{% tab title="Delete" %}
Removes the schedule. This deletes the *job*, not the connection or its data.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/hVXTKkaZJ0a34XMK8zfo/assets/10.png)

{% hint style="warning" %}
Deleting a schedule cannot be undone. If the job was recurring, nothing will run in its place until you create a new one.
{% endhint %}
{% endtab %}
{% endtabs %}

## Checking the result

When a job completes it moves to the **Executed** tab, and SECUREpass emails a **Scheduler status update**.

![](https://content.gitbook.com/content/W2srIAMN6RKFwvuEorV5/blobs/s5yVEOwRCJFjP5Bj1Ypl/assets/11.png)

The email names the repository, the run time and the job ID, then breaks the result down by object type — users, groups, cloud resources, roles, risk profiles and applications — showing how many records were **saved**, how many **updated**, and the **total** processed, with an overall success or failure banner.

This is the fastest way to tell whether a sync did what you expected. A run that reports success but zero records processed usually means the connection is reaching the source but the scope is wrong.

Three job types, one form. Sync keeps things current, erase clears the data, delete removes the connection — and the status email is where you find out which of those actually happened.
