Custom Outbound API Integrations
Authenticx can deliver conversation insights directly to a custom ingestion endpoint in your environment. Once connected, each conversation that meets your criteria is sent to your endpoint as a JSON message containing the fields you choose, such as AI summaries, model results, and conversation metadata.
How It Works
After Authenticx finishes processing a conversation, it evaluates the conversation against the delivery rules configured for your organization. When a conversation qualifies, Authenticx builds a JSON message from your agreed-upon template, authenticates with your system, and sends one POST request per conversation to your endpoint.
Each message includes a matching key, typically the Client Call ID, so your system can tie the data back to the original source record. Every delivery attempt is logged, and failed attempts are retried automatically.
Prerequisites
Before your Authenticx implementation team can activate this integration, the following must be in place:
| Requirement | Details |
|---|---|
| HTTPS endpoint | An endpoint that accepts a JSON POST request. Separate test and production URLs are recommended. |
| Authorization method | One of the supported methods in Step 1, with credentials Authenticx can use. |
| Matching key | An identifier that exists both in your system and on the Authenticx conversation record, typically the Client Call ID. See Step 2. |
Step 1: Choose an Authorization Method
Authenticx supports three ways to authenticate with your endpoint. OAuth 2.0 client credentials is recommended.
| Method | How It Works | What You Provide |
|---|---|---|
| OAuth 2.0 client credentials (recommended) | Authenticx sends a POST request to your token URL as form data (grant_type=client_credentials, client_id, client_secret, scope), then sends Authorization: Bearer <access_token> on each message. | Token endpoint URL, client ID, client secret, scopes (optional) |
| Header-based token request (GET) | Authenticx sends a GET request to your token URL with headers you define. Header values can include the client ID, client secret, and a Unix timestamp in milliseconds. The returned token is sent as a Bearer token on each message. | Token endpoint URL, header names and value format, client ID, client secret |
| API key or static header | No token request. Authenticx sends your headers on each message, for example x-api-key: <key>. | Header name(s) and API key. A Basic auth value can be sent this way if you provide it already base64-encoded. |
Token response requirements
For both token-based methods, your token endpoint must:
- Return JSON containing access_token and token_type. Responses missing either field fail.
- Issue access_token as a JWT. Authenticx reads its expiry to decide when to request a new token.
Warning: The header-based token request supports GET only. Credentials can be sent in headers only, not in the query string or request body, and values are sent exactly as stored. Authenticx cannot hash, sign, or base64-encode them (for example, an HMAC signature). If your token endpoint requires POST with custom headers or a JSON body, use OAuth 2.0 client credentials instead.
Tip: If your endpoint needs additional fixed headers (for example, a tenant or tracking header), Authenticx can include them on every request. Header values can include the Authenticx Conversation ID.
Step 2: Choose a Matching Key
Each message must include a matching key so your system can tie the Authenticx data back to its source record. Commonly used keys include:
| Key | When to Use It |
|---|---|
| Client Call ID (recommended) | Your source system sends its own conversation identifier to Authenticx. |
| CRM Object ID | A call is split into one record per patient, and each is tied to a CRM record (for example, a Salesforce Task). |
| Custom metadata field | Your identifier is sent to Authenticx as a custom metadata field (for example, a case number). |
Recommendation: Include the Authenticx Conversation ID alongside your matching key. It gives both teams a shared reference for support and troubleshooting.
Step 3: Choose the Data to Receive
You choose the field names and structure of the JSON message. Authenticx populates each field from one of the sources below.
| Category | Examples | Notes |
|---|---|---|
| Model Results | Any Core AI model, LLM model, or classifier | Frequently targeted models include Summary, Eddy, Safety Event models, and custom models. |
| Scorecards | Quality results | Answers or scores from a configured scorecard module. |
| Metadata | Timestamp, arrival time, call direction, media type, channel count, campaign ID, episode ID, caller name, phone, email | Authenticx can pass through any metadata it received with the conversation. |
| Agent | Agent code, first and last name, email, user ID, manager ID, start date | From the agent record linked to the conversation. |
| Transcript | Original, translated, or redacted transcript, based on your organization's configuration | Sent as [{Text, From, Timestamp}], grouped by speaker. |
| System Values | Current time (ISO 8601), current date | Useful as a sent-at timestamp. |
Example Message Body
{
"conversationId": "8f1c2e7a-5b3d-4c9e-a1f0-2d6b7e9c4a11",
"clientCallId": "CALL-20261027-0042",
"metadata" : {
"ANI": "1235554569",
"DNIS": "0985557654",
"callDirection": "Inbound"
},
"agent" : {
"Name": "Jane Doe",
"ManagerId" : "f17da206-3044-483c-9dcc-a56ccbad738f"
},
"modelResults" : {
"summary": "The caller contacted the agent to request an update on a patient's enrollment form and clarify missing information. The agent identified that the initial form was incomplete, lacking essential details such as prescriber information, insurance information, and lab results. The agent offered to resend the form and provided detailed instructions on how to complete it, including specific sections requiring attention and submission methods.",
"eddy": "true",
"callResolution": "Next Steps Needed for Customer"
},
"QualityScorecard" : {
"activeListeningScore": "Meets",
"offerAssistanceScore": "Meets"
},
"Transcription" : [
{
"Text": "This call may be monitored or recorded for quality and training purposes. Hello, thank you for calling Company Name. This is Jane Doe speaking. How can I help you today?",
"From": "agent",
"Timestamp": "2026-07-22T17:33:33.236+00:00"
},
{
"Text": "Hello, this is a representative from a Provider. I wanted to check on a mutual patient's enrollment in your patient support program.",
"From": "customer",
"Timestamp": "2026-07-22T17:34:05.045+00:00"
}
],
"sentAt": "2026-01-01T12:34:56Z"
}Step 4: Your Endpoint
Your endpoint must meet the following requirements:
| Requirement | Details |
|---|---|
| Method and format | POST with Content-Type: application/json (UTF-8). |
| Success response | Return any 2xx status code. Any other status code, or a timeout, is treated as a failure. |
| Retries | Failed deliveries are retried automatically using the retry count and interval configured for your endpoint. |
| Duplicate handling | Authenticx sends each conversation once per endpoint. A conversation can be resent if a human review overrides or changes an earlier model result, so we recommend updating existing records by matching key rather than creating new ones. |
| Response body (optional) | If your endpoint returns JSON (for example, {"uid": "REC-123"}), Authenticx stores it with the delivery record so your record ID is available for support and auditing. |
Step 5: Provide Details to Authenticx
Collect the following and share them securely with your Authenticx implementation team:
| Value | Description | Example |
|---|---|---|
| Endpoint URLs | The test and production URLs that will receive messages. | https://api.example.com/authenticx/ingest |
| Authorization details | The method chosen in Step 1 and its credentials. Never share credentials by email. | Token URL, client ID, client secret, scopes |
| Matching key | The field name your system expects and the Authenticx value that fills it. | Client Call Id |
| Message fields | A field list or a sample JSON body. | See the example in Step 3 |
| Delivery rules | Which conversations should be sent to your endpoint. | Only conversations associated with specific lines of business |
| Retry settings | How many times to retry a failed delivery, and how long to wait between attempts. | 3 retries, 300 seconds apart |
| Technical contact | Someone on your team who can help troubleshoot failed deliveries. | [email protected] |
What Authenticx Configures
Your Authenticx implementation team handles the following configuration on your behalf:
| Setting | Description |
|---|---|
| Endpoint | Your test and production endpoint URLs. |
| Credentials | Stored encrypted in an isolated vault scoped to your organization. |
| Message template | Maps Authenticx data to the field names and structure of your JSON message. |
| Delivery rules | Defines which conversations are sent to your endpoint. |
| Retry settings | The number of retries and the interval between attempts. |
| Additional headers | Optional fixed headers sent on every request. |
Testing & Validation
| Requirement | Details |
|---|---|
| Test endpoint / record | Your Authenticx implementation team validates the integration against your test endpoint or record before going live in production. |
| Record verification | Confirm that test messages create or update the expected records in your system using the matching key. |
| Technical contact | Someone on your team should be available during onboarding to help with field mapping, authorization, and troubleshooting. |
Updated about 11 hours ago
