Skip to main content

Audio integrations

An audio integration connects a platform where your calls are generated or stored with AuditorIA, so recordings come in without uploading them by hand. Each integration is an entry point: it drops the audio into AuditorIA and, from there, the app processes it through its normal flow (transcription, analysis and auditing).

Audio sources are chosen per campaign, from the Audio Sources tab. This page explains how to connect each external source. For the campaign's overall map, see Campaign configuration.

What an integration does and doesn't do

No integration audits on its own. It only makes the audio enter AuditorIA. Once inside, the case follows the same path as any other: it shows up in tasks, gets transcribed and is ready to audit.

The webhook address is your installation's

Webhook integrations (like Anura) send data over the internet to your own AuditorIA's public address. The endpoint you enter in Anura is https://<your-auditoria-domain>/webhook/anura/, where the domain is your installation's. You don't have to guess it: AuditorIA shows you the exact endpoint on the Anura screen (step 1), ready to copy. An installation on localhost cannot receive these webhooks: the external platform needs an address reachable from the internet.


Anura

Connect your cloud PBX Anura so every call that ends with a recording enters AuditorIA automatically and is ready to audit.

How it works

When a call ends in Anura, Anura sends a notification (webhook) to AuditorIA with the call data and the link to the recording. AuditorIA validates the access key, identifies the operator, downloads the recording, creates the task and processes it. You don't have to upload anything by hand.

