Integrations

HRIS sync

Sync employees, manager relationships, departments, and termination dates from your HR system into Performance Blocks.

Plan availability: This integration is available on the Agentic plan. Team plan customers can upgrade in Settings → Billing.

The HRIS sync integration connects Performance Blocks to your HR system of record so the employee directory, manager hierarchy, departments, and termination dates stay current automatically. Without HRIS sync, admins maintain a parallel directory by hand. With it, your HR system is the single source of truth and Performance Blocks reflects org changes shortly after they happen.

This article covers what the integration does, supported partners, sync direction, setup, field mapping, what gets synced and when, conflict handling, termination behavior, and troubleshooting.

What HRIS sync does

The integration pulls four things from your HR system into Performance Blocks:

  1. Employees. Full name, work email, employee ID, job title, location.
  2. Manager relationships. Each employee's direct manager. Updates propagate so the org chart in Performance Blocks always reflects current reporting lines.
  3. Departments. The team or department each employee belongs to.
  4. Termination dates. When an employee is terminated in the HRIS, Performance Blocks deactivates their access on the effective date.

These four data points are the backbone of every other feature. Observations are attributed to people and rolled up to managers; summaries are generated for the right reporting line; access ends when employment does. Keeping them accurate without manual maintenance is the value proposition.

Supported partners

Performance Blocks supports four HRIS partners as the integration's known list:

  • Workday
  • BambooHR
  • ADP
  • Guidepoint

Each partner has its own auth model — some use OAuth, some use API keys or system credentials — but the user-facing setup follows the same shape. If your HRIS is not on this list and you need it, contact support; we evaluate new partners based on demand and partner API quality.

Sync direction

HRIS sync is mostly one-way: HRIS → Performance Blocks. Your HR system is the source of truth. Performance Blocks reflects what's in the HRIS; it does not push changes back to the HRIS.

There are two narrow exceptions where Performance Blocks holds the source of truth:

  • Roles and permissions within Performance Blocks (employee, manager, org admin) are managed in Performance Blocks. The HRIS does not dictate Performance Blocks roles.
  • Performance content — observations, summaries, reviews, blocks — is created and stored in Performance Blocks and never written back to the HRIS.

For all directory and hierarchy data, treat the HRIS as authoritative. If a manager assignment is wrong in Performance Blocks, fix it in your HRIS.

Setup

Prerequisites

  • Your org is on the Agentic plan.
  • An org admin has enabled hrisIntegration in Settings → Features.
  • You have admin permission in your HRIS (or have someone who does).
  • You know which fields you want to map (you can change this later, but doing the first pass is easier with a plan).

Connecting your HRIS

  1. Go to Settings → Integrations → HRIS in Performance Blocks.
  2. Choose your partner: Workday, BambooHR, ADP, or Guidepoint.
  3. Follow the partner-specific auth flow:
    • Some partners use OAuth: you'll be sent to the partner's authorize page, asked to sign in as an HR admin, and asked to grant the requested permissions.
    • Others use API keys or system credentials: you'll be asked to paste in credentials generated from your partner's admin console. The HRIS panel shows the exact steps for the partner you chose.
  4. After auth completes, Performance Blocks does a connectivity check and lists the employee count it can see in your HRIS.
  5. Click Continue to move to field mapping.

The connection is bound to your Performance Blocks org. Disconnecting from the partner side or the Performance Blocks side terminates the sync.

Field mapping

Performance Blocks needs to know how your HRIS fields correspond to its expected fields. The default mapping covers the common cases; you only need to customize when your HRIS uses non-standard field names or when you have additional fields you want surfaced.

The required fields are:

Performance Blocks field What it represents
Full name The employee's display name
Work email Used as the unique identity and login
Employee ID Stable identifier for the employee within your HRIS
Manager (employee ID) The direct manager's employee ID, used to build org
Department The team or department label
Termination date Date the employee leaves; null while active

Optional fields you may map:

  • Job title
  • Location
  • Start date
  • Cost center

The field mapping UI lists every Performance Blocks field on one side and a dropdown of your HRIS fields on the other. Pick the corresponding HRIS field for each row. Save.

You can revisit field mapping at any time from Settings → Integrations → HRIS → Field mapping. Changes apply on the next scheduled sync.

First sync

After mapping, click Run first sync. This pulls every employee from your HRIS, creates Performance Blocks user records for each one, and builds the manager hierarchy. Depending on org size, this takes anywhere from a minute to about half an hour.

You'll see a sync status indicator until it completes. Once done, the employee directory in Performance Blocks reflects your HRIS, and you can begin inviting people to the platform.

A few notes about the first sync:

  • Employees with no work email are skipped. Performance Blocks needs the email to be the login identity.
  • If you already have manually created users in Performance Blocks, the sync will attempt to match them by email and merge. If a manual user has no matching HRIS record, it is left in place.
  • The first sync does not invite anyone — it creates user records but doesn't send invitation emails. Send invitations from the People view at your own pace.

What gets synced and when

