---
title: Envoy API Integration on Truto
slug: envoy
category: Default
canonical: "https://truto.one/integrations/detail/envoy/"
---

# Envoy API Integration on Truto



**Category:** Default  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 44 tools for Envoy that AI agents can call directly.

- **list_all_envoy_companies** — List companies in Envoy. Returns id, name, locationIds, createdAt, updatedAt, and subscriptions for each company.
- **list_all_envoy_invites** — List all invites in Envoy. Returns id, createdAt, updatedAt, expectedArrivalAt, expectedDepartureAt, type, flowId, locationId, approvalStatus, notes, customFields, secretToken, sendEmailToInvitee, invitee, host, and photoUrl in the response.
- **get_single_envoy_invite_by_id** — Get an invite by id in Envoy. Requires id. Returns fields including id, createdAt, updatedAt, expectedArrivalAt, type, approvalStatus, invitee, host, and locationId providing key details about the invite.
- **create_a_envoy_invite** — Create an invite in Envoy. Requires invite data including expectedArrivalAt, invitee, type, and locationId. Returns id, createdAt, updatedAt, expectedArrivalAt, type, invitee, and other key fields confirming creation details. Flow and employee must match the location or invite creation may fail.
- **update_a_envoy_invite_by_id** — Update an invite in Envoy by id. The flowId and hostEmployeeId must match the locationId, or the update will fail. Returns id, createdAt, updatedAt, expectedArrivalAt, type, invitee, and related fields with updated invite information.
- **delete_a_envoy_invite_by_id** — Delete an invite by id in Envoy. Requires id. Returns an empty data object indicating successful deletion.
- **envoy_invites_check** — Check in an invite in Envoy using id. Converts an invite into an entry record. Returns id, fullName, email, isDelivery, agreementStatus, notes, signedOutAt, SignedInAt, flowId, locationId, customFields, and host details in the response.
- **get_single_envoy_entry_by_id** — Get a specific entry in Envoy by id. Returns key details including id, fullName, email, signedInAt, signedOutAt, isDelivery, host, invite, and customFields.
- **list_all_envoy_entries** — List entries in Envoy. Returns id, fullName, email, signedInAt, signedOutAt, host, invite, and other related entry details.
- **create_a_envoy_entry** — Create an entry in Envoy by providing locationId, flowId, and fullName. Returns entry details including id, fullName, email, flowId, locationId, signedInAt, signedOutAt, host, and invite.
- **update_a_envoy_entry_by_id** — Update an entry in Envoy using id. Returns entry details including id, fullName, email, isDelivery, agreementsStatus, host, invite, and timestamps such as signedInAt and signedOutAt.
- **list_all_envoy_locations** — List locations in Envoy for a specific company. Returns each location's id, name, address details, enabled status, companyId, locale, logoUrl, timezone, capacityLimit, createdAt, and updatedAt.
- **get_single_envoy_location_by_id** — Get a location in Envoy using id. Returns id, name, address, enabled, companyId, locale, logoUrl, timezone, capacityLimit, createdAt, and updatedAt.
- **list_all_envoy_employees** — List employees in Envoy. Returns id, name, email, locationIds, createdAt, and updatedAt for each employee.
- **get_single_envoy_employee_by_id** — Get an employee in Envoy by id. Returns id, name, email, locationIds, createdAt, and updatedAt fields in the response.
- **list_all_envoy_flows** — List flows in Envoy. Returns id, name, type, enabled, locationId, createdAt, and updatedAt for each flow. Results may be limited based on your company subscription plan.
- **get_single_envoy_flow_by_id** — Get details for a specific flow in Envoy using id. Returns id, name, type, enabled status, locationId, createdAt, and updatedAt fields describing the flow.
- **get_single_envoy_recurring_invite_by_id** — Get details of a specific recurring invite in Envoy using id. Returns fields such as id, createdAt, updatedAt, startTime, recurrenceRule, invitee, and related inviteIds for the recurring schedule.
- **create_a_envoy_recurring_invite** — Create a recurring invite in Envoy. Requires startTime, recurrenceRule, locationId, invitee, and flowId. Returns key fields including id, createdAt, updatedAt, startTime, recurrenceRule, invitee, and inviteIds representing generated child invites.
- **update_a_envoy_recurring_invite_by_id** — Update a recurring invite in Envoy using id. The flowId and hostEmployeeId must match the locationId or the update may fail. Returns id, createdAt, updatedAt, startTime, recurrenceRule, invitee, and related fields.
- **list_all_envoy_work_schedules** — List WorkSchedules in Envoy. Returns id, expectedArrivalAt, expectedDepartureAt, arrivedAt, departedAt, flowId, locationId, approvalStatus, registrationURL, scheduledFor, createdAt, and updatedAt for each WorkSchedule.
- **get_single_envoy_work_schedule_by_id** — Get a specific work-schedule in Envoy using id. Returns fields including id, expectedArrivalAt, expectedDepartureAt, approvalStatus, locationId, and scheduledFor details such as name and email.
- **create_a_envoy_work_schedule** — Create a new WorkSchedule for a given employee at a specific location in Envoy. Requires locationId, email, and expectedArrivalAt. Returns id, approvalStatus, registrationURL, scheduledFor, and timestamps in the response.
- **delete_a_envoy_work_schedule_by_id** — Delete a specific work-schedule in Envoy. Requires id. Returns 204 No Content indicating successful deletion.
- **envoy_work_schedules_check_in** — Check in a WorkSchedule in Envoy using id. Signs the employee in for the day. Returns 204 No Content on success.
- **envoy_work_schedules_check_out** — Check out a WorkSchedule in Envoy using id. This signs out the employee associated with the work schedule for the day. Returns no content upon successful completion.
- **list_all_envoy_blocklist_entries** — List blocklist-entries in Envoy. Returns id, emails, fullName, reason, locationId, photoUrl, createdAt, and updatedAt for each entry.
- **get_single_envoy_blocklist_entry_by_id** — Get a specific blocklist entry in Envoy by id. Returns id, emails, fullName, reason, locationId, photoUrl, createdAt, and updatedAt fields describing the blocked person.
- **create_a_envoy_blocklist_entry** — Create a blocklist entry in Envoy. Requires emails, reason, and locationId. Returns id, emails, reason, locationId, photoUrl, createdAt, and updatedAt fields in the response.
- **update_a_envoy_blocklist_entry_by_id** — Update a blocklist entry in Envoy by id. Returns id, emails, fullName, reason, locationId, photoUrl, createdAt, and updatedAt fields in the response.
- **delete_a_envoy_blocklist_entry_by_id** — Delete a blocklist entry in Envoy using id. Returns a void object in the response when successful.
- **list_all_envoy_reservations** — List reservations in Envoy limited to a maximum of 30 days' worth of data. Returns fields including id, startTime, endTime, status, checkedInAt, checkedOutAt, space details, and reservedBy information.
- **get_single_envoy_reservation_by_id** — Get a reservation in Envoy by id. Returns reservation details including startTime, endTime, status, reservedBy, and space information (id, name, type, and availability).
- **create_a_envoy_reservation** — Create a reservation in Envoy for a specific user. Requires locationId, spaceType, userEmail, and startTime. Returns id, startTime, endTime, space details, status, and reservedBy in the response.
- **envoy_reservations_check_in** — Check-in to a reservation in Envoy using id. This action starts the reservation and returns no content in the response.
- **envoy_reservations_check_out** — End an active reservation in Envoy using id. Completes the reservation, frees the space for others, and removes the event from the user's calendar. The response indicates success with no content.
- **envoy_reservations_cancel** — Cancel a pending reservation in Envoy using id. This makes the reserved space available for others to book. Returns no response body upon successful cancellation.
- **list_all_envoy_spaces** — List spaces in Envoy such as desks or rooms. Returns id, name, type, createdAt, updatedAt, isAvailable, assignedTo, locationId, floorId, floorName, neighborhoodId, and neighborhoodName for each space.
- **get_single_envoy_space_by_id** — Get a space in Envoy using id. Returns key fields such as id, name, type, createdAt, updatedAt, locationId, floorId, and floorName to describe the space’s identity, type, creation details, and location mapping.
- **list_all_envoy_desks** — List desks in Envoy. Returns each desk's id, name, createdAt, updatedAt, availability (isAvailable), assignedTo email, and location, floor, and neighborhood details.
- **get_single_envoy_desk_by_id** — Get a desk in Envoy using id. Returns fields such as id, name, createdAt, updatedAt, isAvailable, assignedTo, locationId, floorId, floorName, neighborhoodId, neighborhoodName, xPos, and yPos.
- **create_a_envoy_desk** — Create a desk in Envoy using locationId, floorId, and name. Returns id, name, createdAt, updatedAt, isAvailable, assignedTo, locationId, floorId, floorName, neighborhoodId, neighborhoodName, xPos, and yPos.
- **update_a_envoy_desk_by_id** — Update a desk in Envoy using id. Returns fields such as id, name, assignedTo, isAvailable, locationId, floorId, neighborhoodId, floorName, neighborhoodName, xPos, yPos, createdAt, and updatedAt.
- **delete_a_envoy_desk_by_id** — Delete a desk in Envoy using id. Requires id. The response returns a null object in data indicating deletion success.

