Skip to content

HRIS · Beta

Lattice
API integration

Ship HRIS features without building the integration. Full Lattice API access via Proxy, normalized data through Unified APIs, and 30+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Lattice

Use Cases

Why integrate with Lattice

Common scenarios for SaaS companies building Lattice integrations for their customers.

01

Sync employee rosters for automated provisioning

IT asset management and identity platforms can pull the full employee directory and org chart from Lattice via Truto's Unified User Directory API, enabling automatic software provisioning and de-provisioning when employees join, leave, or change roles.

02

Populate org charts and reporting hierarchies

Workforce planning and collaboration tools can import manager-report relationships and department structures from Lattice to build accurate org charts without requiring manual CSV uploads from HR admins.

03

Bootstrap user directories for people analytics platforms

BI and analytics SaaS products can use Lattice as a source of truth for employee identity data — names, titles, departments, and managers — to anchor dashboards and reports that correlate people data with business outcomes.

04

Power role-based access control from HR data

Security and compliance platforms can read department and job title data from Lattice to dynamically assign permissions and access policies, ensuring least-privilege access stays in sync with the live employee record.

What You Can Build

Ship these features with Truto + Lattice

Concrete product features your team can ship faster by leveraging Truto’s Lattice integration instead of building from scratch.

01

Real-time employee directory sync

Automatically import and keep up to date every active employee's name, email, job title, and department from Lattice into your product's user list.

02

Manager hierarchy mapping

Pull manager-report relationships from Lattice to build org trees that drive approval workflows, access policies, or reporting rollups in your app.

03

Automated onboarding triggers

Detect new users appearing in the Lattice directory and kick off onboarding flows — account creation, welcome emails, or license assignment — without manual intervention.

04

Offboarding and deprovisioning alerts

Identify employees removed or deactivated in Lattice and automatically revoke access, reclaim licenses, or flag accounts for cleanup in your platform.

05

Department-based feature gating

Use department and role metadata from Lattice to dynamically control which features, dashboards, or content each end user sees inside your product.

SuperAI

Lattice 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_lattice_me

Get the current Lattice user the API token is associated with. Returns: id, object, url, manager, directReports, department, name, preferredName, email, tasks, title, status, startDate, birthDate, timezone, gender, jobFunction, jobLevel, jobType, isAdmin, externalUserId, createdAt, updatedAt, customAttributes.

list_all_lattice_users

List users in Lattice. Returns a paginated list of users with id, email, name, title, status, and manager. Active users are returned by default; a status of 'null' retrieves all users regardless of status.

get_single_lattice_user_by_id

Get a single Lattice user by id. Returns: id, object, url, manager, directReports, department, name, preferredName, email, tasks, title, status, startDate, birthDate, timezone, gender, jobFunction, jobLevel, jobType, isAdmin, externalUserId, createdAt, and 2 more fields. Required: id. Requires id. Returns a 404 if the user cannot be found.

get_single_lattice_competency_by_id

Get a single competency in Lattice by id. Returns: id, object, name, description. Required: id. A 404 is returned when no competency matches the given id.

get_single_lattice_custom_attribute_value_by_id

Get a single custom attribute value in Lattice by id. Returns: id, object, url, value. Required: id. Returns a 404 if the custom attribute value cannot be found.

get_single_lattice_custom_attribute_by_id

Get a Lattice custom attribute by id. Returns: id, object, url, name, type, visibility. Required: id. Returns a 404 if no matching custom attribute exists.

list_all_lattice_custom_attributes

List a Lattice user's custom attributes. Returns each entry with its customAttribute and customAttributeValue objects. Required: user_id.

get_single_lattice_department_by_id

Get a single department in Lattice by id. Returns: id, object, url, name, description, createdAt. Returns a 404 if the department cannot be found. Required: id.

list_all_lattice_departments

List all departments in Lattice. Returns a paginated list of department records with id, object, url, name, description, and createdAt.

list_all_lattice_direct_reports

List users who report directly to a given user in Lattice. Returns: id, object, url, manager, directReports, department, name, preferredName, email, tasks, title, status, startDate, birthDate, timezone, gender, jobFunction, jobLevel, jobType, isAdmin, externalUserId, createdAt, updatedAt, customAttributes. Required: user_id.

get_single_lattice_feedback_by_id

Get a single continuous feedback record in Lattice by id. Returns: id, object, url, author, targets, associatedValues, feedbackRequest, body, competency, visibility, isPublic, createdAt. Required: id. Returns a 404 if no matching feedback is found.

list_all_lattice_feedbacks

List all continuous feedback in Lattice, newest first. Returns feedback items including: id, author, body, isPublic, and createdAt.

create_a_lattice_goal_update

Create a progress update for an existing goal in Lattice. Returns the created goal update record with its entityId, goal_id, id, comment, status, and increment. Requires goal_id, comment, and status; exactly one of increment or absolute must be provided. Required: goal_id, id, comment, status.

list_all_lattice_goal_updates

List all progress updates for a specific goal in Lattice. Returns: data. Required: goal_id, id.

create_a_lattice_goal

Create a new goal in Lattice. Returns the created goal with entityId, name, okrType, priority, and tags. Requires name, startDate, dueDate, and ownerIds; key results also require amountType, startingAmount, and goalAmount. Required: name, startDate, dueDate, ownerIds.

get_single_lattice_goal_by_id

Get a single goal in Lattice by id. Returns the full goal including id, name, state, okrType, currentAmount, dueDate, owners, and tags. Required: id.

list_all_lattice_goals

List goals in Lattice with pagination. Returns each goal's id, name, state, okrType, currentAmount, dueDate, owners, and tags.

update_a_lattice_goal_by_id

