← API docs
Postman

Collections

Two collections, because there are two credentials. Which one you want depends on what you are holding, not on which host you are calling.

Which is which

CollectionCredentialReachesWho holds it
Gateway & Tenant OAuth, tenant scope, pinned to one organisation Session keys, escalations, seats, own usage — plus all of /v1/* The customer's Salesforce org
Admin Control Plane OAuth, admin scope, unscoped Every organisation: contracts, credits, project keys, activation, maintenance Trivora only
Both credentials talk to admin.trivora.tech. The split is by scope, not by host. ai.trivora.tech serves inference and nothing else — it holds no management endpoints at all, and everything outside /v1/* on it returns 404.

Gateway & Tenant API For customers

Trivora AI — Gateway & Tenant API

Setup · sessions & escalation · chat · transcription · seats · usage & logs

The runtime surface. Hand this to whoever is building the Salesforce package or a direct integration. Every request carries the reasoning behind it in its description, including the measured behaviour that is not obvious from the shape of the endpoint.

Admin Control Plane Internal

Trivora Admin — Control Plane

Organisations · credits · project keys · activation codes · seats · usage · audit · maintenance

Cross-tenant. The credential behind it reads every organisation and moves money, so keep this collection and its environment out of shared Postman workspaces.

Getting started

  1. Import the collection and its environment, then select the environment in Postman's top-right picker. Nothing works until it is selected — the requests read every value from it.
  2. Fill in client_id and client_secret. For a tenant, running Setup → Redeem activation code fills both in automatically and stores them.
  3. Set actor_user_id to a Salesforce User Id. Every write is rejected with 400 without it, and every audit row is attributed to it.
  4. Send anything. A collection pre-request script fetches the OAuth token and caches it until just before it expires, so you never run the token request by hand.
Tokens last 15 minutes. That is not a limitation to work around — Salesforce Named Credentials cache a token for its lifetime, so it costs one token request per 15 minutes per org, not one per call.

Running it from the terminal

Both collections run under Newman without modification. Pass secrets as overrides rather than committing them into the environment file:

newman run trivora-gateway.postman_collection.json \
  -e trivora-tenant.postman_environment.json \
  --env-var "client_id=$TRIVORA_CLIENT_ID" \
  --env-var "client_secret=$TRIVORA_CLIENT_SECRET" \
  --folder "Conversations"