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:

RequirementDetails
HTTPS endpointAn endpoint that accepts a JSON POST request. Separate test and production URLs are recommended.
Authorization methodOne of the supported methods in Step 1, with credentials Authenticx can use.
Matching keyAn 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.

MethodHow It WorksWhat 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 headerNo 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:

KeyWhen to Use It
Client Call ID (recommended)Your source system sends its own conversation identifier to Authenticx.
CRM Object IDA call is split into one record per patient, and each is tied to a CRM record (for example, a Salesforce Task).
Custom metadata fieldYour 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.

CategoryExamplesNotes
Model ResultsAny Core AI model, LLM model, or classifierFrequently targeted models include Summary, Eddy, Safety Event models, and custom models.
ScorecardsQuality resultsAnswers or scores from a configured scorecard module.
MetadataTimestamp, arrival time, call direction, media type, channel count, campaign ID, episode ID, caller name, phone, emailAuthenticx can pass through any metadata it received with the conversation.
AgentAgent code, first and last name, email, user ID, manager ID, start dateFrom the agent record linked to the conversation.
TranscriptOriginal, translated, or redacted transcript, based on your organization's configurationSent as [{Text, From, Timestamp}], grouped by speaker.
System ValuesCurrent time (ISO 8601), current dateUseful 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:

RequirementDetails
Method and formatPOST with Content-Type: application/json (UTF-8).
Success responseReturn any 2xx status code. Any other status code, or a timeout, is treated as a failure.
RetriesFailed deliveries are retried automatically using the retry count and interval configured for your endpoint.
Duplicate handlingAuthenticx 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:

ValueDescriptionExample
Endpoint URLsThe test and production URLs that will receive messages.https://api.example.com/authenticx/ingest
Authorization detailsThe method chosen in Step 1 and its credentials. Never share credentials by email.Token URL, client ID, client secret, scopes
Matching keyThe field name your system expects and the Authenticx value that fills it.Client Call Id
Message fieldsA field list or a sample JSON body.See the example in Step 3
Delivery rulesWhich conversations should be sent to your endpoint.Only conversations associated with specific lines of business
Retry settingsHow many times to retry a failed delivery, and how long to wait between attempts.3 retries, 300 seconds apart
Technical contactSomeone 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:

SettingDescription
EndpointYour test and production endpoint URLs.
CredentialsStored encrypted in an isolated vault scoped to your organization.
Message templateMaps Authenticx data to the field names and structure of your JSON message.
Delivery rulesDefines which conversations are sent to your endpoint.
Retry settingsThe number of retries and the interval between attempts.
Additional headersOptional fixed headers sent on every request.

Testing & Validation

RequirementDetails
Test endpoint / recordYour Authenticx implementation team validates the integration against your test endpoint or record before going live in production.
Record verificationConfirm that test messages create or update the expected records in your system using the matching key.
Technical contactSomeone on your team should be available during onboarding to help with field mapping, authorization, and troubleshooting.

Did this page help you?