Skip to content

Connect Omni HR to ChatGPT: Manage Employee Records and Reviews

Nidhi KN Nidhi KN 9 min read AI & Agents
Elaichi from the team behind Truto

Omni HR in ChatGPT, in about a minute.

The best way to connect Omni HR to ChatGPT is Elaichi: connect Omni HR to Elaichi once, then add Elaichi to ChatGPT as a connector. Two steps, about a minute, with a 14‑day free trial and no credit card required.

  • No credit card required
  • 500+ connectors
  • Credentials vaulted, never read back
  1. Start your free trial

    14 days free, no credit card required.

  2. Connect Omni HR

    Once, in Elaichi. ChatGPT never gets more access than you have.

  3. Add Elaichi to ChatGPT

    In ChatGPT, open Plugins, press +, and paste the URL into Server URL. Sign in and approve.

    https://api.elaichi.ai/mcp
TrutoFor product teams

Building Omni HR into your own product? This guide is for you.

Connect Omni HR to ChatGPT via a Truto MCP server to automate HR workflows. This guide covers overcoming Omni HR's API quirks, generating secure MCP endpoints, configuring ChatGPT, and building AI-driven HR operations.

The developer guide

Learn how to connect Omni HR to ChatGPT using a managed MCP server. Execute employee workflows, manage time-off, and track expenses using natural language.

If you want to connect Omni HR to ChatGPT so your AI agents can lookup employee records, manage time-off requests, track expense approvals, and orchestrate performance reviews, you need a Model Context Protocol (MCP) server.

If your team uses Claude, check out our guide on connecting Omni HR to Claude or explore our broader architectural overview on connecting Omni HR to AI Agents.

Giving a Large Language Model (LLM) read and write access to a core Human Resources Information System (HRIS) is high-stakes engineering. Omni HR contains highly sensitive PII, complex payroll data, and strict role-based access constraints. You either spend weeks building, securing, and maintaining a custom MCP server to translate LLM JSON arguments into Omni HR's specific payload structures, or you use a managed infrastructure layer to dynamically derive tools from documentation.

This guide breaks down exactly how to use Truto to generate a secure, authenticated MCP server for Omni HR, connect it natively to ChatGPT, and execute complex HR workflows using natural language.

The Engineering Reality of the Omni HR API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, implementing it against Omni HR's API requires dealing with several domain-specific integration quirks.

If you decide to build a custom MCP server for Omni HR, you own the entire API lifecycle. Here are the specific challenges your middleware will need to handle:

Non-Standard Date Formatting

LLMs default to generating dates in standard ISO-8601 format (YYYY-MM-DDTHH:mm:ssZ). Omni HR explicitly rejects this for many endpoints. Across its expense, time-off, and employee profile endpoints, the API requires strict DD/MM/YYYY formatting (and DD/MM/YYYY hh:mm:ss for datetimes). If you build a custom server, you must write interceptors to parse LLM-generated ISO strings and convert them to Omni's localized format before passing the request upstream.

Reading Data via POST Requests

Standard REST principles dictate that read operations use GET. Omni HR breaks this pattern for certain high-volume read endpoints. For example, admin_form_submissions.list and roster_shifts.list require a POST request to read data, expecting pagination cursors (page and page_size) within the JSON body rather than as query parameters. Your MCP server must maintain a map of which "read" tools actually require POST methods under the hood.

Duplicate Parameter Injection

Certain Omni HR routes, particularly in the performance module (e.g., listing employee active review cycles), demand the user_id to be present in BOTH the URL path and the query string simultaneously. An LLM will typically only supply a parameter once. Your integration layer must intelligently duplicate these arguments during the tool-call execution phase to satisfy the upstream requirement.

Unversioned vs v1.1 Payloads

Omni HR is actively transitioning core schemas. Creating an employee relies on complex, nested JSON payloads (base data, emails, phones, IDs, addresses, emergency contacts). The API maintains a legacy unversioned endpoint alongside a v1.1 endpoint (employees_v1_1), which have different structural requirements. Exposing both to an LLM without strict schema definitions will result in hallucinated parameter mappings.

