HRIS · Beta
ChartHop
API integration
Ship HRIS features without building the integration. Full ChartHop API access via Proxy and 100+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with ChartHop
Common scenarios for SaaS companies building ChartHop integrations for their customers.
Sync Approved Headcount into ATS Pipelines
Recruiting platforms can pull approved jobs (including future scenarios) from ChartHop and automatically open requisitions, then push new hires back as people tied to the correct job seat. This eliminates the manual back-and-forth between Finance, HR, and Talent teams.
Power Headcount & Compensation Forecasting
FP&A tools can ingest ChartHop jobs, bands, and compensation change histories to reconcile actual payroll against planned budgets. Offering this natively lets your platform forecast cash burn using the same source of truth Finance already trusts.
Automate Role-Based Access Provisioning
IAM and IT platforms can watch ChartHop groups, group history, and job changes to provision or revoke application access the moment someone changes team or role. This closes the gap between HR decisions and downstream access control.
Detect Capacity & PTO Conflicts in Project Tools
Resource planning and scheduling apps can read time-off requests, policy balances, and ledger data from ChartHop to flag assignment conflicts before they happen. End users get a single, accurate view of who's actually available.
Deliver Unified Total Rewards Experiences
Compensation and equity platforms can combine ChartHop stock grants, compensation history, and salary bands to generate real-time total rewards statements. Employees see a single consistent number no matter where they look.
What You Can Build
Ship these features with Truto + ChartHop
Concrete product features your team can ship faster by leveraging Truto’s ChartHop integration instead of building from scratch.
Scenario-Aware Job Sync
Pull jobs filtered by a specific scenario_id and date to surface planned, future, or current-state org structures inside your product.
Person-to-Job Resolution Layer
Use list_all_chart_hop_job_people alongside people and jobs endpoints to accurately map which humans occupy which seats, including open and backfill roles.
Compensation History Dashboards
Combine change compensation histories, bands, and job levels to visualize comp progression and band placement for any employee or cohort.
Time-Off Approval Workflows
Create, approve, or reject time-off requests directly from your UI using the time-off and policy balance endpoints, with accrual estimates for forward-looking planning.
Bulk Compensation & Org Updates
Push annual merit cycles, re-orgs, or band adjustments at scale using bulk update endpoints for jobs and bands without hitting per-record rate ceilings.
Group-Driven Automation Triggers
React to group membership changes and group history to automatically trigger downstream workflows like app provisioning, Slack channel updates, or onboarding tasks.
SuperAI
ChartHop AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_chart_hop_orgs
List all visible Charthop orgs, paginated by name. Returns: id, customerId, name, slug, type, industry, estEmployees, estRevenue, foundedYear, address, phone, email, url, domains, status, imagePath, currencies, locales, dataResidency, stock, timezone, appTimes, fiscalStart, headJobId, unassignedManagerJobId, portfolioParentOrgId, startDate, options, internalOptions, onboarding,…
get_single_chart_hop_org_by_id
Get a single Charthop org by id (accepts either id or slug). Returns: id, name, slug, type, customerId, createAt, activeAt. Required: id.
create_a_chart_hop_org
Create a new Charthop org. Returns: id, type. Required: name, type, estEmployees, status, currencies, dataResidency, timezone, options, onboarding.
update_a_chart_hop_org_by_id
Update an existing Charthop org by id (accepts either id or slug). Returns an empty 204 response on success. Required: id.
list_all_chart_hop_people
List persons in a Charthop organization with search, date filtering, and configurable field selection. Returns: id, name, startDate, attributes. Max 100 per page. Required: org_id.
get_single_chart_hop_person_by_id
Get a single person by id in Charthop. Returns: id, name, startDate, attributes. Required: id, org_id.
create_a_chart_hop_person
Create a new person in Charthop. Returns the created person object including id, name, startDate, and additional org-specific fields. Required: org_id.
update_a_chart_hop_person_by_id
Update a person in ChartHop by id. Returns an empty 204 response on success. The optional scenario_id and date parameters control which scenario and effective date the update applies to. Required: id, org_id.
delete_a_chart_hop_person_by_id
Delete a person in ChartHop by id. Returns an empty 204 response on success. ChartHop documents no query parameters for this operation. Required: id, org_id.
list_all_chart_hop_jobs
List jobs in a Charthop organization with support for date-based filtering, full-text search, scenario-specific queries, and configurable field selection. Returns job records with org-specific fields including id and attributes. Max 100 per page. Required: org_id.
get_single_chart_hop_job_by_id
Get a single Charthop job by id. Returns the job object with org-specific fields including id and attributes. Required: id, org_id.
create_a_chart_hop_job
Create a job in a Charthop organization, optionally within a scenario and with an effective date. Returns the created job object with org-specific fields including id and attributes. A request body containing job field values is required. Required: org_id.
update_a_chart_hop_job_by_id
Update a job in Charthop by id. Returns a 202 response with no content body, indicating the snapshot is currently building. Required: id, org_id.
delete_a_chart_hop_job_by_id
Delete a job in Charthop by id. Returns an empty 204 response on success. Required: id, org_id.
list_all_chart_hop_groups
List groups in a Charthop organization, optionally filtered by type, date, or search string. Returns: id, name, code, type. Max 100 per page. Required: org_id.
get_single_chart_hop_group_by_id
Get a single Charthop group by id. Returns: id, name, code, type. Required: id, org_id.
create_a_chart_hop_group
Create a new group in Charthop of the specified type. Returns a 202 accepted response with no content; the snapshot is currently building. Required: org_id, type.
update_a_chart_hop_group_by_id
Update an existing Charthop group by id. Returns a 202 accepted response with no content; the snapshot is currently building. Required: id, org_id, type.
delete_a_chart_hop_group_by_id
Delete a Charthop group by id. Returns an empty 204 response on success. Required: id, org_id.
chart_hop_groups_add_members
Add members to a ChartHop group. Accepts a required request body specifying the members to add. Returns an empty 204 response on success. Required: org_id, group_id, jobIds.
chart_hop_groups_remove_members
Remove members from a ChartHop group. Returns an empty 204 response on success. Optional: scenario_id to target a specific scenario, and date to set the effective date of member removals. Required: org_id, group_id, jobIds.
list_all_chart_hop_job_codes
List all job codes in a Charthop organization, paginated by cursor. Returns: id, orgId, title, code, notes, color, image, fieldValues, createId, createBehalfId, createAttribution, createAt, updateId, updateBehalfId, updateAttribution, updateAt, deleteId, deleteBehalfId, deleteAttribution, deleteAt. Required: org_id.
get_single_chart_hop_job_code_by_id
Get a single Charthop job code by id. Returns: id, fieldValues. Required: id, org_id.
create_a_chart_hop_job_code
Create a new job code in a Charthop organization. Returns: id. Required: org_id, orgId, title, code.
update_a_chart_hop_job_code_by_id
Update an existing Charthop job code by id. Returns an empty 204 response on success. Required: id, org_id, orgId, title, code.
delete_a_chart_hop_job_code_by_id
Delete a Charthop job code by id. Returns an empty 204 response on success. Required: id, org_id.
list_all_chart_hop_fields
List all fields in a Charthop organization with cursor pagination. Filter by table, table type, form, specific field ids, or field origin (builtin/custom). Returns: id, orgId, name, label, labelTr, description, inUse, expr, exprType, type, plural, values, defaultValue, options, entityType, isUnique, isRequired, isEffectiveDated, aliases, groupTypeId, calc, classification, sensitive, hideExpr,…. Required: org_id.
get_single_chart_hop_field_by_id
Get a single Charthop field by id. Returns: id, attributes. Required: id, org_id.
create_a_chart_hop_field
Create a custom field in a ChartHop organization. Returns the created field object including its id, name, and type. Required: org_id, name, label, type, entityType, sensitive, isUnique, isRequired.
update_a_chart_hop_field_by_id
Update an existing field in ChartHop by field id. Returns an empty 204 response on success. Required: id, org_id.
delete_a_chart_hop_field_by_id
Delete a field in ChartHop by id. Returns an empty 204 response on success. Required: id, org_id.
list_all_chart_hop_bands
List compensation bands in a Charthop organization, optionally filtered by job tier, job level, or effective date. Returns: id, orgId, label, color, baseCompMax, baseCompMid, baseCompMin, baseSpread, baseInterval, baseTargetPay, baseTargetPayPercentile, jobTierOneField, jobTierTwoField, jobTierThreeField, jobLevel, equityTargetShares, equityTargetPercentOfBase, equityTargetValue,…. Required: org_id.
get_single_chart_hop_band_by_id
Get a single compensation band by id in Charthop as of an effective date. Returns: id, label, baseCompMin, baseCompMax, jobTierOne, jobTierTwo, jobTierThree, jobLevel. Required: id, org_id.
create_a_chart_hop_band
Create a compensation band in Charthop. Returns an empty 202 response indicating the snapshot is currently building. Required: org_id, label, color, baseInterval, jobLevel.
update_a_chart_hop_band_by_id
Update a compensation band by id in Charthop. Returns an empty 202 response indicating the snapshot is currently building. Required: id, org_id, label, color, baseInterval.
delete_a_chart_hop_band_by_id
Delete a compensation band by id in Charthop with an optional effective date. Returns a 202 Accepted response with no body, indicating the snapshot is currently building. Required: id, org_id.
chart_hop_bands_bulk_delete
Delete all comp bands in a ChartHop organization on an effective date. Returns a Process object including processId, status, results, and state for tracking the async deletion. Required: org_id.
list_all_chart_hop_users
List ChartHop users within an org or across orgs, with optional filtering by invite status, role, policy, and search query. Returns: id, appId, name, email, password, orgs, imagePath, status, type, options, internalOptions, bundleInstall, secrets, activeAt, loginAt, appRunCheckAt, loginCount, sessionCount, loginFailCount, title, remoteIp, createId, createBehalfId, createAttribution, createAt,…
get_single_chart_hop_user_by_id
Get a single ChartHop user by id. Returns: id, name, email, inviteStatus, activeAt, updateAt. Required: id.
create_a_chart_hop_user
Create a new user in ChartHop. Returns: id. Required: orgs.
update_a_chart_hop_user_by_id
Update an existing ChartHop user by id. Returns an empty 204 response on success. Required: id.
list_all_chart_hop_timeoffs
List time off requests in ChartHop, filterable by person and date range. Returns: id, orgId, personId, externalId, startDate, startDatePartialDay, startDatePartialDayPeriod, endDate, endDatePartialDay, endDatePartialDayPeriod, days, hours, typeDescription, timeOffPolicyId, note, approval, approvalAt, approvalUserId, createId, createBehalfId, createAttribution, createAt, updateAt, updateId,…. Required: org_id.
get_single_chart_hop_timeoff_by_id
Get a single time off request by id in ChartHop. Returns: id, personId, createdAt, updatedAt. Required: id, org_id.
create_a_chart_hop_timeoff
Create a new time off request in ChartHop. Returns: id, createdAt, updatedAt. Required: org_id, orgId, personId, startDate, endDate.
update_a_chart_hop_timeoff_by_id
Update an existing time off request in ChartHop. Returns an empty 204 response on success. Required: id, org_id.
delete_a_chart_hop_timeoff_by_id
Delete a time off request in ChartHop. Returns an empty 204 response on success. Required: id, org_id.
chart_hop_timeoffs_approve
Approve a pending time off request in ChartHop. Returns an empty 204 response on success. Optionally pass target_approver_job_id to act as an approval delegate for another approver. Required: org_id, timeoff_id.
chart_hop_timeoffs_reject
Reject a pending time off request in ChartHop. Returns an empty 204 response on success. Optionally pass target_approver_job_id to act as an approval delegate for another approver. Required: org_id, timeoff_id.
list_all_chart_hop_timeoff_policies
List all time off policies in a Charthop organization. Returns: id, orgId, name, displayName, description, guidelines, color, emoji, type, status, allocationType, annualAllocation, accrualConfig, maxConsecutiveDaysPerRequest, minBalance, enableCarryOverBalance, maxCarryOverBalance, carryOverExpirationDate, carryOverExpirationMonths, enablePartialDayRequests, partialDayGranularity,…. Required: org_id.
get_single_chart_hop_timeoff_policy_by_id
Get a single Charthop time off policy by id. Returns: id, attributes. Required: id, org_id.
create_a_chart_hop_timeoff_policy
Create a new time off policy in Charthop. Returns: id. Required: org_id, name, type, status, allocationType, filter.
update_a_chart_hop_timeoff_policy_by_id
Update an existing Charthop time off policy by id. Returns an empty 204 response on success. Required: id, org_id.
delete_a_chart_hop_timeoff_policy_by_id
Delete a Charthop time off policy by id. Returns an empty 204 response on success. Required: id, org_id.
chart_hop_timeoff_policies_duplicate
Duplicate an existing Charthop time off policy, creating a new copy from the source policy. Returns the created TimeOffPolicy object including its id and attributes. Required: org_id, policy_id.
update_a_chart_hop_allocation_by_id
Update a Charthop allocation by record id. Returns: id. To stop an active allocation, PATCH its endDate rather than deleting the record. Required: id, org_id.
delete_a_chart_hop_allocation_by_id
Delete an allocation in ChartHop that should never have existed — to stop an active allocation, PATCH its endDate instead. Returns an empty 204 response on success. Required: id, org_id.
list_all_chart_hop_policy_balances
List time off balances for given policies and date in a Charthop organization. Returns: id, attributes. Required: org_id.
get_single_chart_hop_policy_balance_by_id
Get time off balances per policy for a specific person in Charthop. Returns: id, attributes. Required: id, org_id.
create_a_chart_hop_timeoff_request
Request time off in ChartHop by submitting a time off request body for a person under a specific policy. Returns the created time off entity including its id, status, and date range. Required: org_id, startDate, endDate.
create_a_chart_hop_request_validate
Validate a time off request in ChartHop without creating it. Returns the calculated time off balance object. Required: org_id, startDate, endDate.
create_a_chart_hop_estimate_accrual
Estimate the accrual value for a time off policy in ChartHop by submitting updated policy data. Returns the estimated accrual result for the specified policy. Required: org_id, policy_id.
list_all_chart_hop_allocation_groups
Get the allocations to a group on a date -- one entry per allocated job. Returns: id, orgId, jobId, groupId, groupTypeId, allocation, effectiveDate, endDate. Required: org_id, group_id.
create_a_chart_hop_allocation_group
Create or update allocations to a group, keyed on (jobId, groupId, effectiveDate). Required: org_id, group_id.
list_all_chart_hop_allocation_jobs
Get a job's allocations on a given date across every group type in Charthop. Returns: id, allocation, notes. Required: org_id, job_id.
chart_hop_band_bulkupdates_bulk_update
Perform a bulk update on comp bands in Charthop. Returns a Process object including id, status, and results for tracking the asynchronous bulk update operation. Required: org_id, updates.
chart_hop_group_bulk_deletes_bulk_delete
Bulk delete multiple groups in Charthop by submitting an array of group ids. Returns a Process object including processId, status, and results. Required: org_id.
chart_hop_job_bulkupdates_bulk_update
Perform a bulk update on multiple jobs in ChartHop, returning an async Process object for tracking completion. Returns: id. Required: org_id, updates, date.
list_all_chart_hop_person_counts
Count persons in a ChartHop org, optionally filtered by scenario, date, date range, or search query. Returns: count. Required: id.
list_all_chart_hop_job_counts
Count jobs in a ChartHop organization, optionally filtered by scenario, date, date range, or search query. Returns: count. A 202 response indicates the org snapshot is currently building. Required: id.
list_all_chart_hop_group_counts
Get organized group counts. Required: id.
list_all_chart_hop_band_counts
Return the count of comp bands in the organization. Required: id.
list_all_chart_hop_user_counts
Count ChartHop users matching the same filters as findUsers, broken down by invite status. Returns: count. For invite_status, only JOINED and INVITED are valid values; NOT_INVITED is not supported. Required: org_id.
list_all_chart_hop_user_views
Return the user the user is currently viewing as.
get_single_chart_hop_user_person_by_id
Get a ChartHop user by their corresponding person id. Returns: id, personId, orgId, name, email, inviteStatus, activeAt, updateAt, createdAt. Required: id, org_id.
list_all_chart_hop_field_categories
Return uncategorized fields. Returns: id, orgId, name, label, labelTr, description, inUse, expr. Required: org_id.
get_single_chart_hop_field_category_by_id
Return fields in a particular category. Returns: id, orgId, name, label, labelTr, description, inUse, expr. Required: id, org_id.
list_all_chart_hop_field_built_ins
Get built-in fields. Returns: id, orgId, name, label, labelTr, description, inUse, expr. Required: org_id.
list_all_chart_hop_band_schemas
Get comp band schema with job tier field configurations and their possible values. Required: id.
list_all_chart_hop_job_people
Find the jobs held by one or more people, by person id (comma-separated). The ChartHop swagger declares a 200 with no documented response fields for this operation, so its payload shape is not specified. Required: org_id, person_ids.
update_a_chart_hop_policy_balance_adjustment_by_id
Adjust time off balances for a group of people on a given policy and effective date in Charthop. Returns a Process object including processId, status, and results. Required: id, org_id, balances.
get_single_chart_hop_group_history_by_id
Get the history of changes for each field on a ChartHop group. Returns the group history record including its attributes containing field-by-field change data. Required: org_id, group_id.
list_all_chart_hop_current_user
Return the ChartHop user the API token authenticates as. For an App token this is the App user itself, including its `orgs` array of per-org access levels, which is the cheapest way to confirm which org the token can read.
list_all_chart_hop_group_types
List group types in a ChartHop organization, paginated by cursor. Returns: id, orgId, name, fieldName, code, requirePositions, description, membershipType, supportsAllocation, assignmentType, membershipExpr, parentTypesAllowed, otherGroupTypeId, sourceGroupTypeId, enableApprovals, hidden, defaultSensitivity, positions, membershipFieldId, shareAccess, createId, createBehalfId, createAttribution,…. Required: org_id.
create_a_chart_hop_group_type
Create a new group type in a ChartHop organization. Returns the created group type including id, name, description, createAt, and updateAt. Required: org_id, name, fieldName, membershipType, assignmentType, parentTypesAllowed, enableApprovals, defaultSensitivity.
get_single_chart_hop_group_type_by_id
Get a single ChartHop group type by id. Returns: id, name, code, description, hidden, positions, createAt, updateAt. Required: id, org_id.
update_a_chart_hop_group_type_by_id
Update an existing ChartHop group type by id. Returns an empty 204 response on success. Required: id, org_id.
delete_a_chart_hop_group_type_by_id
Delete a ChartHop group type by id. Returns an empty 204 response on success. Required: id, org_id.
list_all_chart_hop_job_levels
List job levels in a Charthop organization, optionally filtered by an effective date. Returns: id, orgId, label, code, benchmarkType, benchmarkLevel, createId, createBehalfId, createAttribution, createAt, updateId, updateBehalfId, updateAttribution, updateAt, deleteId, deleteBehalfId, deleteAttribution, deleteAt. Max 100 per page. Required: org_id.
create_a_chart_hop_job_level
Create a new job level in a Charthop organization. Returns an empty 202 response on success indicating the snapshot is currently building. Required: org_id, label.
get_single_chart_hop_job_level_by_id
Get a single Charthop job level by id on a given effective date. Returns: id, label, code. Required: id, org_id.
update_a_chart_hop_job_level_by_id
Update a Charthop job level by id. Returns an empty 202 response on success indicating the snapshot is currently building. Required: id, org_id.
delete_a_chart_hop_job_level_by_id
Delete a Charthop job level by id. Returns an empty 202 response on success indicating the snapshot is currently building. Required: id, org_id.
list_all_chart_hop_stockgrants
List stock grants in a ChartHop organization, optionally filtered by person and date range. Returns: id, orgId, personId, externalId, stock, date, vestStartDate, expireDate, shares, price, type, vestSchedule, originalPrice, currentPrice, vestedShares, vestedSharesNextYear, vestedSharesByDate, vestEndDate, cancelDate, terminationDate, lastExercisableDate, details, createId, createAt, updateAt,…. Required: org_id.
get_single_chart_hop_stockgrant_by_id
Get a single ChartHop stock grant by id. Returns: id, stock, date, shares, price, type, details. Required: id, org_id.
list_all_chart_hop_timeoff_adjustments
List all time off balance adjustments for a Charthop organization. Returns: id, date, days. Required: org_id.
create_a_chart_hop_timeoff_adjustment
Create a time off balance adjustment in a Charthop organization. Returns: id, date, days. Required: org_id, timeOffPolicyId, date, personId, days.
get_single_chart_hop_timeoff_adjustment_by_id
Get a specific time off balance adjustment by id in a Charthop organization. Returns: id, orgId, timeOffPolicyId, date, personId, days, createId, createBehalfId, createAttribution, createAt, updateId, updateBehalfId, updateAttribution, updateAt, deleteId, deleteBehalfId, deleteAttribution, deleteAt. Required: id, org_id.
update_a_chart_hop_timeoff_adjustment_by_id
Update an existing time off balance adjustment in a Charthop organization. Returns an empty 204 response on success. Required: id, org_id.
delete_a_chart_hop_timeoff_adjustment_by_id
Delete a time off balance adjustment in a Charthop organization. Returns an empty 204 response on success. Required: id, org_id.
list_all_chart_hop_timeoff_ledger_data
Query time off ledger entries in a ChartHop organization within a date range, returning time off, job, and person data fields. Returns: attributes. A 202 response indicates the data snapshot is currently building. Required: org_id, from_date, until_date.
list_all_chart_hop_change_compensation_histories
List enriched compensation history rows for a Charthop organization, one row per compensation change in descending date order. Returns: changeId, personId, jobId, date, name, workEmail, title, basePay, variablePay, total, department, manager. Required: org_id.
Why Truto
Why use Truto’s MCP server for ChartHop
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with ChartHop in under an hour. No boilerplate, no maintenance burden.
Link your customer’s ChartHop account
Use Truto’s frontend SDK to connect your customer’s ChartHop account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call ChartHop
Truto’s Proxy API is a 1-to-1 mapping of the ChartHop API. You call us, we call ChartHop, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate ChartHop’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about ChartHop on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication does ChartHop use, and does Truto handle it?
ChartHop's API uses token-based authentication scoped to an organization. Truto manages the full auth flow, token storage, and refresh so your end users just connect their ChartHop account once from your product.
Can we read data from future or historical org states, not just the current one?
Yes. ChartHop's job and person endpoints accept optional scenario_id and date parameters, so you can pull planned future headcount, sandboxed scenarios, or point-in-time historical structures through the same Truto tools.
How does Truto handle the Job vs. Person distinction unique to ChartHop?
Truto exposes list_all_chart_hop_jobs, list_all_chart_hop_people, and list_all_chart_hop_job_people as separate tools. You keep ChartHop's architectural separation intact and resolve person-to-seat assignments explicitly rather than flattening the model.
Are bulk operations supported for large customers?
Yes. Truto exposes chart_hop_job_bulkupdates_bulk_update, chart_hop_band_bulkupdates_bulk_update, chart_hop_group_bulk_deletes_bulk_delete, and chart_hop_bands_bulk_delete so you can process re-orgs, comp cycles, and cleanups efficiently.
Can we access custom fields defined in a customer's ChartHop instance?
Yes. The field, field category, and field built-in endpoints let you discover schema (including custom fields) per connected tenant, so you can render and sync customer-specific attributes without hardcoding.
What time-off data is available beyond simple status checks?
Truto exposes time-off requests, policies, policy balances, adjustments, ledger data, and accrual estimation. This supports everything from a basic 'is this person out?' check to full liability forecasting and balance adjustments.
How fresh is the data Truto returns from ChartHop?
Truto reads directly from ChartHop's API on request, so data reflects the current state of the connected tenant. For continuous sync, you can schedule polling intervals that match your product's freshness requirements.
ChartHop
Get ChartHop integrated into your app
Our team understands what it takes to make a ChartHop integration successful. A short, crisp 30 minute call with folks who understand the problem.