After the first sync, Performance Blocks runs scheduled syncs to keep the directory current. The defaults:

  • Full sync once per day at a time you can configure (defaults to 3 AM in your org's primary timezone).
  • Incremental sync every few hours for partners whose API supports change polling. Incremental syncs pick up new hires, role changes, and terminations between full syncs.

You can trigger a manual sync at any time from Settings → Integrations → HRIS → Sync now. Use this when you've made an HRIS change and want it reflected in Performance Blocks immediately.

The Sync history view shows the last several runs with row counts, duration, and any errors. This is the place to check if you're suspicious that data is stale.

What changes a sync makes

For each employee in the HRIS:

  • If a matching user exists in Performance Blocks (matched by email or employee ID), update the fields you've mapped.
  • If no matching user exists, create one.
  • If a user exists in Performance Blocks but not in the HRIS payload, leave them in place. Removal only happens via explicit termination — see below.
  • If manager assignment changed, update the org hierarchy.

Sync is additive and idempotent. Running it twice in a row is safe.

Conflicts: manual edits vs. HRIS source of truth

Because the HRIS is the source of truth for directory data, manual edits in Performance Blocks to fields that are HRIS-managed will be overwritten on the next sync. The behavior is:

  • HRIS-managed fields (name, email, manager, department, etc.) — manual edits in Performance Blocks are not allowed. The fields are read-only with a tooltip explaining they're HRIS-managed.
  • Performance Blocks-only fields (roles, profile preferences, in-app permissions) — never touched by sync. Edit freely.

If you find that a directory field is wrong in Performance Blocks, the fix is to update it in your HRIS and wait for the next sync (or run Sync now). Editing locally would silently break the next sync's expected state.

For fields that are mapped but where the HRIS value is blank or stale, the sync writes the blank — it does not preserve a prior non-blank value. Keep the HRIS clean.

Termination handling

When an employee is terminated in the HRIS, the sync surfaces this as a termination date on their record. Performance Blocks then:

  1. On the effective date, deactivates the user's login. They cannot sign in.
  2. Preserves observations and summaries about the employee. Performance content is not deleted — managers and reviewers may need access to it for compliance, transition, or analysis purposes.
  3. Removes the employee from active org charts and team filters. They no longer appear in autocompletes or "active team" rollups.
  4. Reassigns ownership of any pending Henry flows the employee initiated to their manager, if applicable.
  5. Records the termination in Audit logs with the effective date and source.

The retention behavior matches your org's data retention settings. By default, observations and summaries about terminated employees are retained indefinitely; you can change this in Settings → Data retention.

If a termination is recorded incorrectly in the HRIS and you reverse it, the next sync re-activates the user. There is no Performance Blocks-side override.

Disconnecting

To disconnect HRIS sync entirely:

  1. Go to Settings → Integrations → HRIS.
  2. Click Disconnect.
  3. Confirm.

After disconnect:

  • Sync stops. The directory in Performance Blocks freezes at its last synced state.
  • The HRIS credentials are revoked.
  • No data is deleted. Existing user records, observations, and summaries remain.

You can reconnect later — the same partner, or a different one. On reconnect, the next sync resumes from where it left off.

Troubleshooting common sync failures

Sync failures show up in Settings → Integrations → HRIS → Sync history with a short error and a longer detail view.

"Authentication expired"

OAuth tokens and API keys have lifetimes. When yours expires, sync stops until you re-authenticate.

  • For OAuth partners, click Reauthorize in the HRIS panel and complete the partner's auth flow again.
  • For API key partners, generate a new key in your HRIS admin console, then update the key in Settings → Integrations → HRIS.

Set a calendar reminder for partners with short token lifetimes so you reauthorize before things break.

"Missing required fields"

If your HRIS is missing one of the required fields for some employees (most often work email or manager ID), those employees are skipped and surfaced in the sync history with the reason.

The fix is in your HRIS: backfill the missing field, then run Sync now. The skipped employees will be picked up on the next pass.

"Manager not found"

If an employee's manager ID in the HRIS doesn't correspond to any synced employee, Performance Blocks logs a warning and leaves the manager assignment blank. This usually means:

  • The manager themselves was filtered out (no work email, terminated, etc.).
  • The manager exists in the HRIS but in a different scope than the one your sync is configured to pull.

Confirm the manager record is present and complete in the HRIS, then re-sync.

"Field mapping changed since last run"

If you change a field mapping mid-sync, the sync may complete with warnings about the old mapping. The next run will use the new mapping cleanly. No data loss occurs.

"Rate limited by partner"

Some HRIS partners enforce per-day API call limits. Large orgs with many employees can occasionally hit them, especially when running multiple manual syncs in quick succession. The sync will retry automatically with backoff. If you keep hitting limits, contact support and we'll adjust your sync cadence.

"Sync runs but I don't see the changes"

Check:

  • The change is actually present in the HRIS (open the employee record in your HRIS to confirm).
  • The sync history shows a successful run after the change was made.
  • You've refreshed the Performance Blocks page since the sync completed.
  • The field you changed is mapped in the field mapping view.

If all four are true and the change still isn't reflected, the diagnostics view in the sync history will show the raw payload received for that employee. Compare against what you expect.

© 2026 Performance Blocks. All rights reserved.