Expose a narrow server-side support experience without leaking ThriveDesk credentials.
A customer portal should call your backend, which authenticates the customer and then calls ThriveDesk. Never put a ThriveDesk bearer token in browser or mobile application code.
Customer browser → Your authenticated backend → ThriveDesk API
↓
tenant authorizationMap the signed-in application's customer ID to a ThriveDesk contact ID. Before returning any conversation, verify it belongs to that contact. Return only fields the portal needs.
curl "https://api.thrivedesk.com/v1/contacts/CONTACT_ID/conversations?limit=20" \
-H "Authorization: Bearer $THRIVEDESK_TOKEN"Use the contact conversation endpoint for lists and fetch a conversation only after authorization. Proxy attachment downloads through the same authorization boundary.
Translate upstream 401/403 into a generic portal error, return 404 rather than revealing another
customer's record, and rate-limit both the customer session and your ThriveDesk client.