## How it works

1. **Link your customer's Envoy account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Envoy.** The Proxy API is a 1-to-1 mapping of the Envoy API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate visitor pre-registration from your scheduling or CRM platform** — If your SaaS handles meeting scheduling, candidate interviews, or client visits, you can automatically create Envoy invites when events are booked — eliminating manual front-desk coordination and delivering a polished guest experience for your customers' offices.
- **Sync workplace occupancy data into analytics or facility management tools** — SaaS companies building workplace analytics, real estate optimization, or smart building products can pull work schedules, desk reservations, and visitor entries from Envoy to give their customers accurate, real-time headcount and utilization data.
- **Enforce physical security policies from identity or HR platforms** — Security orchestration and HRIS products can programmatically manage Envoy blocklist entries — automatically flagging terminated employees or known threats at the front desk the moment a status change happens in the upstream system.
- **Trigger access credentials and Wi-Fi provisioning on visitor check-in** — Physical access control and IT networking SaaS products can use Envoy entry and invite check-in data to provision temporary badges, door access, or guest Wi-Fi credentials — and revoke them automatically when the visit ends.
- **Dynamically adjust office services based on scheduled attendance** — Corporate catering, cleaning, or energy management platforms can pull Envoy work schedules and reservations daily to right-size service orders and building operations based on who's actually expected in the office.

