Changelog
Product update of the week: Year 4 • Week 44
New in Truto: More places to send your data, and OAuth sign-in for the Platform MCP
This week, sync jobs can write to five more datastores: Azure Blob Storage, Postgres, Pinecone, BigQuery, and Snowflake. The Truto Platform MCP now supports sign-in with OAuth, so Claude, ChatGPT, and other MCP clients can connect with your Truto account, with no API token. We also rolled out a broad security upgrade, launched a live status page, and added a large set of Unified Accounting API methods for Brightpearl, Wave, and NetSuite. On top of that, 55 new AI-ready integrations are now in production.
✨ Highlights
- Added 55 new AI-ready integrations, now in production, including Twilio, Segment, Tenable, Fivetran, Mirakl Connect, and ShipHero, for building AI workflows.
- Improved AI-ready tools for Lever.
- Action needed for OIDC SSO: your identity provider must now confirm each user's email address (
email_verified: true), or those users can't sign in. Using Microsoft Entra ID? Turn on thexms_edovoptional claim in your Entra app registration, or connect Entra ID with SAML. - Sync jobs can now write to five more datastores: Azure Blob Storage, Postgres, Pinecone, BigQuery, and Snowflake.
- The Truto Platform MCP now supports sign-in with OAuth. Add
https://api.truto.one/platform/mcpas a custom connector and sign in with your Truto account. No API token is needed. - New Unified Accounting API methods: 9 for Brightpearl, 28 for Wave, and 14 read methods for NetSuite.
- A broad security upgrade: secrets are never returned in API responses, 2FA secrets are encrypted, and sign-in checks are stricter.
- status.truto.one now shows the live health of each part of Truto.
- Static Gate can now be enabled for an integration at the catalog level. It's on for Gong, in line with Gong's latest OAuth recommendations.
- Brightpearl lists now paginate correctly, and Wave
expenses.createreturns the new expense's ID.
🤖 AI-ready integrations

