---
title: Nylas API Integration on Truto
slug: nylas
category: Email
canonical: "https://truto.one/integrations/detail/nylas/"
---

# Nylas API Integration on Truto



**Category:** Email  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 212 tools for Nylas that AI agents can call directly.

- **list_all_nylas_applications** — Get the Nylas application associated with your API key's client ID. Returns: request_id, data.
- **nylas_applications_bulk_update** — Update the Nylas application tied to the client ID of your API key. Requires a request body. Returns: success, data. Nylas replaces all data in any nested object with the values included in the request; this endpoint will be removed in the future when application settings are available in the Nylas Dashboard.
- **list_all_nylas_applications_redirect_uris** — List the callback URIs registered on the Nylas application. Returns each callback URI object with its id, platform, and url.
- **create_a_nylas_applications_redirect_uris** — Add a callback URI to the Nylas application for hosted authentication redirects. Returns the created callback URI object with its id, platform, and url. Depending on the platform, its client_secret is required unless you use OAuth 2.0 with PKCE.
- **get_single_nylas_applications_redirect_uris_by_id** — Get a single callback URI registered on the Nylas application by id. Returns the callback URI object with its id, platform, and url. Required: id.
- **update_a_nylas_applications_redirect_uris_by_id** — Update a callback URI by id; Nylas replaces all data in nested objects with the request values. Returns the updated callback URI object with its id, platform, and url. Required: id.
- **delete_a_nylas_applications_redirect_uris_by_id** — Delete a callback URI from the Nylas application by id. Returns: request_id. Required: id.
- **list_all_nylas_connectors** — List the connectors in your Nylas application. Returns an array of connector records including id, name, provider, settings, and scope. Supported filters: limit, offset.
- **create_a_nylas_connector** — Create a connector in Nylas to store the provider app credentials your application needs to connect to external services. Returns: request_id, data, id, name, provider, settings, scope. The body must include provider; provider-specific variants also require settings.client_id and settings.client_secret (google, microsoft, zoom, yahoo), settings for ews, or only provider (icloud, imap,…
- **nylas_connectors_bulk_update** — Update the connector for the specified provider in Nylas. Nylas replaces all data in nested objects with the values in your request rather than merging them. Returns: request_id, data, id, name, provider, settings, scope. Required: provider.
- **nylas_connectors_bulk_delete** — Delete the Nylas connector for the specified provider. All grants on the connector stop working right away and its credentials are deleted too. Returns an empty 204 response on success. Required: provider.
- **create_a_nylas_providers_detect** — Detect the email provider for an address in Nylas. Returns request_id and data containing the autodetected provider. Required: email.
- **list_all_nylas_connect_auths** — Start the Nylas Hosted OAuth authorization flow: validates the OAuth query parameters and redirects the user (302) to their provider's authorization page via the Location header; supports the authorization code flow with optional PKCE for client-side apps. Required: client_id, redirect_uri, response_type.
- **create_a_nylas_connect_token** — Exchange a Nylas OAuth code, refresh token, or grant id for an access token. Returns: access_token, expires_in, id_token, email, refresh_token, scope, token_type, grant_id, provider. Each OAuth code is one-time-use; a failed…
- **create_a_nylas_connect_revoke** — Revoke a Nylas OAuth access token, including all child tokens and the parent refresh token attached to it (the grant itself stays active, so the user can re-authenticate and the grant_id is unchanged). Returns a success acknowledgement as an unspecified JSON object. Fails if the token is invalid or already expired. Required: token.
- **list_all_nylas_connect_tokeninfos** — Get info about a Nylas OAuth token by passing either an ID token or an access token. Returns: request_id, data.
- **create_a_nylas_connect_custom** — Create a Nylas grant via the Bring Your Own Authentication flow — pass the provider and provider-specific settings (OAuth refresh token, IMAP/SMTP or iCloud credentials, EWS details, or an Agent Account email). Returns: request_id, data. Reuses an existing grant for a previously seen email.
- **list_all_nylas_grants** — List all grants in your Nylas application. Returns: account_id, blocked, created_at, email, grant_status, id, ip, name, provider, provider_user_id, scope, settings, email_aliases, state, updated_at, user_agent, workspace_id, credential_id. All query filters are optional.
- **get_single_nylas_grant_by_id** — Get a single Nylas grant by id. Returns the grant object including its id, email, provider, grant_status, scope, and settings. A grant_status of 'invalid' means the grant has expired and needs to be re-authenticated. Required: id.
- **update_a_nylas_grant_by_id** — Update a grant's provider settings or scope data in Nylas. Omitted top-level fields remain unchanged, and a non-empty settings object replaces (rather than deep merges) the stored settings. Returns: request_id, data. Required: id.
- **delete_a_nylas_grant_by_id** — Permanently delete a Nylas grant by id. The deleted grant cannot be re-authenticated (re-authenticating creates a new grant), and object IDs, sync state, and tracking links may change or break. Returns an empty 204 response on success. Required: id.
- **nylas_grants_list_events** — List events on a Nylas user's calendars for a given grant. Returns event objects including id, title, calendar_id, event_type, when (the event's start/end times or dates), and participants. Required: grant_id, calendar_id.
- **nylas_grants_attach_event** — Create an event on a user's calendar in Nylas for the specified grant. Returns request_id and the created event object (data) including id, calendar_id, title, when, participants, and conferencing. Microsoft and iCloud ignore notify_participants and always email participants about event changes. Required: grant_id, calendar_id, when.
- **nylas_grants_get_me** — Get the current grant in Nylas — the connected account tied to the access token used for the request. Returns request_id and the grant object (data) with id, grant_status, email, provider, and created_at. Requires a user access token; the me shorthand cannot be resolved with an API key alone.
- **list_all_nylas_workspaces** — List all workspaces in your Nylas application; the application queried is determined by the API key used. Returns Workspace objects with: id, name.
- **create_a_nylas_workspace** — Create a workspace in your Nylas application. Returns the created Workspace object including its id, name, domain, auto_group, policy_id, and rule_ids. Requires name. Omit domain to create a workspace that holds only the grants you assign to it. Required: name.
- **get_single_nylas_workspace_by_id** — Get a single Nylas workspace by id. Returns the Workspace object including its id, name, domain, auto_group, policy_id, and rule_ids. Required: id.
- **update_a_nylas_workspace_by_id** — Update a Nylas workspace by id. Returns the updated Workspace object including its id, name, domain, auto_group, policy_id, and rule_ids. The workspace's domain can't be changed after creation. Required: id.
- **delete_a_nylas_workspace_by_id** — Delete a Nylas workspace by id. The workspace's grants keep working and move to the application's default workspace, or become unassigned if there isn't one. You can't delete the application's default workspace. Returns an empty 204 response on success. Required: id.
- **create_a_nylas_workspaces_auto_group** — Start a background auto-grouping job in Nylas that sorts grants not yet in a workspace into workspaces by email domain, creating missing workspaces automatically. Returns: request_id, data. All body parameters are optional; with no filters Nylas considers all unassigned grants.
- **create_a_nylas_workspace_manual_assign** — Assign or remove grants from a Nylas workspace via manual assignment. Returns: request_id, data. At least one grant ID must be given in assign_grants or remove_grants (up to 500 per list); assigning a grant already in another workspace moves it. Required: workspace_id.
- **list_all_nylas_application_api_keys** — List all API keys associated with a Nylas application. Returns request_id and a data array of API keys, each with id, name, api_key, permissions, status, and created_at/expires_at timestamps. Required: application_id.
- **create_a_nylas_application_api_key** — Create an API key for a Nylas application. Returns request_id and a data object with the new key's id, api_key, name, permissions, status, and created_at/expires_at timestamps. Required: application_id.
- **delete_a_nylas_application_api_key_by_id** — Delete an API key from a Nylas application. Returns request_id on success. Required: id, application_id.
- **get_single_nylas_application_api_key_by_id** — Get a single API key for a Nylas application by id. Returns request_id and a data object with the key's id, name, api_key, permissions, status, and created_at/expires_at timestamps. Required: id, application_id.
- **list_all_nylas_webhooks** — List all webhook destinations configured for the Nylas application. Returns each destination with id, webhook_url, trigger_types, status, description, and notification_email_addresses.
- **create_a_nylas_webhook** — Create a Nylas webhook destination that delivers notifications for the given trigger types to an HTTPS endpoint; each destination must have its own unique URL. Returns the new destination including id, webhook_url, trigger_types, status, description, and webhook_secret. Required: trigger_types, webhook_url.
- **get_single_nylas_webhook_by_id** — Get a single Nylas webhook destination by id. Returns the destination including id, webhook_url, trigger_types, status, description, webhook_secret, and notification_email_addresses. Required: id.
- **update_a_nylas_webhook_by_id** — Update a Nylas webhook destination by id, specifying only the fields that need to change (empty fields do not overwrite existing values). Returns the updated destination including id, description, status, and notification_email_addresses. Required: id.
- **delete_a_nylas_webhook_by_id** — Delete a Nylas webhook destination record by id. Returns a success message on success. Required: id.
- **create_a_nylas_webhooks_rotate_secret** — Rotate the webhook secret for a Nylas webhook destination. Returns the updated Destination including its id, webhook_url, trigger_types, status, and the new webhook_secret; the previous secret immediately stops being used. Required: rotate_secret_id.
- **get_single_nylas_webhooks_mock_payload_by_id** — Get a mock Nylas webhook notification payload for the trigger type you specify, to preview what your webhook URL will receive. Returns: request_id, data (mock notification whose fields are specific to the requested trigger_type). Required: trigger_type.
- **create_a_nylas_webhooks_send_test_event** — Send a test webhook event in Nylas to check that a webhook destination is configured correctly; Nylas POSTs a mock notification to the specified webhook_url and waits for a success acknowledgement. Returns the mock notification payload for the requested trigger_type, with fields that vary by trigger type. The test signature is computed with the secret…. Required: trigger_type, webhook_url.
- **list_all_nylas_channels_pubsubs** — List the Pub/Sub notification channels (destinations) configured for the Nylas application. Returns destination records including id, description, topic, trigger_types, notification_email_addresses, status, and compressed_delivery.
- **create_a_nylas_channels_pubsub** — Create a Pub/Sub channel (destination) in the Nylas application that delivers notifications to a Google Pub/Sub topic. Returns the new destination including id, description, topic, trigger_types, status, and compressed_delivery. Requires a destination definition body including trigger_types. Required: trigger_types.
- **get_single_nylas_channels_pubsub_by_id** — Get a specific Pub/Sub channel (destination) from the Nylas application by id. Returns the destination including id, description, topic, trigger_types, notification_email_addresses, status, and compressed_delivery. Required: id.
- **update_a_nylas_channels_pubsub_by_id** — Update a Pub/Sub channel in the Nylas application by id; Nylas replaces all nested data with the request contents. Use status (active or pause) to restart a channel that was paused. Returns the updated destination including id, description, topic, trigger_types, status, and compressed_delivery. Required: id.
- **delete_a_nylas_channels_pubsub_by_id** — Delete a specific Pub/Sub channel from the Nylas application by id. Returns a success message in data along with a request_id. Required: id.
- **list_all_nylas_channels_sns** — List all Amazon SNS notification channels configured for the Nylas application. Returns channels with their id, trigger_types, topic, role_arn, and status. Truto handles pagination.
- **create_a_nylas_channels_sn** — Create a new Amazon SNS notification channel in the Nylas application. Returns the created channel with its id, trigger_types, topic, role_arn, and status. The topic must be a valid Amazon SNS topic ARN starting with `arn:aws:sns:`. Required: trigger_types, topic, role_arn.
- **get_single_nylas_channels_sn_by_id** — Get a specific Amazon SNS notification channel by id. Returns the channel with its id, trigger_types, topic, role_arn, and status. Required: id.
- **update_a_nylas_channels_sn_by_id** — Update an Amazon SNS notification channel by id; a PUT replaces all data in nested objects with the values sent in the request. Returns the updated channel with its id, trigger_types, topic, role_arn, and status. Status can be set to `active` to restart a channel that was paused. Required: id.
- **delete_a_nylas_channels_sn_by_id** — Delete a specific Amazon SNS notification channel by id. Returns a success confirmation envelope with request_id and data. Required: id.
- **list_all_nylas_connector_creds** — List Nylas credentials for a connector provider. Returns credentials with id, name, credential_type, created_at, and updated_at. Supports sort_by (created_at or updated_at) and order_by (asc or desc). Required: provider.
- **create_a_nylas_connector_cred** — Create a credential record for a Nylas connector provider. Returns request_id and data — the created credential with id, name, credential_type, and created_at. credential_type must be connector, serviceaccount, or adminconsent. Required: provider.
- **get_single_nylas_connector_cred_by_id** — Get a Nylas credential by id for a connector provider. Returns request_id and data — the credential object with id, name, credential_type, created_at, and updated_at. Required: id, provider.
- **update_a_nylas_connector_cred_by_id** — Update a Nylas connector credential by id. Nylas replaces all data in the nested credential_data object with the request contents. Returns request_id and data — the updated credential with id, name, credential_type, created_at, and updated_at. Required: id, provider.
- **delete_a_nylas_connector_cred_by_id** — Delete a Nylas credential by id. The connector's default (active) credential can't be deleted, only a non-default one, and grants using the deleted credential stop working immediately. Returns: request_id. Required: id, provider.
- **list_all_nylas_admin_domains** — List all email domains registered to your Nylas organization. Returns: id, name, branded, domain_address, organization_id, region, verified_ownership, verified_dkim, verified_spf, verified_mx, verified_feedback, verified_dmarc, verified_arc, created_at, updated_at. Max 200 per page.
- **create_a_nylas_admin_domain** — Create an email domain in Nylas for use with Transactional Send or Nylas Agent Accounts; its DNS records must be verified before use. Returns: request_id, data. Required: name, domain_address.
- **get_single_nylas_admin_domain_by_id** — Get a single Nylas email domain by id. Returns: request_id, data. Required: id.
- **update_a_nylas_admin_domain_by_id** — Update a Nylas email domain by id. Currently, only the name field can be updated. Returns: request_id, data. Required: id.
- **delete_a_nylas_admin_domain_by_id** — Delete a Nylas email domain by id. This action is irreversible. Returns: request_id. Required: id.
- **nylas_admin_domains_verify** — Trigger a DNS verification check for a domain in Nylas. Returns: request_id, data. Add the required DNS records to the domain's DNS configuration before calling. Required: domain_id, type.
- **get_single_nylas_domain_info_by_id** — Get the DNS record information and verification status for a Nylas domain. Returns request_id and data including domain_id, attempt (the DNS record options to configure at your DNS provider), status, created_at, expires_at, and message. Required: id, type.
- **list_all_nylas_policies** — List all policies for your Nylas application. Returns each policy's id, name, application_id, organization_id, limits, rules, and spam_detection settings.
- **create_a_nylas_policy** — Create a policy for your Nylas application defining message limits, spam detection settings, and linked rules for Agent Accounts. Returns: request_id, data. Required: name.
- **get_single_nylas_policy_by_id** — Get a single Nylas policy by id. Returns the policy object including its id, name, application_id, organization_id, limits, rules, and spam_detection settings. Required: id.
- **update_a_nylas_policy_by_id** — Update a Nylas policy by id. All fields are optional — only provided fields are updated, with the same limit, spam-sensitivity, and retention-period validation as on create. Returns: request_id, data. Required: id.
- **delete_a_nylas_policy_by_id** — Delete a Nylas policy by id. This action is irreversible. Returns: request_id. Required: id.
- **list_all_nylas_rules** — List all rules configured for your Nylas application. Returns rule records including id, name, description, trigger, match, and actions.
- **create_a_nylas_rule** — Create a rule in Nylas that filters or routes email — inbound rules run on incoming messages, outbound rules run on sends before they're submitted to the email provider. Returns the created rule with id, name, trigger, match, and actions. Requires name, match, and actions. Required: name, match, actions.
- **get_single_nylas_rule_by_id** — Get a single Nylas rule by id. Returns the full rule object including id, name, trigger, match, actions, enabled, and priority. Required: id.
- **update_a_nylas_rule_by_id** — Update a Nylas rule by id — only provided fields are changed, and the same validation rules apply as on create. Returns the updated rule including id, name, trigger, match, and actions. Required: id.
- **delete_a_nylas_rule_by_id** — Delete a Nylas rule by id. This action is irreversible — policies referencing the rule stop applying it and outbound sends no longer evaluate it. Returns the request_id of the deletion. Required: id.
- **list_all_nylas_grant_rule_evaluations** — List Nylas rule evaluations for a grant — an audit trail of the rules evaluated against each inbound message, SMTP envelope, or outbound send, which rules matched, and which actions were applied, returned most-recent-first. Returns: id, grant_id, message_id, evaluated_at, evaluation_stage, evaluation_input, applied_actions, matched_rule_ids, application_id, organization_id, created_at,…. Required: grant_id.
- **list_all_nylas_lists** — List all lists for your Nylas application. Returns: id, name, description, type, items_count, application_id, organization_id, created_at, updated_at.
- **create_a_nylas_list** — Create a list in Nylas — a typed collection of values (domains, TLDs, or email addresses) that rules can reference via the in_list condition. Returns: request_id, data, name, provider, settings, scope. Requires name and type; the list type is immutable after creation. Required: name, type.
- **delete_a_nylas_list_by_id** — Delete a Nylas list by id. This action is irreversible and removes all items in the list; rules using the in_list condition on it stop matching its values. Returns only the request_id acknowledgment. Required: id.
- **get_single_nylas_list_by_id** — Get a single Nylas list by id. Returns: request_id, data. Required: id.
- **update_a_nylas_list_by_id** — Update a Nylas list by id — only name and description can be changed; the list type is immutable after creation. Returns: request_id, data. Required: id.
- **list_all_nylas_list_items** — List the items stored in a Nylas list. Returns the items with their id and created_at (Unix timestamp in seconds); item values are validated against the parent list's type (domains, top-level domains, or email addresses). Required: list_id.
- **create_a_nylas_list_item** — Add items to a Nylas list. Values are normalized (lowercased and trimmed) and validated against the list's type; duplicate additions are silently ignored. Returns the updated list object including its name, type, and refreshed items_count. Max 1000 items per request, each at most 500 characters. Required: list_id, items.
- **nylas_list_items_bulk_delete** — Remove items from a Nylas list. Values not currently in the list are silently ignored. Returns the updated list object including its name, type, and refreshed items_count. Max 1000 items per request. Required: list_id, items.
- **list_all_nylas_grant_messages** — List email messages for a Nylas grant. Returns message objects with id, grant_id, subject, date, unread, starred, folders, headers, and metadata; use the fields parameter to request header variants, tracking options, or raw MIME. Nylas recommends filtering results because users receive a large number of messages. Required: grant_id.
- **update_a_nylas_grant_message_by_id** — Update attributes (folders, stars, read/unread status, and so on) of a Nylas email message by id. Returns the updated message object with id, grant_id, subject, date, unread, starred, folders, headers, and metadata. Note that a PUT replaces all data in nested objects, so include all fields you want to keep. Required: id, grant_id.
- **delete_a_nylas_grant_message_by_id** — Delete a Nylas email message by id. If hard_delete is false or omitted, Nylas moves the message to the user's Trash folder; set hard_delete to true to delete it permanently. Returns an empty 200 response on success. Required: id, grant_id.
- **get_single_nylas_grant_message_by_id** — Get a single Nylas email message by id. Returns the message object with id, grant_id, subject, date, unread, starred, folders, headers, and metadata; use the fields parameter to include full headers, tracking options, or raw MIME. Required: id, grant_id.
- **nylas_messages_cleans_bulk_update** — Clean one or more Nylas messages for a grant, removing extra information such as scripts, styles, links, images, and tables from the message content. Returns request_id and a data array of cleaned messages including body and conversation content. Requires grant_id and message_id. Nylas strips all extra information (such as <script> and <style> tags) regardless of the request configuration. Required: grant_id.
- **create_a_nylas_messages_send** — Send an email message immediately or on a schedule for a Nylas grant. Returns the sent message including id, subject, body, to, and headers. Scheduled sends (send_at) are asynchronous and don't return message headers. Required: grant_id, to.
- **nylas_messages_sends_create_for_domain** — Send a transactional email from a verified Nylas domain. Returns the sent message (id, subject, body, to, attachments, tracking_options) together with a request_id. Scheduled sends (send_at) must be at least one minute in the future and up to 30 days out. Required: domain_name, from, to.
- **list_all_nylas_messages_schedules** — List scheduled messages for a Nylas grant, covering both sent and unsent scheduled sends. Returns each schedule's id, send_at, created_at, and updated_at. Required: grant_id.
- **delete_a_nylas_messages_schedule_by_id** — Cancel a scheduled message in Nylas by id so it is not sent. Must be called at least 10 seconds before the message reaches its send_at time, or Nylas cannot guarantee the cancellation. Returns a 202 acknowledgement with the cancelled schedule's schedule_id. Required: id, grant_id.
- **get_single_nylas_messages_schedule_by_id** — Get a scheduled message by id in Nylas — both sent and unsent schedules can be retrieved. Returns the schedule's id, schedule_id, send_at, created_at, and updated_at. Required: id, grant_id.
- **create_a_nylas_messages_smart_compose** — Generate a message with Nylas Smart Compose from a free-text prompt. Returns: request_id, data, NYLAS_API_KEY. Field selection is not supported on Smart Compose endpoints. Required: grant_id.
- **create_a_nylas_message_smart_compose** — Generate an AI-suggested reply to a Nylas message based on a prompt. Returns: request_id, data, NYLAS_API_KEY. Required: grant_id, message_id.
- **list_all_nylas_grant_signatures** — List all signatures for a Nylas grant. Returns a request_id and a data array of signature objects including id, name, body, and grant_id. Required: grant_id.
- **create_a_nylas_grant_signature** — Create a signature for a Nylas grant. Returns a request_id and the created signature object including its id, name, body, and grant_id. Requires grant_id, name, and body. Each grant can have up to 10 signatures; HTML is sanitized and capped at 100 KB. Required: grant_id, name, body.
- **update_a_nylas_grant_signature_by_id** — Update the name, body, or both on a signature for a Nylas grant; the signature ID does not change. Returns a request_id and the updated signature object including id, name, body, and grant_id. Requires id and grant_id. Required: id, grant_id.
- **delete_a_nylas_grant_signature_by_id** — Delete a signature permanently from a Nylas grant. Signatures are also automatically deleted when the parent grant is deleted. Returns an empty 204 response on success. Required: id, grant_id.
- **get_single_nylas_grant_signature_by_id** — Get a single signature for a Nylas grant by id. Returns a request_id and the signature object including its id, name, body, and grant_id. Required: id, grant_id.
- **list_all_nylas_grant_drafts** — List all drafts in a Nylas user's Drafts folder. Returns drafts with their id, subject, to, folders, and date. Supports filters such as subject, any_email, to, cc, bcc, starred, thread_id, and has_attachment. Required: grant_id.
- **create_a_nylas_grant_draft** — Create a draft in Nylas with recipients, subject, body, attachments, and tracking options. Returns the created draft including its id, subject, to, body, and tracking_options. Required: grant_id.
- **update_a_nylas_grant_draft_by_id** — Update a draft in Nylas by id. When you make a PUT request, Nylas replaces all data in nested objects with the information included in the request. Returns the updated draft including id, subject, to, folders, and tracking_options. Required: id, grant_id.
- **delete_a_nylas_grant_draft_by_id** — Permanently delete a draft in Nylas by id. Returns: request_id, NYLAS_API_KEY. Required: id, grant_id.
- **get_single_nylas_grant_draft_by_id** — Get a single draft in Nylas by id. Returns the draft's id, subject, to, cc, bcc, body, folders, and date. Required: id, grant_id.
- **nylas_grant_drafts_send** — Send a Draft in Nylas as a message from the connected account. Optionally pass signature_id in the body to append a signature to the message body at send time. Returns: request_id, data. Required: grant_id, draft_id.
- **list_all_nylas_grant_threads** — List all threads in a connected Nylas account, with filters for participant emails, subject, folder, read/star status, attachments, and time ranges. Returns: id, NYLAS_API_KEY. Max 50 per page. Required: grant_id.
- **update_a_nylas_grant_thread_by_id** — Update a thread in a connected Nylas account by id — mark it read/unread, star it, or move it between folders. Returns the updated thread record with id, subject, unread, starred, and participants. Required: id, grant_id.
- **delete_a_nylas_grant_thread_by_id** — Delete a thread in a connected account by id. Nylas moves the thread and all of its messages to Trash. Returns an empty 200 response on success. Required: id, grant_id.
- **get_single_nylas_grant_thread_by_id** — Get a single email thread in a connected account by id. Returns the thread record with id, subject, unread, starred, and participants. Required: id, grant_id.
- **list_all_nylas_grant_folders** — List all folders for a Nylas grant, with sub-folders flattened into a single list. Returns the response envelope with request_id and a data array of folder records (id, name). Required: grant_id.
- **create_a_nylas_grant_folder** — Create a folder or label for a Nylas grant. Returns the Nylas response envelope with request_id and the created folder in data, including id and name. Requires grant_id and name. Required: grant_id, name.
- **update_a_nylas_grant_folder_by_id** — Update a folder on a Nylas grant by id; the PUT replaces nested object data with the fields you send. Returns the response envelope with request_id and the updated folder in data, including id and name. Required: id, grant_id.
- **delete_a_nylas_grant_folder_by_id** — Delete a Nylas folder or label by id. Returns an empty response with no data on success. Required: id, grant_id.
- **get_single_nylas_grant_folder_by_id** — Get a single Nylas folder or label by id. Returns the folder record with id, name, text_color, and background_color. Required: id, grant_id.
- **list_all_nylas_grant_attachments** — Get the metadata of a specific attachment in Nylas by attachment_id. Returns: id, NYLAS_API_KEY. Required: grant_id, attachment_id, message_id.
- **get_single_nylas_attachment_download_by_id** — Download the raw content of a Nylas attachment by id. Returns the attachment file itself as binary bytes, not a JSON object. Required: id, grant_id, message_id.
- **create_a_nylas_grant_attachment_upload** — Create a resumable upload session for a large attachment (up to 150 MB) in Nylas; PUT the file bytes to the returned url, then call complete. Returns request_id and data with attachment_id, url, headers, expires_at, max_size, and grant_id. Sessions expire one hour after creation and Microsoft grants only are supported. Required: grant_id, filename, content_type.
- **nylas_grant_attachment_uploads_complete** — Complete a Nylas attachment upload session after the file has been PUT to the pre-signed url; Nylas verifies the stored upload and readies the attachment for sends and drafts. Returns request_id and data with attachment_id, grant_id, and status. The uploaded file is deleted from storage one hour after session creation, so send within that window. Required: grant_id, attachment_id.
- **list_all_nylas_grant_calendars** — List all calendars for a Nylas grant (not supported for IMAP accounts). Returns each calendar's id, name, description, read_only, is_primary, and metadata. Required: grant_id.
- **create_a_nylas_grant_calendar** — Create a calendar for a Nylas grant. Returns the created calendar including its id, name, description, read_only, and metadata. Required: grant_id, name.
- **update_a_nylas_grant_calendar_by_id** — Update a Nylas calendar by id for a grant. Returns the updated calendar including its id, name, description, read_only, and metadata. A PUT replaces nested object data with the values included in the request. Required: id, grant_id.
- **delete_a_nylas_grant_calendar_by_id** — Delete a Nylas calendar by id for a grant. Returns the id of the deleted calendar. The account's primary calendar (is_primary: true) cannot be deleted. Required: id, grant_id.
- **get_single_nylas_grant_calendar_by_id** — Get a Nylas calendar by id for a grant. Returns the calendar including its id, name, description, read_only, is_primary, and metadata. Required: id, grant_id.
- **create_a_nylas_calendars_availability** — Get availability for one or more participants in Nylas, returning only the time slots when all participants are free. Returns: NYLAS_API_KEY. All timestamps must be multiples of 5 minutes, and participant emails must be associated with valid Nylas grants. Required: duration_minutes, end_time, participants, start_time.
- **create_a_nylas_calendars_free_busy** — Get the free/busy schedule for a list of email addresses in Nylas. Returns request_id and data, where each data item holds object, time_slots (with start_time/end_time), and error details when a lookup fails. Not supported for iCloud; all addresses must use the same provider (max 20 for Microsoft Graph, 50 for Google), and the endpoint always…. Required: grant_id, start_time, end_time, emails.
- **get_single_nylas_events_import_by_id** — Import recurring events, recurring event exceptions, and single events from a Nylas calendar within a given time frame. Returns the list envelope: request_id plus data — an array of events each with id, grant_id, application_id, calendar_id, and master_event_id. Events are not guaranteed to be sorted by start time and may repeat when results are paginated. Required: id, calendar_id.
- **list_all_nylas_grant_events** — Get a single Nylas calendar event by id. Returns the event including id, grant_id, calendar_id, title, when (start/end times), location, participants, and conferencing details. Required: grant_id, event_id, calendar_id.
- **update_a_nylas_grant_event_by_id** — Update a Nylas calendar event by id; Nylas replaces nested objects with the values in your request. Returns the updated event including id, title, when, location, and participants. You can't update events where read_only is true, or whose parent calendar is read_only. Required: id, grant_id, calendar_id, when.
- **delete_a_nylas_grant_event_by_id** — Delete a Nylas calendar event by id. Google moves deleted events to Trash (readable for a period via show_cancelled); Microsoft deletes them immediately. Returns a 200 confirmation containing request_id and a data object. Required: id, grant_id, calendar_id.
- **create_a_nylas_event_send_rsvp** — Send an RSVP response (yes, maybe, or no) to a Nylas calendar event you are a participant of. Not supported for iCloud. Returns a success envelope with request_id and a data message confirming the update. Required: grant_id, event_id, calendar_id.
- **list_all_nylas_grant_resources** — List room resources in Nylas — rooms that can be booked for meetings, conferences, and other events. Returns room resource records including id and provider-specific attributes. Required: grant_id.
- **list_all_nylas_grant_contacts** — List contacts for a Nylas grant's connected account. Returns each contact's id, source, given_name, surname, emails, phone_numbers, and metadata. When metadata_pair is set, you can't also use email, phone_number, group, recurse, or a non-default source. Required: grant_id.
- **create_a_nylas_grant_contact** — Create a contact in a Nylas grant's address book. Returns the created contact including id, source, given_name, surname, emails, phone_numbers, and metadata. New contacts use source=address_book, and the provider write and metadata write are not atomic. Required: grant_id, given_name.
- **update_a_nylas_grant_contact_by_id** — Update a contact in a Nylas grant's address book. Returns the updated contact including id, source, given_name, surname, emails, phone_numbers, and metadata. The PUT replaces all data in nested objects; for metadata, omission preserves it, a supplied object replaces it, and {} clears it. Required: id, grant_id.
- **delete_a_nylas_grant_contact_by_id** — Delete a contact from a Nylas grant's address book and clean up its Nylas-managed metadata. Returns an empty 204 response on success. Required: id, grant_id.
- **get_single_nylas_grant_contact_by_id** — Get a single Nylas contact by id. Returns the full contact object including id, source, given_name, surname, emails, phone_numbers, physical_addresses, web_pages, and metadata. Set profile_picture=true to include a Base64 image blob when picture_url is present. Required: id, grant_id.
- **list_all_nylas_contacts_groups** — List the Contact Groups associated with a Nylas grant. Returns request_id and data, an array of contact group objects with id and name. Not supported for EWS accounts. Required: grant_id.
- **list_all_nylas_grant_notetakers** — List all Notetaker bots for a Nylas grant. Returns a request_id and an array of Notetaker bots in data, each with id, state, created_at, and updated_at. Required: grant_id.
- **create_a_nylas_grant_notetaker** — Invite a Nylas Notetaker bot to a meeting. Returns a request_id and the created bot in data, including its id, state, created_at, and updated_at. If neither config_id nor notetaker_settings is provided, settings are resolved from the nearest ancestor configuration. Required: grant_id, meeting_link.
- **update_a_nylas_grant_notetaker_by_id** — Update a scheduled Nylas Notetaker bot by id. Returns a request_id and the updated bot in data, including its id, state, created_at, and updated_at. Only Notetakers in the scheduled state can be updated; once the bot has joined, the request fails with a 400 Bad Request. Required: id, grant_id.
- **delete_a_nylas_grant_notetaker_by_id** — Permanently delete a Nylas Notetaker bot by id, removing all associated recordings, transcripts, thumbnails, summaries, and action items. Works regardless of the bot's state and cannot be undone. Returns the request_id confirmation. Required: id, grant_id.
- **get_single_nylas_grant_notetaker_by_id** — Get a single Nylas Notetaker bot by id. Returns a request_id and the bot in data, including its id, state, created_at, and updated_at. Required: id, grant_id.
- **nylas_grant_notetakers_delete_cancel** — Cancel a Nylas Notetaker before it joins its meeting — allowed while its status is scheduled, connecting, or waiting_for_entry. Returns request_id and the cancelled Notetaker in data. After the Notetaker joins, use the leave endpoint; to permanently remove it in any state, use delete. Required: grant_id, notetaker_id.
- **nylas_grant_notetakers_get_history** — Return the full history of events and state changes for a Nylas Notetaker bot. Returns request_id and the history in data. Required: grant_id, notetaker_id.
- **create_a_nylas_notetaker_leaf** — Remove a Nylas Notetaker bot from the meeting it is currently attending, scoped to a specific grant. Returns a leave confirmation response; the Nylas API reference does not enumerate its fields. If the Notetaker's status is scheduled, connecting, or waiting_for_entry, use the cancel endpoint instead. Required: grant_id, notetaker_id.
- **nylas_notetaker_leaves_create_for_notetaker** — Remove a standalone (account-level) Nylas Notetaker bot from the meeting it is currently attending, without needing a grant identifier. Returns a leave confirmation response; the Nylas API reference does not enumerate its fields. If the Notetaker's status is scheduled, connecting, or waiting_for_entry, use the cancel endpoint instead. Required: notetaker_id.
- **get_single_nylas_media_by_id** — Get the media links Nylas generated for a Notetaker bot under a specific grant. Returns the request_id and the data array of links to that bot's generated media. Required: id, grant_id.
- **nylas_media_get_for_notetaker** — Get the media links Nylas generated for a standalone (account-level) Notetaker bot. Returns the request_id and the data array of links to that bot's generated media. Required: notetaker_id.
- **list_all_nylas_notetakers** — List all standalone Nylas Notetaker bots for the account. Returns each bot's id, name, state, join_time, and created_at.
- **create_a_nylas_notetaker** — Invite a standalone Nylas Notetaker bot to a meeting. Returns the created Notetaker record including its id, name, and created_at timestamp. When dispatch suppression is active for the application or workspace, requests that would join immediately are rejected and no Notetaker is created. Required: meeting_link.
- **get_single_nylas_notetaker_by_id** — Get a single standalone Nylas Notetaker bot by id. Returns the Notetaker's details including id, name, state, join_time, and created_at. Required: id.
- **update_a_nylas_notetaker_by_id** — Update a scheduled standalone Nylas Notetaker bot. Returns the updated Notetaker including id, name, state, and join_time. Only Notetakers in the scheduled state can be updated; once the bot has joined the meeting, the API returns 400. Required: id.
- **delete_a_nylas_notetaker_by_id** — Delete a standalone Nylas Notetaker bot by id. This is a hard delete that cannot be undone: it removes the Notetaker and all associated recordings, transcripts, thumbnails, summaries, and action items, regardless of the Notetaker's state. Returns: id, name, state, join_time, created_at, updated_at. Required: id.
- **nylas_notetakers_get_history** — Get the full history of events and state changes for a standalone Nylas Notetaker bot. Returns: request_id, data. Required: notetaker_id.
- **nylas_notetakers_delete_cancel** — Cancel a standalone Nylas Notetaker before it joins the meeting. Only works while its status is scheduled, connecting, or waiting_for_entry — after it joins, use the leave endpoint instead. Returns: request_id, data. Required: notetaker_id.
- **list_all_nylas_notetakers_configs** — List Nylas Notetaker Configurations for the application. Returns request_id and data, where each configuration includes id, name, scope context, notetaker_settings, and version. Internal calendar, recurring-series, and per-Notetaker configurations are excluded.
- **create_a_nylas_notetakers_config** — Create a Nylas Notetaker Configuration whose reusable settings Notetakers inherit through the hierarchy. Returns: id, version, name, provider, settings, scope. The context field you provide sets the scope (application_id alone, workspace_id, or grant_id); workspace_id and grant_id are mutually exclusive, and grant configurations reject notetaker_settings and deduplication_policy.
- **get_single_nylas_notetakers_config_by_id** — Get a Nylas Notetaker Configuration by id with its resolved settings merged from all ancestors in the hierarchy. Returns request_id and data including id, name, notetaker_settings, and version. Required: id.
- **update_a_nylas_notetakers_config_by_id** — Update a Nylas Notetaker Configuration by id; only the fields included in the request body change, and each update increments the configuration's version number. Returns: id, version. Required: id.
- **delete_a_nylas_notetakers_config_by_id** — Delete a Nylas Notetaker Configuration by id; child configurations are reparented to the deleted configuration's parent, and the platform default configuration cannot be deleted. Returns request_id and data. Required: id.
- **list_all_nylas_templates** — List all application-level templates in Nylas. Returns the template objects including their id and name.
- **create_a_nylas_template** — Create an application-level template in Nylas with a name, subject, HTML body, and templating engine. Returns the created template object including its id and name. Required: body, name, subject.
- **get_single_nylas_template_by_id** — Get a single application-level template by id in Nylas. Returns the template object including its id and name. Required: id.
- **update_a_nylas_template_by_id** — Update an application-level template by id in Nylas, replacing its name, subject, HTML body, or templating engine. Returns the updated template object including its id and name. Required: id.
- **delete_a_nylas_template_by_id** — Delete an application-level template by id in Nylas. Returns: request_id, data. Required: id.
- **create_a_nylas_templates_render** — Render the HTML content of a Nylas application-level template using the provided variables and templating engine. Returns: request_id, data, name, provider, settings, scope. Required: body, engine, variables.
- **nylas_templates_renders_create_for_grant** — Render the HTML content of a Nylas grant-level template using the provided variables and templating engine. Returns: request_id, data, name, provider, settings, scope. Required: grant_id, body, engine, variables.
- **create_a_nylas_template_render** — Render an application-level Nylas template with the provided variables, substituting them into the template's content. Returns: request_id, data, name, provider, settings, scope. Required: template_id, variables.
- **nylas_template_renders_create_for_grant** — Render a grant-level Nylas template for a specific connected account, substituting the provided variables into the template's content. Returns: request_id, data, name, provider, settings, scope. Required: grant_id, template_id, variables.
- **list_all_nylas_grant_templates** — List all grant-level templates for a Nylas grant. Returns the response envelope with request_id and a data array of templates (id, name, subject, body, engine). Up to 200 per page (defaults to 50). Required: grant_id.
- **create_a_nylas_grant_template** — Create a grant-level template in Nylas with a name, subject, body, and templating engine. Returns request_id and the created template in data (id, name, subject, body, engine). Required: grant_id, body, name, subject.
- **update_a_nylas_grant_template_by_id** — Update a grant-level template in Nylas by id. Returns request_id and the updated template in data (id, name, subject, body, engine). Nylas replaces the nested data you send, so include every field you want to keep. Required: id, grant_id.
- **delete_a_nylas_grant_template_by_id** — Delete a grant-level template in Nylas by id. Returns only a simple success confirmation with no template body. Required: id, grant_id.
- **get_single_nylas_grant_template_by_id** — Get a grant-level template by id in Nylas. Returns request_id and the template in data (id, name, subject, body, engine). Required: id, grant_id.
- **list_all_nylas_workflows** — List all application-level workflows in Nylas. Returns each workflow with id, name, trigger_event, template_id, delay, and is_enabled.
- **create_a_nylas_workflow** — Create an application-level workflow in Nylas that automatically sends messages when a defined trigger event fires. Returns the created workflow including id, name, trigger_event, template_id, delay, and is_enabled. Requires name, trigger_event, and template_id from an existing Nylas template. Required: name, template_id, trigger_event.
- **get_single_nylas_workflow_by_id** — Get a single application-level workflow in Nylas by id. Returns: id, name, trigger_event, template_id, delay, is_enabled. Required: id.
- **update_a_nylas_workflow_by_id** — Update an application-level workflow in Nylas by id, such as renaming it or toggling is_enabled. Returns the updated workflow including id, name, trigger_event, template_id, delay, and is_enabled. Required: id.
- **delete_a_nylas_workflow_by_id** — Delete an application-level workflow in Nylas by id. Returns a simple 200 confirmation containing request_id and data. Required: id.
- **list_all_nylas_grant_workflows** — List all grant-level workflows for a Nylas grant. Returns request_id plus a data array of workflows with id, name, trigger_event, template_id, delay, and is_enabled. Required: grant_id.
- **create_a_nylas_grant_workflow** — Create a grant-level workflow in Nylas that automatically sends a message when a defined event fires. Returns request_id and the created workflow (id, name, trigger_event, template_id, delay, is_enabled). Requires grant_id, name, trigger_event, and template_id; you must have an existing grant-level template. Required: grant_id, name, template_id, trigger_event.
- **update_a_nylas_grant_workflow_by_id** — Update a grant-level workflow in Nylas by id. Returns request_id and the updated workflow (id, name, trigger_event, template_id, delay, is_enabled). Required: id, grant_id.
- **delete_a_nylas_grant_workflow_by_id** — Delete a grant-level workflow in Nylas by id. Returns request_id and a simple data confirmation body on success. Required: id, grant_id.
- **get_single_nylas_grant_workflow_by_id** — Get a single grant-level workflow by id from a Nylas grant. Returns request_id and the workflow object including id, name, trigger_event, template_id, delay, and is_enabled. Required: id, grant_id.
- **list_all_nylas_scheduling_configurations** — List all Nylas Scheduler configurations for a grant. Returns: id, slug, requires_session_auth, participants, availability, event_booking, scheduler, created_at, updated_at. Limit up to 200 per page. Required: grant_id.
- **create_a_nylas_scheduling_configuration** — Create a Nylas Scheduler configuration that defines the settings and preferences for a scheduling session. Returns: request_id, data, name, provider, settings, scope. Required: grant_id.
- **update_a_nylas_scheduling_configuration_by_id** — Update a Nylas Scheduler configuration by id. Nylas replaces nested objects with the data in the request, so include all mandatory fields. Returns the updated configuration including id, slug, participants, availability, and event_booking. Required: id, grant_id.
- **delete_a_nylas_scheduling_configuration_by_id** — Delete a Nylas Scheduler configuration by id. Returns a 200 success response on success. You can't delete a configuration that has active sessions. Required: id, grant_id.
- **get_single_nylas_scheduling_configuration_by_id** — Get a Nylas Scheduler configuration by id. Returns the configuration including id, slug, participants, availability, event_booking, and scheduler. Required: id, grant_id.
- **list_all_nylas_configuration_group_events** — List all group events for a Nylas Scheduler configuration within a given time range. Returns group event objects with: title, description, location, capacity, participants, when, recurrence, busy, and scheduler. Requires grant_id, configuration_id, calendar_id, start_time, and end_time. Required: grant_id, configuration_id, calendar_id, start_time, end_time.
- **create_a_nylas_configuration_group_event** — Create a group event in a Nylas Scheduler configuration. Returns: name, provider, settings, scope. Requires grant_id, configuration_id, title, when, participants, and capacity. Required: grant_id, configuration_id, calendar_id, capacity, participants, title, when.
- **update_a_nylas_configuration_group_event_by_id** — Update a group event in a Nylas Scheduler configuration by id. Returns the updated group event with its title, description, location, capacity, participants, when, recurrence, busy, and scheduler. Requires id, grant_id, and configuration_id. PUT replaces nested object data entirely with the values in the request. Required: id, grant_id, configuration_id.
- **delete_a_nylas_configuration_group_event_by_id** — Delete a group event from a Nylas Scheduler configuration by id. Returns: request_id, data. Requires id, grant_id, and configuration_id. Required: id, grant_id, configuration_id.
- **create_a_nylas_configuration_import_group_event** — Import existing calendar events as group events into a Nylas Scheduler configuration, up to 20 events per request. Returns the imported group event payload with fields defined by the Nylas Scheduler group-event schema. Required: configuration_id.
- **create_a_nylas_group_events_validate_timeslot** — Validate a group event time slot in Nylas Scheduler: checks whether the selected group event or time slot has changed and is now invalid — for example the group event was deleted, was updated, or its capacity changed. Sends the slot details (calendar_id, event_id, capacity, start_time, end_time, emails) and returns a validation result for the slot. Required: configuration_id, calendar_id, event_id.
- **create_a_nylas_scheduling_session** — Create a short-lived Nylas Scheduler session that the Scheduling Component can use to enforce user authentication. Returns the created session object including its id.
- **delete_a_nylas_scheduling_session_by_id** — Delete a Nylas Scheduler session by id. Returns the Nylas response envelope (request_id, data) identifying the deleted session. Required: id.
- **list_all_nylas_scheduling_availabilities** — Get the available time slots within a given time range for a Nylas Scheduler Configuration, using the rules defined in that Configuration (group Configurations return only valid group events, including recurring ones). Returns the request_id and a data array of available time slots. Required: start_time, end_time.
- **create_a_nylas_scheduling_booking** — Book an event in Nylas Scheduler using the participants and details from the session's Configuration object. Returns request_id and data (the created Booking object with the booked start_time/end_time slot and guest details). The times must correspond to a valid slot returned by the Availability endpoint for the same Configuration. Required: start_time, end_time, guest.
- **get_single_nylas_scheduling_booking_by_id** — Get a Nylas Scheduler booking by id. Returns request_id and data (the Booking object with the booked start_time/end_time slot, guest details, and status). Required: id.
- **update_a_nylas_scheduling_booking_by_id** — Confirm or cancel a pending Nylas Scheduler booking by id; Nylas also updates the associated event on the provider. Returns request_id and data (the confirmed or cancelled Booking object with its status and the booked time slot). Required: id, salt, status.
- **delete_a_nylas_scheduling_booking_by_id** — Delete a Nylas Scheduler booking by id and cancel the associated event on the provider. Returns: request_id. Pass cancellation_reason to record why the booking was cancelled. Required: id.
- **nylas_scheduling_bookings_partial_update** — Reschedule a Nylas Scheduler booking by id; Nylas also updates the associated event on the provider. Returns request_id and data (the rescheduled Booking object with the updated start_time/end_time slot and guest details). Nylas recommends against changing participants' email addresses while rescheduling. Required: id.
- **get_single_nylas_scheduling_should_redirect_by_id** — Check the v2 Scheduler redirect status for a Scheduling Page in nylas. Pass the v2 Scheduler Page slug as id and nylas responds with the redirect object: request_id plus a data object containing should_redirect and redirect_url. Required: id.
- **create_a_nylas_migration_tools_link_v_2_v_3_app** — Link an existing Nylas v2 application to a v3 application as the first step of the v2-to-v3 app migration. Returns: request_id, data. No request body — Nylas detects both application IDs from the API key and the required BasicV2 header, and both applications must be in the same data center region.
- **create_a_nylas_migration_tools_import_v_2_app** — Import v2 Nylas app settings (website URL, icon URL, OAuth redirect URIs, and integrations migrated to v3 connectors) to the linked v3 application. Returns: request_id, data, name, provider, settings, scope. The import continues as background jobs. Requires the v2 app to be linked to the v3 app first; no required parameters — Nylas detects the application ID from the API key.
- **nylas_migration_tools_grants_clone** — Clone a single Nylas v2 connected account into a v3 grant, intended for test migrations before using the batch clone endpoint. Returns request_id and data containing the migrated v3 grant object (id, email, provider, grant_status, scope, created_at). Accounts that cannot be migrated automatically receive a placeholder invalid grant unless disabled. Required: account_id.
- **create_a_nylas_migration_tools_snapshot_batch_clone** — Start a Nylas batch migration that clones v2 connected accounts to v3 grants; a snapshot job and a batch clone job run in the background. Returns: request_id, data. All inputs are optional — body fields limit, offset, providers, mode and query flags allow_invalid_grant_creation, clone_exchange. Requires v2 apps linked to v3 apps with working connectors first.
- **list_all_nylas_migration_tools_jobs** — List migration jobs for your Nylas application, including background snapshot and migration job progress. Returns: job_id, type, public_application_id, status, count_all, count_success, count_failed, count_warning, created_at, updated_at, linked_job_id. Optionally filter by status and type, or sort pending and running jobs first with sort_by_completion.
- **create_a_nylas_migration_tools_translate** — Translate Nylas v2 IDs into their v3 provider IDs. Returns: request_id, data, next_page_number. Requires resource_type and v2_account_id. Intended as a one-time migration operation; returns up to 3000 records per page and does not work for v2 accounts with the Outlook provider. Required: resource_type, v2_account_id.