## What you can build

- **One-click visitor invite creation from any workflow** — Automatically push visitor invites into Envoy — with expected arrival time, host, and location — whenever an onsite event is scheduled in your product.
- **Real-time office headcount dashboard** — Aggregate work schedules, desk reservations, and visitor entries across all Envoy locations to display live and forecasted occupancy in your product.
- **Automated blocklist management** — Create, update, or remove Envoy blocklist entries directly from your security or HR platform whenever employee status or threat intelligence changes.
- **Desk and space inventory sync** — Pull all desks, spaces, and locations from Envoy to render interactive floor maps or feed space utilization models inside your facility management tool.
- **Employee directory sync via Unified User Directory API** — Use Truto's Unified User Directory API to read Envoy employees and locations into your product's user model without writing Envoy-specific code.
- **Visitor lifecycle automation with check-in and check-out hooks** — Trigger downstream actions — badge provisioning, Slack notifications, access grants — by monitoring invite check-ins and reservation check-in/check-out events through Envoy's API.

## FAQs

### What authentication method does the Envoy integration use?

Truto handles OAuth 2.0 authentication with Envoy on behalf of your end users. Your customers connect their Envoy accounts through Truto's embedded auth flow, and Truto manages token refresh and secure credential storage.

### Which Envoy resources can I read and write through Truto?

You get full CRUD on invites, entries, work schedules, desks, blocklist entries, and recurring invites. You can also create and manage reservations (including check-in, check-out, and cancel), list companies, locations, employees, flows, and spaces. Specific actions like invite check-in and work schedule check-in/check-out are also supported.

### Does Truto provide a unified API for Envoy employee data?

Yes. Envoy employees are mapped to Truto's Unified User Directory API (Users resource), so you can read employee data using the same schema you'd use for any other directory provider — no Envoy-specific parsing required.

### Can I manage recurring visitor invites through the integration?

Yes. You can create, read, and update recurring invites using the dedicated recurring invite endpoints, which is useful for regularly scheduled visitors like contractors or weekly vendor meetings.

### How does Truto handle pagination and rate limits for Envoy?

Truto abstracts away Envoy's pagination automatically — list endpoints return complete result sets without you needing to manage cursors or page tokens. Rate limit handling, including retries and backoff, is managed by Truto's proxy layer.

### Can I filter Envoy data by location?

Yes. You can list all locations via the locations endpoint and then scope queries for invites, entries, work schedules, desks, and reservations to a specific location — enabling multi-site support in your product.