Update an existing Lattice goal by id (full replacement). Returns the updated goal with entityId, name, tags, and childGoals. Required: id, name, description, startDate, dueDate, priority, private, ownerIds, okrType, amountType, startingAmount, goalAmount, companyGoal, departmentId, departmentsVisibleToIds, goalCycleId, tagNames, isDraft, parentId.

list_all_lattice_goals_updates

List all goal updates across all goals in Lattice with pagination support. Returns: entityId, goalId, id, comment, status, increment. Max 100 per page.

list_all_lattice_goals_user

List all goals owned by a user in Lattice. Returns a paginated list of goals with: id, name, okrType, state, isPrivate, dueDate, owners, createdAt. Required: user_id.

get_single_lattice_question_revision_by_id

Get a single Lattice question revision by id. Returns: id, object, url, body, description, ratingScale, choices, isSelectionOptional, isCommentOptional. Required: id. Returns a 404 if no matching question revision exists.

get_single_lattice_question_by_id

Get a Lattice review question by id. Returns: id, object, url, body, description, hasFreeFormText, ratingScale, choices, isSelectionOptional, isCommentOptional. Required: id. Returns a 404 if no matching question exists.

get_single_lattice_review_cycle_by_id

Get a single Lattice review cycle by id. Returns the review cycle object including its id, name, stage, reviewees, reviews, and createdAt. Required: id. Returns a 404 if the review cycle cannot be found.

list_all_lattice_review_cycles

List all review cycles in Lattice. Returns a paginated list of review cycle objects including their id, name, stage, reviewees, reviews, and createdAt.

get_single_lattice_reviewee_by_id

Get a reviewee in Lattice by id. Returns the reviewee object including its id, user, reviewCycle, reviews, weightedScore, and createdAt. Required: id. Returns a 404 if the reviewee cannot be found.

list_all_lattice_reviewees

List all reviewees in a Lattice review cycle. Returns each reviewee with its id, user, reviewCycle, reviews, weightedScore, and createdAt. Required: review_cycle_id.

list_all_lattice_reviews

List all reviews for a reviewee in Lattice. Returns a paginated list of reviews including id, reviewee, reviewer, question, reviewType, and submittedAt. Required: reviewee_id.

list_all_lattice_reviews_reviewcycle

List all reviews for a review cycle in Lattice. Returns a paginated list where each review includes id, reviewee, reviewer, question, reviewType, response, and submittedAt. Required: review_cycle_id.

get_single_lattice_tag_by_id

Get a single Lattice tag by id. Returns the tag object including id, object, url, name, createdAt, and updatedAt. Required: id. A 404 is returned if the tag cannot be found.

list_all_lattice_tags

List all tags in Lattice. Returns a paginated list of tags, each including id, name, url, createdAt, and updatedAt.

get_single_lattice_task_by_id

Get a Lattice task by id. Returns the resolved task object: id plus the task's remaining upstream fields under attributes (the upstream docs document the 200 body as an untyped object without enumerating fields). Returns a 404 when no task matches. Required: id.

list_all_lattice_tasks

List tasks for a Lattice user, paginated. Returns task records; Lattice's API documents each task as an unenumerated object, exposing only the record's id plus an opaque attribute set (attributes). Required: user_id.

list_all_lattice_updates

List all Updates in Lattice with pagination. Returns each update's id, url, author, manager, responses, sentiment, isPublic, and createdAt.

update_a_lattice_update_by_id

Get a single Lattice Update by id. Returns the update's id, author, manager, responses, sentiment, isPublic, and createdAt. Required: id. Returns a 404 if no matching update is found.

Why Truto

Why use Truto’s MCP server for Lattice

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 950+ integrations.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

Unified APIs

Unified APIs for Lattice

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Users

The User object represents a User.

View Docs

How It Works

From zero to integrated

Start with Lattice in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.

01

Link your customer’s Lattice account

Use Truto’s frontend SDK to connect your customer’s Lattice account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

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.

03

Call our API, we call Lattice

Truto’s Proxy API is a 1-to-1 mapping of the Lattice API. You call us, we call Lattice, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Lattice’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Lattice on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What Unified APIs does Truto support for Lattice today?

Truto currently supports the Unified User Directory API for Lattice, which covers the Me and Users resources. This lets you read employee profiles, job metadata, and reporting relationships through a standardized schema.

Are additional Lattice endpoints (Goals, Feedback, Reviews) available through Truto?

Not out of the box today. Truto builds additional tools and API mappings on request, so if your use case requires Goals, Feedback, Reviews, or other Lattice objects, reach out and the team can scope and deliver support for those endpoints.

How does authentication work for Lattice integrations via Truto?

Truto handles the full auth lifecycle for Lattice, including API key-based authentication. Your end users connect their Lattice accounts through Truto's embedded linking flow, and Truto securely stores and manages credentials so you never handle raw secrets.

Does Truto handle pagination and rate limiting for the Lattice API?

Yes. Truto abstracts away Lattice's pagination logic and respects its rate limits automatically, so you can request full employee lists without writing retry or cursor-management code.

What employee data fields are available through the Unified User Directory API?

The Unified User Directory API exposes a standardized schema that typically includes employee name, email, job title, department, employment status, and manager relationships. The exact field coverage maps to what Lattice exposes through its Users API.

Can I write data back to Lattice through Truto?

The current Unified User Directory API for Lattice is read-oriented. Write capabilities for other Lattice objects like Goals or Feedback can be scoped and built on request — contact Truto to discuss your specific workflow.

Lattice

Get Lattice integrated into your app

Our team understands what it takes to make a Lattice integration successful. A short, crisp 30 minute call with folks who understand the problem.