Rate Limits and Error Handling

When an AI agent enters a multi-step planning loop (e.g., paginating through hundreds of expense records to build a report), it can quickly exhaust API quotas. Truto does not retry, throttle, or apply backoff on rate limit errors. When the upstream Omni HR API returns an HTTP 429, Truto passes that error directly to the caller. Truto normalizes the upstream rate limit information into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. Your agent framework (e.g., LangChain, AutoGen) is entirely responsible for reading these headers and managing backoff/retry logic.

Step 1: Generating the Omni HR MCP Server

Truto dynamically generates MCP tools based on the active integration's API documentation and endpoint definitions. Because the server is hosted by Truto, there is no infrastructure to deploy. The server URL contains a cryptographic token that securely authenticates requests and routes them to the correct Omni HR tenant.

You can generate an MCP server via the Truto dashboard or programmatically via the API.

Method A: Via the Truto UI

  1. In the Truto dashboard, navigate to Integrated Accounts and connect an Omni HR account.
  2. Click into the specific integrated account, then click the MCP Servers tab.
  3. Click Create MCP Server.
  4. Name your server (e.g., "ChatGPT Omni HR Integration").
  5. Select your desired configuration filters. For a read-only agent, select the read method. You can also filter by specific tags like employee, time-off, or expense.
  6. Click Create and copy the generated MCP server URL (it will look like https://api.truto.one/mcp/a1b2c3d4...). Treat this URL as a secret.

Method B: Via the API

If you are building an AI product and need to provision Omni HR access for your end-users dynamically, you can use the Truto token management API.

curl -X POST https://api.truto.one/integrated-account/<INTEGRATED_ACCOUNT_ID>/mcp \
  -H "Authorization: Bearer <YOUR_TRUTO_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "ChatGPT Omni HR Server",
    "config": {
      "methods": ["read", "write"],
      "tags": ["employee", "time-off", "expense"]
    }
  }'

The API returns a JSON response containing the connection URL. Truto handles the heavy lifting of mapping the selected methods and tags to Omni HR's underlying schema definitions.

{
  "id": "mcp-7a8b9c",
  "name": "ChatGPT Omni HR Server",
  "config": { "methods": ["read", "write"] },
  "expires_at": null,
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f67890"
}

Step 2: Connecting the MCP Server to ChatGPT

Once you have the scoped URL, connecting it to your AI environment is a matter of configuration.

Method A: Via the ChatGPT UI (Custom Connectors)

If you are using ChatGPT Enterprise, Edu, or Plus with Developer Mode enabled, you can add custom MCP endpoints directly into the chat interface:

  1. In ChatGPT, click your profile and navigate to Settings -> Apps -> Advanced settings.
  2. Ensure Developer mode is toggled on.
  3. Under the MCP servers or Custom connectors section, click Add a new server.
  4. Name: "Omni HR AI Connector"
  5. Server URL: Paste the https://api.truto.one/mcp/... URL generated in the previous step.
  6. Save the configuration. ChatGPT will instantly perform a JSON-RPC handshake with Truto, fetch the tool schemas, and make them available in your session.

Method B: Via Manual Config File (for local agents and CLI frameworks)

If you are running local AI agents or using a desktop client (like Claude Desktop or Cursor) alongside ChatGPT workflows, you can connect via a standard SSE configuration file using the @modelcontextprotocol/server-sse runner.

Add this to your mcp_config.json:

{
  "mcpServers": {
    "omni-hr-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f67890"
      ]
    }
  }
}

Omni HR Hero Tools for AI Agents

Truto auto-generates dozens of granular tools for the Omni HR API. Rather than overwhelming the LLM context window with all of them, use the methods and tags configuration during server creation to scope the agent to specific domains.

Here are the highest-leverage hero tools your agents can use. For the complete list of available operations and schema definitions, see the Omni HR integration page.

list_all_omni_hr_employees

