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
| Collection | Credential | Reaches | Who 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 |
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
- 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.
- Fill in
client_idandclient_secret. For a tenant, running Setup → Redeem activation code fills both in automatically and stores them. - Set
actor_user_idto a Salesforce User Id. Every write is rejected with 400 without it, and every audit row is attributed to it. - 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.
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"