iPaaS · Beta
Tray.ai
API integration
Ship iPaaS features without building the integration. Full Tray.ai API access via Proxy and 10+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Tray.ai
Common scenarios for SaaS companies building Tray.ai integrations for their customers.
Offer a white-labeled integration marketplace
B2B SaaS companies can embed Tray.ai as the backend engine for their native integration catalog, shipping dozens of third-party connectors without building each one from scratch. Truto handles the API plumbing so your team ships the marketplace in days.
Provision integration tenants automatically
Spin up a Tray.ai user for every new customer in your product the moment they sign up, so their integration workspace is ready before they ever click 'Connect'. This keeps your onboarding flow frictionless and multi-tenant isolation airtight.
Ship fleet-wide integration upgrades
When an upstream API changes or you fix a bug in a shared workflow, push the updated solution to every customer instance via a single backend job. No support tickets, no customer-side migrations, no downtime.
Build a fully headless, branded integration UX
Use your own React frontend to collect auth and config inputs, then pass them to Tray.ai through Truto so the orchestration runs invisibly in the background. Keeps full UI/UX control for compliance-sensitive products like FinTech or Healthtech.
Automate staging-to-production integration promotion
Wire Tray.ai project export and import into your CI/CD pipeline so integration changes flow from staging to production like any other code deploy. Enables proper version control and review for your integration team.
What You Can Build
Ship these features with Truto + Tray.ai
Concrete product features your team can ship faster by leveraging Truto’s Tray.ai integration instead of building from scratch.
One-click connector activation
Generate a Tray.ai authorization code on demand and launch a connect flow that creates the user, captures third-party auth, and deploys the solution instance in a single click.
Native in-app integration settings page
Query available solutions and render your own configuration form, then write user selections back as config values on the solution instance for a fully branded experience.
Over-the-air upgrade controller
Build an internal dashboard that lists customers running outdated solution versions and triggers bulk upgrades across your entire install base with one action.
Tenant lifecycle sync
Mirror your product's user lifecycle into Tray.ai by creating, updating, and deleting Tray users whenever customers are provisioned, renamed, or churned.
Auth health monitor
List and inspect each customer's authentications to detect broken or revoked third-party credentials, then surface a 'reconnect' prompt inside your app before workflows fail.
CI/CD integration pipeline
Use project export and import endpoints to version integration projects in Git and promote them between staging and production environments automatically.
SuperAI
Tray.ai 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_tray_ai_authentications
List Tray Embedded authentications available to the viewer, with connector details. Returns edges whose node includes id, name, customFields, and service (id, name, icon, title, version). Paginated by cursor.
create_a_tray_ai_authentication
Create a Tray Embedded user authentication for a service connector. Returns: id. Required: name, service_id, service_environment_id, authentication_data. hidden defaults to true.
delete_a_tray_ai_authentication_by_id
Delete a Tray Embedded authentication by id. Returns: data. Required: id. Any workflow currently using the authentication will break, so recreate it in the target organization or workspace instead of moving it when possible.
list_all_tray_ai_solutions
List the Tray Embedded solutions available to your End Users. Returns data.viewer.solutions with edges of solution nodes (id, title, description, tags, customFields, configSlots, authSlots) and pageInfo cursors. Supports cursor-based pagination; no required parameters.
list_all_tray_ai_users
List Tray embedded end users in your org. Returns: id, name, externalUserId, isTestUser, authType, authId. Cursor-paginated.
update_a_tray_ai_user_by_id
Update a Tray embedded end user by id, e.g. rename the user or toggle their test-user status. Returns: id, name, externalUserId, isTestUser, authType, authId. Required: id.
tray_ai_users_create_user_token
Create a user access token for a Tray embedded end user. Returns: accessToken, authType, authId. Required: user_id.
delete_a_tray_ai_user_by_id
Delete a Tray embedded end user by id. The user can no longer edit or access their instances or trigger new ones, though running executions are completed. Returns: clientMutationId, authType, authId. Required: id.
tray_ai_users_generate_authorization_code
Generate a one-time-use authorization code for a Tray embedded end user, for use in the Auth dialog or Config Wizard url. Returns: authorizationCode, authType, authId. Required: user_id.
get_single_tray_ai_user_by_id
Get a Tray Embedded end user by id. Returns: id, name, authType, authId. Required: id.
create_a_tray_ai_user
Create a Tray Embedded end user. Returns: userId, authType, authId. Required: name, external_user_id.
list_all_tray_ai_solution_instances
List solution instances in Tray.io. Returns the solutionInstances connection under data.viewer.solutionInstances: each edge node carries id, name, enabled, owner, created, solutionVersionFlags, workflows, authValues, and configValues, with pageInfo cursors.
create_a_tray_ai_solution_instance
Create a solution instance for an end user from a Tray.io solution. Returns the created instance's id, name, enabled, created, and workflows under data.createSolutionInstance.solutionInstance. Required: solution_id, name.
update_a_tray_ai_solution_instance_by_id
Update a Tray.io solution instance by id — rename it and/or enable or disable it. Returns the updated instance's id, name, enabled, and created under data.updateSolutionInstance.solutionInstance. Required: id, name, enabled.
delete_a_tray_ai_solution_instance_by_id
Delete a Tray.io solution instance by id; its underlying workflows stop after completing their currently executing steps. Returns the removeSolutionInstance confirmation payload with clientMutationId. Required: id.
tray_ai_solution_instances_upgrade
Upgrade a Tray solution instance to a newer version of its solution, applying new config and auth slot values. Returns the upgraded instance: id, enabled, created, config_values, auth_values. Required: solution_instance_id.
tray_ai_projects_export
Export a Tray project as a JSON payload for backup or promotion to another workspace or environment. Returns: exportedProjectJson. Required: project_id.
tray_ai_projects_import
Import an exported Tray project into a target project from its exported project JSON. Returns: clientMutationId. Required: exported_project_json, target_project_id.
tray_ai_projects_export_config
Export the configuration of a Tray project as a JSON payload. Returns: exportProjectConfigJson. Required: project_id.
Why Truto
Why use Truto’s MCP server for Tray.ai
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Tray.ai in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Tray.ai account
Use Truto’s frontend SDK to connect your customer’s Tray.ai account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Tray.ai
Truto’s Proxy API is a 1-to-1 mapping of the Tray.ai API. You call us, we call Tray.ai, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Tray.ai’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Tray.ai on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication to Tray.ai work through Truto?
Truto handles the Tray Embedded master token on your behalf, and exposes endpoints to generate per-user tokens and authorization codes so your end users can securely authenticate with third-party services via Tray's auth dialog or your own headless flow.
How do I associate a Tray.ai user with a customer in my product?
When creating a Tray.ai user through Truto, pass your internal tenant or customer ID as the external_user_id. That identifier becomes the stable key you use to look up, update, or delete that customer's Tray resources later.
Can I deploy integrations without using Tray's embedded UI?
Yes. You can list solutions to fetch their config and auth slot requirements, collect inputs in your own UI, and then create or update solution instances programmatically with the config values and auth IDs you've gathered.
How do I push an updated workflow to all existing customer instances?
Publish the new version of the master solution in Tray, then iterate your customer solution instances and call the upgrade endpoint for each one. This updates every tenant without requiring customer action.
Can I move integration projects between environments?
Yes. Truto exposes Tray's project export, export config, and import endpoints, which you can wire into a CI/CD pipeline to promote integration projects from staging to production in a controlled way.
How do I verify a customer has successfully connected a third-party app?
Use the list authentications endpoint, filtered by the Tray user tied to that customer, to confirm an authentication record exists for the target service before enabling or activating the related solution instance.
Tray.ai
Get Tray.ai integrated into your app
Our team understands what it takes to make a Tray.ai integration successful. A short, crisp 30 minute call with folks who understand the problem.