- 15Five: Let AI agents work with 15Five check-ins, goals, and performance reviews.
- Twilio: Give AI agents access to Twilio messages, calls, and phone numbers.
- Miro SCIM: Let AI agents manage Miro users and groups through SCIM provisioning.
- Microsoft Sentinel: Connect AI agents to Microsoft Sentinel incidents, alerts, and threat investigations.
- Talkdesk: Give AI agents access to Talkdesk contact center calls, agents, and customer interactions.
- Miro: Let AI agents work with Miro boards, items, and team collaboration.
- Tenable: Connect AI agents to Tenable assets, vulnerability scans, and findings.
- Hotjar: Give AI agents access to Hotjar user behavior and feedback insights.
- Dropbox Sign (HelloSign): Let AI agents create, send, and track Dropbox Sign signature requests and templates.
- Fivetran: Connect AI agents to Fivetran connectors, destinations, and sync status.
- Brex: Give AI agents access to Brex cards, expenses, and transactions.
- Adobe Marketo Engage: Let AI agents work with Marketo Engage leads, campaigns, and marketing programs.
- Retool: Connect AI agents to Retool apps, resources, and workflows.
- Segment: Give AI agents access to Segment sources, destinations, and tracking plans.
- Pendo SCIM: Let AI agents manage Pendo users and groups through SCIM provisioning.
- CircleCI: Connect AI agents to CircleCI pipelines, workflows, and jobs.
- Constant Contact: Give AI agents access to Constant Contact contacts, lists, and email campaigns.
- Pendo: Let AI agents work with Pendo product analytics, guides, and visitor data.
- Buildkite: Connect AI agents to Buildkite pipelines, builds, and agents.
- Bitwarden: Give AI agents access to Bitwarden organization members, collections, and groups.
- Rapid7: Let AI agents work with Rapid7 vulnerability and security operations data.
- Prisma Cloud: Connect AI agents to Prisma Cloud alerts, assets, and compliance findings.
- SmartRecruiters: Give AI agents access to SmartRecruiters jobs, candidates, and hiring workflows.
- Mirakl Connect: Let AI agents work with Mirakl Connect marketplace orders, offers, and sellers.
- Monta: Give AI agents access to Monta warehouse orders, stock, and shipments.
- Ongoing WMS: Connect AI agents to Ongoing WMS inventory, orders, and shipments.
- QLS: Let AI agents work with QLS fulfillment orders, products, and shipments.
- App Store Connect: Give AI agents access to App Store Connect apps, builds, and customer reviews.
- Salesforce B2C Commerce: Let AI agents work with Salesforce B2C Commerce products, orders, and customers.
- Sellercloud: Connect AI agents to Sellercloud orders, products, and inventory.
- ShipHero: Give AI agents access to ShipHero orders, inventory, and shipments.
- Shoptet: Let AI agents work with Shoptet e-shop products, orders, and customers.
- StoreFeeder: Connect AI agents to StoreFeeder orders, products, and stock.
- Vilkas: Give AI agents access to Vilkas orders, stock, and logistics data.
- BQE CORE: Let AI agents work with BQE CORE projects, time entries, and billing.
- Campfire: Connect AI agents to Campfire accounting records, invoices, and financial reports.
- Epicor Kinetic: Give AI agents access to Epicor Kinetic ERP orders, parts, and financial data.
- Exact Online: Let AI agents work with Exact Online accounting, invoices, and customers.
- Infor SyteLine: Connect AI agents to Infor SyteLine ERP orders, items, and production data.
- MYOB Business: Give AI agents access to MYOB Business accounting, invoices, and contacts.
- Sage 300 Construction and Real Estate: Let AI agents work with Sage 300 Construction and Real Estate jobs, costs, and accounting data.
- Google Play: Connect AI agents to Google Play apps, reviews, and release data.
- Salesforce Marketing Cloud Engagement: Give AI agents access to Marketing Cloud Engagement subscribers, journeys, and email sends.
- Maxio Core: Let AI agents work with Maxio Core subscriptions, invoices, and billing.
- Account Engagement: Connect AI agents to Account Engagement prospects, forms, and campaigns.
- TinyFish: Give AI agents access to TinyFish web agents and automations.
- Dev.to: Let AI agents work with Dev.to articles, comments, and publishing.
- Hashnode: Connect AI agents to Hashnode blog posts, drafts, and publications.
- ServiceM8: Give AI agents access to ServiceM8 jobs, clients, and scheduling.
- Aspire: Let AI agents work with Aspire landscaping jobs, estimates, and invoices.
- AccuLynx: Connect AI agents to AccuLynx roofing jobs, contacts, and estimates.
- CompanyCam: Give AI agents access to CompanyCam projects, photos, and job documentation.
- Hover: Let AI agents work with Hover property measurements and projects.
- JobTread: Connect AI agents to JobTread jobs, estimates, and construction schedules.
- NexHealth: Give AI agents access to NexHealth patients, appointments, and practice data.
🛠️ AI-ready improvements
- Improved AI-ready tools for Lever.
🗄️ Five more datastores for sync jobs
Sync jobs can now write to five more datastores. Credentials are encrypted and never returned by the API, and each datastore has a Test connection button.

