# Employment Hero

Source: https://docs.astalty.com.au/guide/integrations/employment-hero

> Sync approved timesheets, pay groups, cost codes, and leave to Employment Hero payroll.

Scheduling add-on - This feature requires the Scheduling add-on, which is available on Astalty Premium. See How to enable Scheduling.

![](https://docs.astalty.com.au/assets/employment-hero-logo.png)

The Employment Hero integration connects Astalty to your payroll so an approved timesheet batch can be validated and sent directly, or exported as a compatible CSV.

## What It Does

- **Sync timesheet batches** directly to Employment Hero, or export them as a compatible CSV.
- **[Link your team](#employees)** to their Employment Hero profiles, and assign their pay groups in bulk.
- **Map pay groups** so each shift is paid at the right rate - including [per-shift pay group overrides](https://docs.astalty.com.au/guide/scheduling/setup/services-and-charges/paying-different-rates-for-different-shifts) and [separate pay items for work either side of a sleepover](#pay-item-mapping).
- **Map [cost codes](https://docs.astalty.com.au/guide/finance/cost-codes)** to Employment Hero locations so wages are split across your business.
- **Sync approved [leave](https://docs.astalty.com.au/guide/scheduling/leave)** into payroll when Leave is available, leave types are mapped and **Sync leave automatically** is enabled.
- **Configure sleepover shift export** behaviour to match your payroll requirements.
- **Send [custom allowances](https://docs.astalty.com.au/guide/scheduling/setup/custom-allowances)** from shifts as their own timesheet lines, each mapped to a work type.

## How It Works

Once connected and configured, the integration is driven from [timesheet batches](https://docs.astalty.com.au/guide/scheduling/timesheet-batches). When you export or sync a batch, Astalty uses the pay group attached to each shift and its optional cost code mapping. When automatic leave sync is enabled, approved Astalty leave is queued for creation in Employment Hero.

Astalty reuses the mappings on every sync. After setup, approve timesheets and send the batch.

Astalty sends the hours **as they were worked** - start and end times, paid meal breaks and unpaid breaks, travel, and sleepover work types - and doesn't classify them into penalty or overtime rates. Employment Hero decides how each line is paid, using the award or agreement you have configured there.

[On-call](https://docs.astalty.com.au/guide/scheduling/on-call-roster) is the exception. Astalty interprets the standby allowance and the time worked while on call itself, and sends each rate on its own on-call work type: standby as a number of allowances, and time worked as hours. See [On-Call](#on-call) below.

> **Paying day workers or under an EBA?**
>
> Because Employment Hero interprets the hours on its side, it can apply day-worker provisions and enterprise agreement terms that Astalty's own award interpreter doesn't model. See [If you pay day workers or under an EBA](https://docs.astalty.com.au/guide/scheduling/scheduling-faq/schads-interpretations-in-astalty#if-you-pay-day-workers-or-under-an-eba).

> **Meal breaks under SCHADS**
>
> On a SCHADS shift over 5 hours with no break recorded, Employment Hero deducts an unpaid 30-minute meal break unless its automatic meal break rule is switched off. On most shifts, a meal break recorded in Astalty replaces that deduction. See [Meal breaks on Employment Hero, PayCat and QuickBooks Payroll](https://docs.astalty.com.au/guide/scheduling/scheduling-faq/schads-interpretations-in-astalty#meal-breaks-on-employment-hero-paycat-and-quickbooks-payroll) for the exceptions.

## Connecting It

Choose Employment Hero as the payroll platform before connecting the integration.

1. **Set Employment Hero as your payroll platform.** Go to **[Settings > Scheduling](https://app.astalty.com.au/settings/scheduling)** and, under **Payroll & Awards**, set the **Platform** to **Employment Hero**.
2. **Connect the integration.** Go to **[Settings > Integrations](https://app.astalty.com.au/settings/integrations)** - the **Employment Hero** card now appears. Select **Connect** and follow the prompts to authorise the connection. Once authorised, choose the Employment Hero **business** Astalty should sync with. The list shows payroll businesses only, not employing entities; see [Businesses and employing entities](#businesses-and-employing-entities).
3. **Configure it.** Once connected, select **Configure** to link your **employees**, map your **pay groups**, **[cost codes](https://docs.astalty.com.au/guide/finance/cost-codes)**, and **[leave types](https://docs.astalty.com.au/guide/scheduling/leave)**, and to set your sleepover export behaviour.

**Cost Codes** appears only when cost codes are enabled for the account.

## Businesses and Employing Entities

When you connect the integration, Astalty asks you to choose a **business**. The list contains every Employment Hero business that the Employment Hero user who authorised the connection can access. Each business is a separate payroll file, with its own employees, settings and pay runs. Astalty syncs with one business, and everything else on this page (employees, pay groups, cost codes, leave types and timesheet batches) works within it.

### Additional Employing Entities Are Part of the Business

An **additional employing entity** is a second ABN that pays some of the employees within the same payroll file. Employment Hero keeps it inside the business, and each employee is assigned to an employing entity on their Employment Hero employee record.

Because the entity belongs to the employee rather than to the connection, there is nothing to choose in Astalty:

- The business list never shows employing entities, so a business with two entities appears as a single option.
- Timesheets and leave sync to the employee, and Employment Hero pays them under whichever entity that employee is assigned to.
- Staff from every entity in the business appear on the [Employees](#employees) page, ready to be linked.

### Checking Your Entities on the Integration Card

Once a business is selected, the Employment Hero card on **[Settings > Integrations](https://app.astalty.com.au/settings/integrations)** shows the connected **Business** and, below it, an **Additional employing entities** section. Each entity is listed by name, with its **ABN** where Employment Hero holds one, so you can confirm the entity you are looking for is already covered by the connection.

This section appears only when the connected business contains additional employing entities. A business with one ABN shows no list.

> **A missing business is an Employment Hero access setting**
>
> If a separate payroll file does not appear in the list, the Employment Hero user who authorised the connection does not have access to it. Give that user access in Employment Hero, then select **Edit** on the Employment Hero card to choose the business again. Employing entities are never the reason a business is missing.

## Employees

Timesheets sync only for team members linked to an Employment Hero employee profile, so configure this after connecting and selecting a business.

Open it from **[Settings > Integrations](https://app.astalty.com.au/settings/integrations)** > **Employment Hero** > **Configure** > **Employees**. Each row shows the person's name and email, their **Pay Group**, their **Employment Basis**, and whether they are **Linked** to an Employment Hero profile.

The page opens with the **Employment Hero Employee** filter set to **Linked**, so anyone still to be linked is hidden until you switch the filter to **Not Linked**. You can also search the list and use a row's actions menu to link one person or update their employment details.

Two bulk actions sit behind the **Bulk Actions** button in the top-right. Both open a drawer that lists up to 1,000 people, so on a team larger than that some people will not appear in either drawer and have to be handled from their own row on the page instead.

### Bulk Link Employees

**Bulk Actions** > **Bulk Link Employees** opens a drawer listing your team with an **Employment Hero Employee** dropdown on each row. Anyone whose Astalty email address matches an Employment Hero email address is matched for you and flagged as auto-matched, so usually you only need to fill the gaps.

Check the matches, set or clear any row that is wrong, then select **Link Employees**.

### Bulk Update Pay Groups

**Bulk Actions** > **Bulk Update Pay Groups** opens a drawer listing your team with their current pay group, so you can set pay groups in one pass instead of editing profiles one at a time. You need access to update HR details to use it.

To give several people the same pay group:

1. Choose the pay group from the **Pay group** dropdown at the top of the drawer.
2. Tick the rows you want it applied to - the checkbox in the header row ticks everyone.
3. Select **Apply to Selected**, which fills the chosen pay group into those rows.

Ticking rows only drives **Apply to Selected**; it does not decide what gets saved. Any row can also be set straight from its own **Pay Group** dropdown without ticking anything, and **Apply to Selected** can only set a pay group, never remove one - to take a pay group off someone, clear their own dropdown.

When the list looks right, select **Update Pay Groups** to save.

> **Update Pay Groups saves every row in the drawer**
>
> Saving is not limited to the rows you ticked - every person listed in the drawer is saved with whatever their dropdown currently shows. Rows you did not touch keep the pay group they already had, so nothing visibly changes for them. But if you **clear** a row's pay group, that row is saved as empty and the employee is left with no pay group. Check the list before saving.

The drawer builds its own list, so the filter and search on the Employees page behind it make no difference to what appears in it - there is no need to filter the page first. Anyone the drawer does not list still needs their pay group set from their own profile. If there is nobody to show, the drawer shows **No employees found**.

To see who still has no pay group at all, the [Pay Groups report](https://docs.astalty.com.au/guide/reports/pay-groups-report) lists every pay group with its assigned employees, and gathers anyone unassigned into an **Unassigned** row.

## Pay Item Mapping

When you configure a pay group, **Edit Pay Item Mapping** links each Astalty pay item to the matching Employment Hero work type. When a timesheet batch is exported, each line's hours are sent using the mapped work type so Employment Hero applies the correct rate.

Open it from **[Settings > Integrations](https://app.astalty.com.au/settings/integrations)** > **Employment Hero** > **Configure** > **Pay Groups**, then select **Edit Pay Item Mapping** on the pay group. Rows marked **Optional** only need a work type when you use that pay item.

### Sleepover Work Either Side of the Night

Two optional rows - **Pre-Sleepover** (work before a sleepover) and **Post-Sleepover** (work after a sleepover) - let you send the shifts on each side of a sleepover as their own Employment Hero work types.

![The Pay Item Mapping drawer for Employment Hero, with the optional Pre-Sleepover and Post-Sleepover rows highlighted, mapped to Pre-sleepover rate for support workers and Post-sleepover rate for support workers, below rows such as Ordinary Hours, Sleepover and Active Overnight.](https://docs.astalty.com.au/assets/employment-hero-pay-item-mapping-pre-post-sleepover.png)

Under SCHADS, classify the active work on each side of a sleepover using its actual start and finish, weekend/public holiday status and overtime rules. It is not always afternoon pay before and ordinary pay after. Previously the whole overnight engagement was sent using the sleepover work type, so Employment Hero applied night-shift rates across it and you had to re-type the pay categories by hand each pay run. When these rows are mapped, Astalty tags the shifts on either side of the sleepover with the mapped work types, so Employment Hero can apply the rules you configure for each side.

> **This mapping is optional**
>
> The Pre-Sleepover and Post-Sleepover rows are optional. If both are left unmapped, work on either side falls back to the existing ordinary-hours export behaviour.

> **Map both sides, or neither**
>
> Map both rows together. If only one of the two is mapped, validating a timesheet batch warns you - because the unmapped side would export using the ordinary-hours work type instead of the intended pre/post-sleepover work type.

### 24-Hour Care

The optional **24-hour Care** row is for SCHADS home care workers on [24-hour care shifts](https://docs.astalty.com.au/guide/scheduling/scheduling-faq/schads-interpretations-in-astalty#24-hour-care). It appears once you have, or have had, a worker on a SCHADS home care classification.

For each of these shifts, Astalty sends **8 units** of the mapped work type instead of the hours worked. Configure the corresponding work type and rate in Employment Hero, then verify the resulting pay run. Approved time past the 24-hour period is sent as a separate **Ordinary Hours** line with its own start and finish. A 24-hour care shift cancelled with pay sends the same 8 units, with any time past the 24-hour period on **Paid Cancellation** instead of **Ordinary Hours**.

> **Map it before exporting 24-hour care shifts**
>
> Validating a timesheet batch that holds a home care worker's 24-hour care shift asks for this mapping, and for **Ordinary Hours** when the shift runs past its 24-hour period.

### Shifts Cancelled With Pay

A shift cancelled with pay sends the same lines it would have sent had it been worked. Lines that carry hours, such as ordinary hours and the work either side of a sleepover, use the **Paid Cancellation** work type so payroll can see the cancellation. Sleepover, active overnight, 24-hour care, travel and kilometre lines keep their own work types.

### On-Call

A pay group whose workers use the [On-Call Roster](https://docs.astalty.com.au/guide/scheduling/on-call-roster) has on-call rows for its award: the standby allowance rows, the SCHADS **Remote Work** rows, **On Call Overtime**, **On Call Ordinary** for Nurses and Health Professionals, and **On Call Overtime Adjustment**. On Call Ordinary is used for nurses at RN levels 4 and 5 and when a casual minimum engagement is worth more than recall pay.

- Map each standby row to a work type on a fixed-rate pay category.
- Map the **Remote Work**, **On Call Overtime** and **On Call Ordinary** rows to a custom work type that pays a pay category of its own, or one of Employment Hero's own work types on a fixed-rate pay category. Weekday remote work and weekday on-call ordinary hours may instead use a custom work type on the employee's primary pay category. On a casual pay group, give those rows pay categories carrying the full casual percentage on the base rate, under **Casual - Ordinary Hours**: for example 175% rather than 150% for SCHADS, or 187.5% for Nurses and Health Professionals.
- Map **On Call Overtime Adjustment** to a work type on a pay category of its own with no loadings, super or leave accrual, under the employee's ordinary hours category (**Casual - Ordinary Hours** for casuals). When on-call hours move a later shift's hours into overtime, the extra pay is sent there as hours at the base rate. It is also sent when the time paid for a worker's recall in the previous pay period, including its minimum, runs into the batch's first day and pushes that day's shift hours into overtime.

On-call is sent as units per day on each row's work type, not as timed lines. Validating a batch names any on-call row the batch needs that is not mapped, and any work type that cannot price those units. See [Mapping On-Call Pay Items](https://docs.astalty.com.au/guide/scheduling/on-call-roster#mapping-on-call-pay-items).

## Custom Allowances

When [custom allowances](https://docs.astalty.com.au/guide/scheduling/setup/custom-allowances) are in use, each allowance on a shift is sent as its own timesheet line: a number of units on the work type the allowance is mapped to, dated on the shift's approved start date, with the allowance name as the comment. Employment Hero pays the units at that work type's rate.

Map each allowance from **[Settings > Integrations](https://app.astalty.com.au/settings/integrations)** > **Employment Hero** > **Configure** > **Custom Allowances**. Choose a work type that pays its own pay category, not the employee's primary pay category. A timesheet batch with an unmapped allowance on any of its shifts cannot be sent to Employment Hero or exported as an Employment Hero CSV. See [Mapping an Allowance to a Payroll Work Type](https://docs.astalty.com.au/guide/scheduling/setup/custom-allowances#mapping-an-allowance-to-a-payroll-work-type).

## Sending Timesheet Batches

After employees and pay groups are mapped, open an approved [timesheet batch](https://docs.astalty.com.au/guide/scheduling/timesheet-batches) and use **Actions**:

- **Send to Employment Hero** validates the batch and creates timesheets. The sync results show completed lines and employee-specific failures.
- **Replace in Employment Hero** appears after the batch has been sent and resends it using replace mode.
- **Export Employment Hero Timesheet (CSV)** validates the batch and creates a file for manual import.

Validation runs before an API send. Blocking errors stop it. Warnings can be reviewed before selecting **Export anyway**. Sending the same batch again can create duplicate entries; use **Replace in Employment Hero** when correcting a prior send.

> **Replacing is destructive**
>
> **Replace in Employment Hero** instructs the payroll service to replace existing timesheets for every employee in the batch date range. This includes entries created directly in Employment Hero. Review the date range and batch contents before confirming.
>
> Astalty also removes lines that an earlier send of this batch created for a worker the current batch no longer sends. Validation names those lines first. Employment Hero keeps any line a pay run has already processed, and the sync results name anything it refused to clear.

If you delete a batch after sending it, its lines can remain in Employment Hero. When you validate another batch covering those dates, Astalty warns for each affected worker. Select **Remove lines**, review the worker and date range, then select **Remove from Employment Hero** if those lines should not be paid. Employment Hero keeps any line a pay run has already processed and Astalty reports each line it could not remove.

## Switching From Another Payroll Platform

Changing **Settings > Scheduling > Payroll & Awards > Platform** changes labels and the authorisation host, but it does not remove the saved payroll credentials or selected business.

1. Open the existing payroll integration under **Settings > Integrations** and select **Disconnect**.
2. Change **Platform** to the new payroll provider.
3. Connect the new provider, choose its business and review every employee, pay group, cost code and leave mapping before sending a batch.
