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

# ELMO API

> Look up and update staff in your clients' ELMO: managers, departments, positions, start dates, users and onboarding; personal, payroll, leave and recruitment data when you turn them on

The common use is an HR change ticket: a client's ELMO sends a change of manager form to your PSA, and the agent reads the staff member and their new manager in ELMO, then sets the manager and profile fields in Microsoft Entra and updates the client's SharePoint list.

> [!NOTE]
>
> Automatically enabled when you configure ELMO permissions in your agent workflow. ELMO is connected per client, so the agent calls the ELMO of the ticket's company.

## What it does

* Find a user by work email or name, and read their manager, department, position, location, legal entity, start, service start and end dates, role and custom fields
* Create a user and update one, through ELMO's user events, and read each event's result
* Activate and deactivate a user
* Find, create and update onboarding users, and convert one to a user
* Read, create and update departments, locations and positions, and read legal entities
* Read and update a user's personal contact details
* Read employment details (employment type, pay rate, pay cycle, termination details, emergency contacts) and payroll cycles
* Read leave types and leave requests
* Read recruitment candidates

Neo replaces tax file numbers, bank account details and superannuation account and membership numbers in every ELMO answer, so the agent never reads them, and it refuses a write that sends the replacement back.

## How the agent changes a department, location or position

The agent sends only the fields that change. Before the update, Neo reads the stored record and fills in each field the agent left out, so an update never clears a field by accident.

## Writes that always ask a technician

Three updates wait for a technician's approval under every access profile, Full Automation included, whatever the group's own approval setting:

* Updating a user
* Updating an onboarding user
* Updating a user's personal contact details

ELMO does not say what these updates do with a field the request leaves out, and Neo cannot fill those fields in from the stored record, so a technician checks each one.

## Permission groups

| Group | Access levels | Covers |
| - | - | - |
| Users | Disabled, Read Only, Read / Write | Staff records; create, update, activate and deactivate a user |
| Personal Contact Details | Disabled, Read Only, Read / Write | A user's home address, personal email and phones |
| Onboarding Users | Disabled, Read Only, Read / Write | People in ELMO onboarding; create, update, convert to a user |
| Org Structure | Disabled, Read Only, Read / Write | Departments, locations, positions, legal entities |
| Employment & Payroll | Disabled, Read Only | Employment details and payroll cycles |
| Leave | Disabled, Read Only | Leave types and leave requests |
| Recruitment | Disabled, Read Only | Recruitment candidates |

## Access profiles

| Profile | What runs on its own | What asks a technician |
| - | - | - |
| **Read Only** | Reads of users, onboarding users and the org structure | No write is allowed |
| **Helpdesk** | The same reads | Every change to users, onboarding users or the org structure |
| **IT Admin** | Creating, activating and deactivating users, onboarding changes, org structure changes | Updating a user or an onboarding user |
| **Full Automation** | Every other supported call, in every group | Updating a user, an onboarding user or personal contact details |

Read Only, Helpdesk and IT Admin keep Personal Contact Details, Employment & Payroll, Leave and Recruitment off. Turn one on by hand for an agent that needs it.


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