> For the complete documentation index, see [llms.txt](https://docs.intuneassistant.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intuneassistant.cloud/extensions/worker/worker-templates.md).

# Worker Templates

## What Is This Page?

The **Job Templates** page is where reusable packages of worker jobs are created, published, adopted, and applied. A template bundles one or more job definitions — each with a job type, name, schedule, and default configuration — so that the same set of jobs can be deployed consistently across many workers without configuring each one by hand.

There are two distinct roles in the template system:

| Role               | What They Do                                                                      |
| ------------------ | --------------------------------------------------------------------------------- |
| **Platform Admin** | Creates and publishes platform templates to the shared MSP Library                |
| **MSP Admin**      | Adopts templates from the library, creates their own, and applies them to workers |

{% hint style="info" %}
If you are a Platform Admin, see the [Platform Admin section](#platform-admin) below. If you are an MSP, see the [MSP Admin section](#msp-admin).
{% endhint %}

***

## Platform Admin

### What Are Platform Templates?

Platform templates are curated job packages that the Intune Assistant platform team creates and maintains. They represent best-practice configurations for common worker job scenarios.

A platform template:

* Is visible to MSPs only after it has been **published** to the library.
* Can contain one or more job definitions (items), each specifying a job type, schedule, and default configuration values.
* Acts as a reference point. When an MSP adopts a platform template, they receive an independent copy. Changes you make to the platform template after adoption do not affect MSP copies.

***

### Creating a Platform Template

{% stepper %}
{% step %}

## Open the Templates page

Navigate to **Admin > Templates** (`/admin/templates`).
{% endstep %}

{% step %}

## Start a new template

Click **New Template** in the top-right corner. A side panel opens on the right.
{% endstep %}

{% step %}

## Fill in the template details

| Field           | Required | Description                                                        |
| --------------- | -------- | ------------------------------------------------------------------ |
| **Name**        | Yes      | A short, descriptive name visible to MSPs in the library           |
| **Description** | No       | A longer explanation of what this template does and when to use it |
| {% endstep %}   |          |                                                                    |

{% step %}

## Create the template

Click **Create Template** at the bottom of the side panel.

The template is saved with `Published = No`. It is not yet visible to MSPs. You can now open it to add jobs.
{% endstep %}
{% endstepper %}

***

### Adding and Editing Jobs on a Template

All job management happens inside the template's edit panel. Changes are staged locally and only sent to the server when you confirm them.

{% stepper %}
{% step %}

## Open the edit panel

Click the **pencil icon** on the template card, or click **Edit jobs** in the jobs section of the card. The edit panel slides in from the right.
{% endstep %}

{% step %}

## Add a job

Click **Add job** in the Jobs section of the panel. An inline form appears directly in the panel.

| Field        | Required | Description                                                           |
| ------------ | -------- | --------------------------------------------------------------------- |
| **Job Type** | Yes      | The type of automated job (e.g., compliance report, device inventory) |
| **Job Name** | Yes      | A human-readable label for this job slot                              |
| **Interval** | Yes      | How often the job runs. Common values: Daily, Weekly, Monthly.        |

Click **Add job** to stage the new job. It appears in the list with a green **New** badge — it has not been saved yet.
{% endstep %}

{% step %}

## Edit or remove existing jobs

Each job row has a pencil icon (edit) and an X icon (remove).

* **Edit** — opens the inline form pre-filled with the job's current values. Changes are highlighted with an amber **Modified** badge.
* **Remove** — marks the job with a red **Removed** badge and strikethrough. You can restore it before saving by clicking **Restore**.
  {% endstep %}

{% step %}

## Review and save

When you are done making changes, click **Review & Save** at the bottom of the panel.

The panel switches to a review screen showing a summary of every change: modified properties, added jobs, removed jobs. Review the list, then click **Confirm & Save** to commit. Click **Back** to return to editing without saving.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
You can add multiple jobs to a single template. Each job can have a different type and schedule.
{% endhint %}

{% hint style="info" %}
If you close the panel with unsaved changes, you will be asked whether to discard them or keep editing.
{% endhint %}

***

### Publishing a Template

Publishing makes the template visible to MSPs in the template library. A template must be published before any MSP can adopt it.

{% stepper %}
{% step %}

## Open the template card

Find the template in the list at **Admin > Templates**.
{% endstep %}

{% step %}

## Publish it

Click **Publish** in the template card header.
{% endstep %}

{% step %}

## Confirm the status change

The template status changes to **Published to Library** with a green badge.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Publishing is immediate and visible to all MSPs.** As soon as you publish, the template appears in every MSP's library tab. If the template is not ready, keep it in draft (unpublished) until it is.
{% endhint %}

***

### Unpublishing a Template

Unpublishing removes the template from the MSP library. MSPs who have already adopted it are not affected — their copies are independent.

{% stepper %}
{% step %}

## Open the template card

Find the published template in the list.
{% endstep %}

{% step %}

## Unpublish it

Click **Unpublish** in the template card header.
{% endstep %}

{% step %}

## Confirm the status change

The status badge changes back to **Draft**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Unpublishing does not delete any MSP copies. It only prevents new MSPs from finding the template in the library going forward.
{% endhint %}

***

### Editing a Template

To change a template's name, description, active status, or jobs, click the **pencil icon** on the template card. The edit panel opens on the right.

All changes — including property edits and job add/edit/remove — are staged locally inside the panel. Nothing is saved until you click **Review & Save** and confirm on the review screen.

{% hint style="info" %}
Editing a platform template does not change any MSP copies. MSP copies are taken at adoption time and are isolated from future platform changes.
{% endhint %}

***

### Deleting a Template

{% stepper %}
{% step %}

## Find the template

Find the template in the list at **Admin > Templates**.
{% endstep %}

{% step %}

## Open the delete panel

Click the **trash icon** on the template card. A side panel opens asking you to confirm.
{% endstep %}

{% step %}

## Confirm the deletion

Review the warning in the panel, then click **Delete Template**.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Deleting a platform template is permanent. The platform template is removed from the admin view and from the library. However, any MSP copies that were created by adopting this template continue to exist and function normally. MSPs will not be notified that the source template was deleted.
{% endhint %}

***

## MSP Admin

### The Template Library Tab

The **Library** tab shows all platform templates that:

* Have been published by the platform team.
* Have not yet been adopted by your organisation.

Once you adopt a template it moves out of the Library tab and appears in your **My Templates** tab. The Library tab only shows templates that are still available for you to adopt.

***

### Adopting a Template from the Library

Adopting a template creates your own private copy of a platform template. Your copy is completely independent — the platform team cannot modify it after you adopt it.

{% stepper %}
{% step %}

## Open the Library tab

Go to **Worker > Templates** and open the **Library** tab.
{% endstep %}

{% step %}

## Adopt the template

Find the template you want and click **Adopt**.
{% endstep %}

{% step %}

## Wait for confirmation

The button shows a loading spinner while the copy is created. When done, the view automatically switches to **My Templates** where your new copy appears with an **Adopted** badge.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
You can only adopt each platform template once. If the Adopt button is not visible, you have already adopted this template.
{% endhint %}

{% hint style="info" %}
After adopting, the template is yours to edit freely. Add jobs, remove jobs, change the name — none of these changes affect the original platform template or any other MSP's copy.
{% endhint %}

***

### My Templates Tab

The **My Templates** tab shows all templates owned by your organisation. This includes:

* Templates you adopted from the library.
* Templates you created from scratch.

Each template card shows the template name, version, jobs, and status badges.

***

### Creating a Template from Scratch

{% stepper %}
{% step %}

## Open My Templates

Go to **Worker > Templates** and open the **My Templates** tab.
{% endstep %}

{% step %}

## Create a new template

Click **New Template** in the top-right corner. A side panel opens on the right.
{% endstep %}

{% step %}

## Fill in the fields

| Field           | Required | Description                   |
| --------------- | -------- | ----------------------------- |
| **Name**        | Yes      | Display name for the template |
| **Description** | No       | What this template is for     |
| {% endstep %}   |          |                               |

{% step %}

## Create the template

Click **Create Template** at the bottom of the panel.

The template is created empty (no jobs). Open the edit panel to add jobs before applying it to a worker.
{% endstep %}
{% endstepper %}

***

### Adding and Editing Jobs on Your Template

{% stepper %}
{% step %}

## Open the edit panel

Click the **pencil icon** on the template card, or click **Edit jobs** in the jobs section. The edit panel slides in from the right.
{% endstep %}

{% step %}

## Add a job

Click **Add job** inside the panel. Fill in the inline form:

| Field        | Required | Description                                           |
| ------------ | -------- | ----------------------------------------------------- |
| **Job Type** | Yes      | The type of automated job                             |
| **Job Name** | Yes      | A human-readable label for this job slot              |
| **Interval** | Yes      | How often the job runs (Daily, Weekly, Monthly, etc.) |

Click **Add job** in the form to stage it. A green **New** badge marks it as pending.
{% endstep %}

{% step %}

## Edit or remove existing jobs

Use the pencil icon to edit a job inline, or the X icon to mark it for removal. Removed jobs show a strikethrough and a red **Removed** badge — click **Restore** to undo before saving.
{% endstep %}

{% step %}

## Review and save

Click **Review & Save**. The panel shows a summary of all staged changes. Click **Confirm & Save** to commit, or **Back** to keep editing.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
**Auto-sync on add:** When you add a job to a template that is already applied to one or more workers, the new job is automatically pushed to those workers immediately. You do not need to re-apply the template.
{% endhint %}

{% hint style="success" %}
**Auto-sync on remove:** Removing a job from a template automatically disables that job on all workers the template has been applied to. The job history on each worker is preserved — it is disabled, not deleted.
{% endhint %}

{% hint style="info" %}
If you close the panel with unsaved changes, you will be asked whether to discard them or keep editing.
{% endhint %}

***

### Applying a Template to a Worker

Applying a template stamps it onto a specific worker — it creates one job configuration row on the worker for each job in the template.

{% stepper %}
{% step %}

## Open the template

Find the template in **My Templates**.
{% endstep %}

{% step %}

## Start the apply flow

Click **Apply** on the template card. A side panel opens on the right.
{% endstep %}

{% step %}

## Select a worker and optional overrides

Select the target worker from the dropdown. The dropdown shows only approved workers belonging to your organisation.

Optionally override the email settings:

| Field                        | Description                                                                                                                                |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **Recipient Email Override** | If set, all jobs from this template on this worker send reports to this address.                                                           |
| **Sender Email Override**    | If set, this address is used as the sender for all jobs from this template on this worker, overriding the worker's default sender address. |
| {% endstep %}                |                                                                                                                                            |

{% step %}

## Apply the template

Click **Apply** at the bottom of the panel.

The worker immediately receives the new job configurations. The panel shows a success confirmation when done.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Applying the same template to the same worker twice is blocked.** If the template is already applied to a worker (with at least one enabled job), the Apply action will return an error. To change job configurations on an already-applied template, use the edit panel to add or remove jobs — those changes auto-sync.
{% endhint %}

***

### Template Status Badges

Templates in the **My Templates** list show status badges:

| Badge                | Meaning                                                                                  |
| -------------------- | ---------------------------------------------------------------------------------------- |
| **Adopted**          | The template was adopted from the platform library                                       |
| **Update available** | The platform template has been updated since you adopted it; you can sync the changes    |
| **Inactive**         | The template is disabled; it cannot be applied but existing applied jobs continue to run |

***

## Versioning

## Frequently Asked Questions

<details>

<summary>Will platform template updates affect my adopted copy?</summary>

No. When you adopt a template, you receive a complete independent copy. Any changes the platform team makes to the original template after your adoption — adding jobs, removing jobs, renaming it — have no effect on your copy.

</details>

<details>

<summary>Can I edit an adopted template?</summary>

Yes. After adoption, the template belongs to your organisation. You can rename it, change the description, add new jobs, and remove jobs using the edit panel. There is no link back to the platform original.

</details>

<details>

<summary>What happens to worker jobs if I delete a template?</summary>

If you delete a template from **My Templates**, the template definition is removed. However, the job configuration rows that were already created on workers are not automatically disabled at deletion time. Check your workers' job lists after deleting a template if you need to clean up running jobs manually.

{% hint style="info" %}
Contrast this with removing an individual job (item) from a template via the edit panel — that action does auto-sync and disables the matching jobs on affected workers.
{% endhint %}

</details>

<details>

<summary>I added a job to my template but one of my workers did not receive it. Why?</summary>

Auto-sync only pushes to workers that had the template applied before you added the job. If a worker was never given this template, it will not receive the new job. Apply the template to that worker separately.

</details>

<details>

<summary>Can I apply a template to more than one worker?</summary>

Yes. Apply the template to each worker individually using the **Apply** action on the template card. Each worker gets its own independent set of job config rows, and each can have different email overrides.

</details>

<details>

<summary>Can I see which workers a template is applied to?</summary>

Expand the **Workers** section at the bottom of a template card to see all workers the template has been applied to, along with their current job status.

</details>

<details>

<summary>What does the Sender Email Override do?</summary>

By default, jobs use the sender address configured on the worker control record. The override lets you specify a different address for all jobs from this template on a particular worker without changing the worker's global sender address.

</details>

<details>

<summary>I closed the edit panel and lost my changes. What happened?</summary>

When you close the edit panel with unsaved changes, a prompt asks whether to discard or keep editing. If you clicked **Discard**, the staged changes were cleared. Changes are only persisted when you complete the **Review & Save** → **Confirm & Save** flow.

</details>

***

## Related Pages

* [Worker Overview](broken://pages/800c082b6c3a4115dd5f7320b9a76d5f7d9713ce) — view and approve registered workers
* [Worker Licenses](broken://pages/32f51ba6d4e454646e37cfc6d9b374a6f1db61f1) — manage worker licenses
* [Job Templates Architecture](broken://pages/678f0a4a790420d6e0275858afdea9fcc409a804) — technical reference for developers


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.intuneassistant.cloud/extensions/worker/worker-templates.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