## How it works

1. **Link your customer's Nylas 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 Nylas.** The Proxy API is a 1-to-1 mapping of the Nylas 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

- **Auto-log email conversations into your CRM** — Sales and revenue platforms can sync reps' Gmail and Outlook threads to the right account or deal record in real time, eliminating manual logging and keeping pipeline data fresh.
- **Native scheduling across providers** — ATS, sales, and services apps can compute cross-provider free/busy, generate Calendly-style booking links, and create calendar events on the user's native calendar — without building a scheduler from scratch.
- **Send email from the user's own outbox** — Outreach, mail merge, and support tools can send 1:1 messages directly through the user's Gmail or Microsoft account, preserving deliverability (SPF/DKIM) and keeping sent mail in the user's own Sent folder.
- **Deploy AI notetakers into customer meetings** — Conversational intelligence and customer success platforms can dispatch a bot to Zoom, Meet, or Teams calls on the user's calendar, then retrieve recordings, transcripts, and media for downstream analysis.
- **Event-driven inbox and calendar workflows** — Helpdesks and workflow tools can subscribe to Nylas webhooks (or Pub/Sub / SNS channels) to react instantly to new messages, calendar changes, and grant events instead of polling.

## What you can build

- **Bi-directional email sync with thread and folder context** — Pull messages, threads, folders, and attachments from any connected mailbox and reflect updates like read status or folder moves back to the provider.
- **Cross-provider availability and booking engine** — Use availability and free/busy endpoints to find overlapping time across Google and Microsoft calendars, then create events and send RSVPs programmatically.
- **AI Smart Compose and reply drafting** — Generate context-aware email drafts and replies grounded in an existing message thread using Nylas's smart compose endpoints.
- **Meeting Notetaker bots with transcripts and media** — Create, schedule, and cancel notetaker bots on user calendars, then fetch recordings, transcripts, and media artifacts once meetings complete.
- **Reusable templates, signatures, and outbound rules** — Ship per-user signatures, templated messages, and application-level rules that transform or route outbound mail before it hits the provider.
- **Clean, NLP-ready message bodies** — Use the message clean endpoint to strip HTML, styles, and quoted replies so you can feed email bodies into AI pipelines or render tidy CRM timelines.