This is the core directory lookup tool. It provides paginated search capabilities to find employees across locations, departments, companies, and teams. Because Truto standardizes the pagination schemas, the LLM intrinsically understands how to pass next_cursor values to iterate through large corporate directories.

"Find all active software engineers in the London office and retrieve their system IDs."

get_single_omni_hr_employee_by_id

Retrieves the complete profile for an individual worker, including their base data, contact information, and primary reporting lines. This is typically chained immediately after a list/search operation.

"Look up the full profile for the employee with system ID 84729 and tell me who their direct manager is."

create_a_omni_hr_employees_v_1_1

Executes the complex, unversioned payload required to provision a new hire in the HRIS. The JSON schema generated by Truto enforces the deeply nested structure required by Omni HR (base data, email info, employment status, job assignments).

"Create a new employee record for Sarah Connor. Her start date is 15/10/2026, she is joining the engineering department in the Berlin location as a Senior DevOps Engineer."

list_all_omni_hr_time_off_requests

Fetches an individual employee's time-off requests, including the status of multi-level approval workflows. Note that Omni HR does not provide a single organization-wide time-off list; this tool requires a specific user_id.

"Pull the time-off requests for user ID 1092. How many days of PTO have they taken this calendar year, and are there any requests still pending approval?"

list_all_omni_hr_expense_submissions_v_2

Lists submitted expenses organization-wide. The agent can apply filters based on status, location, department, and date ranges. This tool is critical for financial audit and reconciliation workflows.

"Fetch all pending expense submissions for the marketing department submitted between 01/01/2026 and 31/01/2026."

omni_hr_expenses_submit

Creates a new expense record and submits it directly into the configured approval flow. The agent must supply the correct category mappings and amounts.

"Submit a new expense for user 8832 for $450 USD under the 'Travel and Accommodation' category, with the receipt date of 12/03/2026."

Workflows in Action

When you expose these capabilities to an LLM, you transition from basic chatbots to autonomous HR orchestration. Here are two real-world workflows.

Scenario 1: Autonomous New Hire Orchestration

When a candidate signs an offer letter, HR teams manually provision records across multiple systems. An AI agent can orchestrate the entire process directly in ChatGPT.

"We just hired Alex Chen as a Product Manager in the New York office starting on 01/11/2026. Please check if he is already in the system as a contractor. If not, create a new full-time employee profile for him and pull a list of his required onboarding tasks."

sequenceDiagram
    participant User
    participant Agent as AI Agent
    participant MCP as Truto MCP Server
    participant Omni as Omni HR API

    User->>Agent: "We hired Alex Chen..."
    
    Note over Agent: Step 1: Directory Lookup
    Agent->>MCP: Call list_all_omni_hr_employees<br>{"search": "Alex Chen"}
    MCP->>Omni: GET /employees
    Omni-->>MCP: { "data": [] }
    MCP-->>Agent: No existing records found
    
    Note over Agent: Step 2: Provision Employee
    Agent->>MCP: Call create_a_omni_hr_employees_v_1_1<br>{"base_data": {...}, "employment": {...}}
    MCP->>Omni: POST /employees_v1_1
    Omni-->>MCP: { "id": "usr_9981", "status": "active" }
    MCP-->>Agent: Employee created

    Note over Agent: Step 3: Fetch Tasks
    Agent->>MCP: Call list_all_omni_hr_employee_tasks<br>{"user_id": "usr_9981"}
    MCP->>Omni: GET /employee_tasks
    Omni-->>MCP: ["I-9 Verification", "IT Equipment Request"]
    MCP-->>Agent: Tasks retrieved
    
    Agent-->>User: "Alex's profile is created. He has 2 pending onboarding tasks..."

Scenario 2: End-of-Month Expense Auditing

Finance teams waste days chasing down unapproved expenses. An AI agent can query Omni HR, correlate the data, and generate actionable summaries.

"Run an audit on all active expense reimbursements for the Sales organization. Identify any records that have been pending manager approval for more than 14 days, and list the managers responsible."