- Azure Blob Storage: uploads files and lists them, the same way S3 and Google Cloud Storage do. Sign in with a SAS token or an account key.
- Postgres: inserts, upserts, and deletes rows, or runs any SQL statement. Works with Neon and pgvector. Supabase works only with SSL turned off.
- Pinecone: upserts, queries, and deletes vectors, and supports Pinecone's document indexes.
- BigQuery: streams rows into your tables with a service account.
- Snowflake: inserts rows or runs SQL statements, signed in with a key pair.
🔗 Sign in to the Truto Platform MCP with OAuth
Add https://api.truto.one/platform/mcp as a custom connector in Claude, ChatGPT, or another MCP client, and sign in with your Truto account. No API token is needed.
- One environment: on the consent screen you pick one environment, and the connection can see only that environment.
- Read by default: the connection can only read integrations, connected accounts, sync jobs, and logs.
- Actions on request: running actions, like testing an account or refreshing its credentials, needs a second permission. The client asks you for it the first time you use one.
- Changes stay in the dashboard: deletes and other changes aren't available through the MCP.
- Standards: supports the latest MCP spec (2026-07-28) and earlier versions, plus dynamic client registration and Client ID Metadata Documents.
📈 Expanded Unified APIs
Unified Accounting API: Brightpearl
| Integration | What you can now do |
|---|---|
Create and update contacts and items; create contact groups, credit notes, purchase orders and journal entries; create payments (customer and supplier payments are routed by payment_for). |
Brightpearl fixes
- Pagination now works for every Brightpearl API. All 13 searchable lists used to stop at page 1 and never return a cursor. The results array was read as a single wrapper item (
response_path: "response"), so offset pagination stopped as soon asnumResultswas lower than the limit. Pagination now followsmetaData.morePagesAvailable, and all 13 lists page and finish correctly. item_receipts.listno longer returns duplicate IDs. The goods-in search returns one row per received line, not per goods-in note, so a note with 7 lines came back as 7 records sharing one ID. Lines are now grouped bybatchId.warehouse-goods-out-note.getused{{id}}twice in the path, for both the order ID and the note ID, so it only worked when the two happened to match. It now uses each ID correctly.- Removed a stray
config.querythat addedorderId=&=to the query string of every Brightpearl request, and an emptynew_resource.
Unified Accounting API: Wave
| Integration | What you can now do |
|---|---|
| Manage invoices, items and tax rates (list, read, create, update and delete); create, update and delete accounts and contacts; read, create, update and delete payments; read currencies and company info. |
Wave fix
expenses.createreturned{"id": null}on every call. It readresponse.data.moneyTransactionCreate.transaction.id, butresponse_pathhad already sliced the body to that node. It now returns the new expense's ID.
Unified Accounting API: NetSuite
| Integration | What you can now do |
|---|---|
| Read (list and get) attachments, credit notes, item receipts, purchase order requisitions, payment methods, shipping methods and contact groups. |
🔐 Security and account protection
We rolled out a broad security upgrade across Truto. Your credentials, team data, and sign-in settings are better protected, and there's nothing you need to do.
- Secrets stay secret: passwords, 2FA secrets, and app credentials are never returned in any API response.
- Encrypted 2FA: authenticator secrets are now stored encrypted, just like your app credentials.
- Safer edits: when you update an integration, environment, or SSO connection, your saved secrets (like Slack webhook URLs or OAuth client secrets) are kept. Send only the fields you want to change.
- Clear team boundaries: invites, SSO, and SCIM sign-ups give access only to your own team's environments. Role changes apply only to the team you're editing.
- More reliable settings: "Set as default" on an SSO connection keeps it active, editing an API token's IP allowlist keeps its expiry, and "User deactivated" emails are sent only when a user is actually deactivated.
- Clearer errors: invalid settings and sync job values now return a clear
400error instead of being saved. - Locked-out users: if a user is locked out after too many wrong 2FA codes, contact Truto support and we'll restore access. Their 2FA setup stays the same, so they can sign in with their authenticator app or a backup code.
🔑 Sign-in
- OIDC SSO: your identity provider now needs to confirm each user's email address (
email_verified: true). Users whose identity provider doesn't confirm it can't sign in. Using Microsoft Entra ID? Turn on thexms_edovoptional claim in your Entra app registration, or connect Entra ID with SAML. The SSO setup screen walks you through it. - SSO domains: SSO sign-in now always checks that the user's email domain is verified for that connection.
- Google, GitHub, and Microsoft sign-in: only verified email addresses can be used to sign in.
- Private error reports: our error reports never include your request content or credentials.
📟 Status page
status.truto.one now shows the live health of each part of Truto, based on checks that run around the clock.
- API: Unified API, Proxy API, and MCP servers, checked every minute.
- Sync jobs and webhooks: sync jobs (V3 and V4) and webhooks, checked every 5 minutes.
- Datastores and log destinations: Amazon S3 and Google Cloud Storage datastores, plus Amazon S3, OpenTelemetry, and Elasticsearch log destinations.
- Integrations: live test calls to Notion and Slack through Truto.
- Connect: connection links are now checked every 3 minutes.
- Incident emails: subscribe to the page to get an email whenever we post an incident update.
🚪 Static Gate at the catalog level
Truto now lets you enable Static Gate for an integration at the catalog level. It's enabled for Gong, in line with Gong's latest OAuth recommendations, which call for static IP allowlisting for each OAuth app.
⚙️ Platform Improvements
- Parquet exports:
$jsonToParquetnow keeps every row in the right place when a nested (JSON) column has empty values. The fix is also available in@truto/truto-jsonata2.1.1 and 3.1.3 on npm. - Datastores: Test connection now runs only the checks each datastore supports, and returns a clear
400error for anything else. Google Cloud Storage errors now show Google's own message, so they're easier to fix.
🔄 Integration Improvements
- HubSpot: Unified CRM webhooks now support events from HubSpot's new developer platform (
object.creation,object.propertyChange,object.deletion, andobject.merge) for contacts and companies. - Jamf Pro: in the Unified User Directory API, fetching an admin user by ID (for example
admin|1) now always returns the right Jamf Pro account.