## FAQs

### How do end users connect their email and calendar accounts?

Truto handles the Nylas hosted auth flow for you. Your users authenticate with their provider (Google, Microsoft, IMAP, etc.) and Truto stores the resulting Nylas grant, which you reference by account to call any grant-scoped endpoint like messages, calendars, or contacts.

### Which email and calendar providers are supported?

Through Nylas, you get a single integration that covers Google Workspace, Microsoft 365 / Exchange, Outlook.com, Yahoo, iCloud, and generic IMAP. You build once against Truto's Nylas tools and your users connect whichever provider they use.

### How do we get real-time updates instead of polling?

Nylas supports webhooks as well as Google Pub/Sub and AWS SNS channels. You can create and manage these subscriptions through Truto's webhook, pubsub, and SNS tools, then react to message, thread, calendar, and grant events as they happen.

### Can we send email from the end user's own mailbox?

Yes. The messages/send and drafts/send tools dispatch mail through the user's connected provider, so messages originate from their actual address with proper SPF/DKIM alignment and land in their native Sent folder.

### Does the integration cover scheduling and Notetaker features?

Yes. Truto exposes Nylas's scheduling configurations, availability, bookings, and group events, as well as the full Notetaker surface — creating bots, managing their lifecycle, pulling history, and retrieving media and transcripts.

### How are rate limits and token refreshes handled?

Nylas abstracts provider-specific OAuth refresh and rate limits behind its unified API, and Truto manages auth storage and request orchestration on top. You call Truto endpoints with an account identifier and don't have to manage per-provider tokens or quirks yourself.

## Related reading

- [Best Unified Calendar API in 2026: Truto vs Nylas vs Cronofy vs Merge](https://truto.one/blog/best-unified-calendar-api-in-2026-truto-vs-nylas-vs-cronofy-vs-merge/) — Truto vs Merge for calendar integrations: compare architecture, pricing at scale, data residency, custom fields, and AI agent support. Quick decision guide included.