Before you start

  • A call campaign created in AuditorIA. You'll need its identifier (campaign_id). See Campaign configuration.
  • A quality scorecard linked to that campaign, so you can audit afterwards. See Quality scorecards.
  • An AuditorIA API Key (the key that authenticates Anura's notification).
  • Access to the Events / Webhooks configuration in your Anura account.
  • Your AuditorIA public URL (see the note about the webhook address).

Step 1 - In AuditorIA: set Anura as the source

  1. In the side menu, open Campaigns > Campaign configuration > Calls. You'll see the campaign list: pick the one you want to integrate with Anura.

Campaign list in Campaign configuration

  1. Open the campaign (if it's new, save it first: the source is configured on an already-saved campaign) and go to the Audio Sources tab.

Campaign open with its configuration tabs

  1. Choose Anura and save.

Audio Sources tab with Anura selected

When you choose Anura, AuditorIA shows a guide with the endpoint, the headers and the rules. Use it as a reference while you configure the event in Anura.

Anura configuration guide inside AuditorIA

Step 2 - In AuditorIA: create the API Key

  1. Open Settings > API Keys (/dashboard/settings/api-keys).
  2. Generate an API Key and copy it. You'll use it as the X-API-Key header when configuring Anura.
info

Store the API Key in a safe place when you create it. It's the credential that authenticates Anura's notifications against your AuditorIA.

Step 3 - In Anura: create the event

In your Anura account, create an event that notifies AuditorIA when the call ends.

  1. Go into the Anura panel.

Anura main panel

  1. Open Configuration > Events.

Anura menu: access to Events

  1. Use Add to create a new event.

Event list in Anura with the Add button

The event has three tabs: Request, Headers and Body. Complete all three.

Request

Define where and how the notification is sent.

FieldValue
ProtocolHTTPS
Hostyour AuditorIA public domain
Port443
Path/webhook/anura/
MethodPOST
Content typeapplication/json
AuthorizationNo authorization (the key goes in Headers)

Request tab of the event in Anura

The host is your installation's

The host is your AuditorIA installation's public domain. Don't guess it: the exact endpoint, ready to copy, is shown on the Audio Sources > Anura screen (step 1). An installation on localhost won't work, because Anura needs to reach it from the internet.

Headers

Add, as Key / Value pairs, the notification headers:

  • X-API-Key: the API Key you created in step 2.
  • Content-Type: application/json.

Headers tab of the event in Anura with X-API-Key and Content-Type

Body

The Body is the JSON that Anura will send on each call. It's built like this:

  • the keys are the fields AuditorIA needs;
  • the values are Anura's {{ ... }} variables, which Anura replaces with the real data when sending;
  • campaign_id is not a variable: it's your campaign's number in AuditorIA. You see it in the campaign header as Campaign ID #N, and it goes without quotes.

Don't include the automatic fields: cdrid is generated by AuditorIA if missing, and hooktrigger defaults to END (besides, your event already fires only on END).

Paste this JSON in the Body and replace <YOUR_CAMPAIGN_ID> with your campaign's number:

{
"dialtime": "{{ dialtime }}",
"direction": "{{ direction }}",
"calling": "{{ calling }}",
"called": "{{ called }}",
"status": "{{ status }}",
"duration": "{{ duration }}",
"billseconds": "{{ billseconds }}",
"wasrecorded": "{{ wasrecorded }}",
"audio_file_mp3": "{{ audio_file_mp3 }}",
"accountname": "{{ accountname }}",
"accountextension": "{{ accountextension }}",
"queueagentname": "{{ queueagentname }}",
"answerterminal": "{{ answerterminal }}",
"campaign_id": <YOUR_CAMPAIGN_ID>
}

Body tab of the event in Anura with the JSON pasted

What each field is for:

FieldWhat it's for
dialtimeCall date and time.
directionInbound (inbound) or outbound (outbound).
calling / calledOrigin and destination numbers.
statusFinal call status.
durationDuration in seconds.
billsecondsBilled seconds.
wasrecordedMust be true.
audio_file_mp3Public, accessible URL of the recording.
accountnameAccount/agent name. On outbound calls AuditorIA uses it as the operator.
accountextensionAccount extension.
queueagentname / answerterminalAgent name on inbound calls. AuditorIA uses it as the operator.
campaign_idCampaign number in AuditorIA (not a variable).
The operator depends on the call direction

AuditorIA identifies the operator by their name: on outbound calls it uses accountname; on inbound calls it uses queueagentname (or answerterminal). That's why it's best to include all three. It has to be the agent's name, not an extension. Confirm the exact variable name in Anura.

If any of the table's fields is missing, Anura still sends the notification, but AuditorIA rejects it.

Anura also offers many other variables (for example callingname, calledname, queue data or accounttags). You can add them to the Body if you want them for your own records, but they're optional: AuditorIA doesn't use them today, so the fields in the table are enough for the call to be processed.

The {{ ... }} variables you see in the JSON are offered by Anura. AuditorIA lists them in the Audio Sources > Anura guide, in two columns: on the left the field (the JSON key) and on the right the variable (the value). It's not a separate tab or form: it's a reference of which variables exist, so you use them inside the Body. For example, accountname -> {{ accountname }} means the Body has "accountname": "{{ accountname }}".

List of Anura variables used as values in the Body

Example of the complete JSON Anura sends

warning

Only END events with a recording are processed. If wasrecorded is not true or audio_file_mp3 is not accessible, no task is created.

With this, the integration is ready

Save the event. There are no extra steps: from the next call that ends with a recording, Anura notifies AuditorIA and the call enters the flow on its own. Anura has no test button, so to confirm, make a real (short, recorded) call and check that it appears in the campaign's tasks.

What happens next

Once everything is configured, each call that ends with a recording:

  1. Reaches AuditorIA, which validates the API Key.
  2. Identifies the operator by name. If that operator doesn't exist yet, it creates it.
  3. Downloads the recording and creates the task.
  4. Enters the normal flow: it appears in Search and work with tasks, gets transcribed and is ready to review and audit.

Important notes

  • Operator by name: if the agent's name in Anura doesn't match an existing operator, AuditorIA creates a new one. To avoid duplicate operators, use the same names you already have. See Manage local operators.
  • Correct campaign: if campaign_id doesn't match a real campaign, the call may not be associated with the expected campaign.
  • Only END with recording: other events are received but don't create tasks.

Common issues

  • No calls come in: check that the event is END, that recording is enabled, that audio_file_mp3 is accessible and that the URL and headers are correct.
  • The notification is rejected (unauthorized): the X-API-Key is missing or incorrect.
  • The call enters another campaign or without the right operator: check campaign_id and the agent name.

Other sources

The detailed guide for the other sources is in preparation. In the meantime, you can select them in the campaign's Audio Sources tab:

  • Internal: audio uploaded by hand or via the internal API. See Upload audio.
  • Net2Phone: recording sync via webhook.
  • SFTP Server: sync from a remote server.
  • External API: generic third-party integration via AuditorIA's API.
  • Neotel: native ingestion (SQL Server + FTP).