flowchart TD
    A["Agent parses prompt<br>Identifies time delta logic"] --> B["Call list_all_omni_hr_departments<br>Find 'Sales' department ID"]
    B --> C["Call list_all_omni_hr_active_expense_reimbursements<br>Filter by Sales department"]
    C --> D["Agent evaluates JSON response<br>Calculates days pending vs current date"]
    D --> E["Call get_single_omni_hr_expense_reimbursement_by_id<br>For each flagged record to get approval flow"]
    E --> F["Agent synthesizes final report<br>Returns list of managers blocking approvals"]

Security and Access Control

Giving an AI agent access to an HRIS requires strict boundaries. Truto provides four distinct mechanisms to secure your Omni HR MCP endpoints:

  • Method Filtering: Constrain the server to specific HTTP methods via config.methods. Passing ["read"] completely blocks the LLM from executing tools that map to POST, PUT, PATCH, or DELETE requests, eliminating the risk of accidental data modification.
  • Tag Filtering: Limit the surface area of the API using config.tags. For example, setting tags: ["time-off"] ensures the agent can only access absence data, preventing it from reading sensitive payroll or compensation records.
  • API Token Authentication: By default, anyone with the MCP URL can invoke tools. Setting require_api_token_auth: true adds a secondary security layer. The client (e.g., ChatGPT or a custom application) must supply a valid Truto API token via the Authorization header, verifying the user's identity before executing the tool.
  • Auto-Expiring Servers: For temporary audits or contractor access, supply an expires_at ISO datetime during token creation. Truto will automatically destroy the server, the KV entries, and the database record when the time elapses, ensuring no stale access points remain.

Moving Faster with Managed Infrastructure

Connecting ChatGPT to Omni HR shouldn't require your engineering team to spend weeks parsing API documentation, writing custom JSON schemas, and building complex OAuth management layers.

By leveraging Truto's dynamically generated MCP servers, you transform Omni HR's vast API surface into ready-to-use LLM tools instantly. Your agents get secure, curated, and schema-validated access to employee records, expense tracking, and performance reviews - allowing your team to focus on building intelligent workflows rather than maintaining integration boilerplate.

Two ways to put Omni HR to work

Elaichifrom the team behind Truto

For you and your team

Use Omni HR in ChatGPT yourself

Connect Omni HR once, add Elaichi to ChatGPT, and ask. Every call is checked against your own permissions and logged.

Start free, 14 days No credit card required
Truto

For product teams

Ship Omni HR to your customers

Your customers connect their own Omni HR accounts. Your product gets one API and MCP tools for Omni HR, through Truto.

FAQ

What is the easiest way to connect Omni HR to ChatGPT?
The best way to connect Omni HR to ChatGPT is Elaichi: connect Omni HR to Elaichi once, then add Elaichi to ChatGPT as a connector. Two steps, about a minute, with a 14-day free trial and no credit card required.
How does Truto handle Omni HR API rate limits?
Truto does not retry, throttle, or apply backoff on rate limit errors. When Omni HR returns an HTTP 429, Truto passes that error directly to the calling agent. However, Truto normalizes the upstream rate limit data into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec, leaving the retry logic to the client.
Can I limit what the ChatGPT agent can access in Omni HR?
Yes. When generating the MCP server via Truto, you can pass strict method filters (e.g., 'read' only) and tag filters to constrain the agent's access strictly to safe endpoints, such as employee directories, while blocking destructive write actions.
How do I deal with Omni HR's DD/MM/YYYY date format requirements?
Truto's MCP tools auto-generate JSON schemas derived directly from the API documentation. These schemas explicitly instruct the LLM on the required formatting, prompting ChatGPT to pass dates as DD/MM/YYYY rather than its default ISO-8601 formatting.
Do I need to re-authenticate users if I update the MCP server filters?
No. Truto handles the OAuth lifecycle in the background. You can update the MCP token configuration via a PATCH request to change allowed methods or tags without disrupting the underlying API connection.
Omni HR Omni HR in ChatGPT14 days free Start free

More from our Blog