Skip to main content

Babelforce

Babelforce is a cloud-based contact center and communications platform that exposes a JSON-based REST API for managing call flows, outbound dialer campaigns, agents, queues, recordings, SMS, conversations, and reporting metrics. The Babelforce API enables integrations to read call records, recordings, queue and agent activity, and performance metrics into downstream systems, and to programmatically create and update resources such as outbound lists and leads, campaigns, conversations, sessions, triggers, users, and SCIM-managed identities.

Babelforce icon

Power end-to-end data operations for your Babelforce API with Nexla. Our bi-directional Babelforce connector is purpose-built for Babelforce, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Babelforce or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Babelforce workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

The Babelforce REST API authenticates HTTP requests using an Access ID and Access Token pair, which are sent as the X-Auth-Access-Id and X-Auth-Access-Token request headers on every call. These values are generated from the Babelforce manager app and are tied to a specific user account, granting access using that user's permissions. For most API collections, the underlying user must have manager rights in Babelforce.

In addition to the credential values, the credential record also stores the Base URL of your Babelforce environment so that endpoint URLs resolve to the correct regional service host (for example, https://services.babelforce.com for the global default, or a regional variant for environments hosted elsewhere).

Generate an Access ID and Access Token

  1. Sign in to your Babelforce manager app at the URL for your region — for example, https://apps.babelforce.com/manager2/ for the EU region.

  2. Click your user icon, and open the account overview page (for the EU region, this is https://apps.babelforce.com/manager2/#/app/manager/account/overview).

  3. On the account overview page, locate the Access ID and Access Token values associated with your user profile.

  4. Copy both values, and store them securely. These values authenticate Nexla to your Babelforce account using your permissions, so they should be treated like a password.

    The Access ID and Access Token are tied to a specific Babelforce user. To avoid disruption if a user account is later disabled, it is recommended to generate these values from a dedicated integration user with manager rights rather than from a personal account.

Identify your Babelforce Base URL

The Babelforce REST API is hosted on regional service endpoints. The base URL stored on the credential is the root URL of your Babelforce environment — Nexla appends endpoint-specific paths (for example, /api/v2/calls or /auth/scim/v2/Users) automatically.

  • The default global base URL is https://services.babelforce.com.

  • Regional environments use a regional variant of this URL. The correct base URL for your account is the host portion of the example requests shown in the Babelforce developer hub for your environment.

Do not include a trailing path such as /api/v2 in the Base URL field — Babelforce endpoints append their own path, and including a trailing path will cause API calls to fail.

For complete information about Babelforce API authentication, see the Babelforce Authentication: Best Practice guide and the Babelforce developer hub.

Important

The Access ID and Access Token values grant access to Babelforce account data using the underlying user's permissions. Store them in a secure secret manager, never commit them to source control, and rotate them immediately if you suspect they have been exposed.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your Babelforce Access ID in the Access ID field. This value is sent as the X-Auth-Access-Id header on every request and is treated as a secret.

  4. Enter your Babelforce Access Token in the Access Token field. This value is sent as the X-Auth-Access-Token header on every request and is treated as a secret.

  5. Enter the root URL of your Babelforce environment in the Base URL field. The default value is https://services.babelforce.com; change this to the regional variant that matches your account if it is hosted in a different region.

    The Base URL value should not include a trailing path such as /api/v2. Endpoints append their own path automatically when calls are made.

  6. Click the Save button at the bottom of the overlay. Nexla will validate the credential by issuing a test call to the /api/v2/calls/reporting/simple endpoint using the configured Access ID, Access Token, and Base URL values. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Babelforce connector tile, then select the credential that will be used to connect to the Babelforce instance, and click Next; or, create a new Babelforce credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Babelforce endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get Agent

This endpoint retrieves a single agent record from the /api/v2/agents/{'{id}'} Babelforce endpoint. Use this template when an integration needs the current profile, presence, and configuration details of one known agent.

  • Enter the agent identifier in the Id field. This is the unique Babelforce agent ID returned by the List Agents endpoint or shown in the Babelforce manager app.

Use the List Agents endpoint first to discover available agent IDs, then use this endpoint to ingest a single agent's full record into Nexla.

Get Available Agents Count

This endpoint returns the total count of agents currently in the available presence and available line state, fetched from /api/v2/metrics/agents.state.available.total. Use this template for real-time staffing dashboards or capacity monitoring.

  • This endpoint requires no additional configuration. Select this template and Nexla will ingest the metric value on each scheduled run.

This metric reflects the live state at the moment the request is executed. Pair it with a frequent ingestion schedule when used for real-time monitoring.

Get Agents In Call Count

This endpoint returns the total count of agents currently engaged in a call, fetched from /api/v2/metrics/agents.state.in_call.total. Use this template alongside Get Available Agents Count to track agent utilization in real time.

  • This endpoint requires no additional configuration. Select this template and Nexla will ingest the in-call agent count on each scheduled run.

Get Total Agents Metric

This endpoint returns the total count of agents grouped by presence state (online/offline), fetched from /api/v2/metrics/agents.total. Use this template to monitor overall agent population and the share of agents enabled at any given time.

  • Optionally, enter true or false in the Enabled field to filter the metric by whether agents are enabled in Babelforce. Leave the field blank to include both enabled and disabled agents.

Get Average Call Duration

This endpoint returns the average call duration metric over a specified time range, fetched from /api/v2/metrics/calls.duration/avg. Use this template for service-level reporting and historical performance analysis.

  • Enter the beginning of the time range to query in the Start Date field, in ISO 8601 format (for example, 2026-01-01T00:00:00Z).
  • Enter the end of the time range in the End Date field, also in ISO 8601 format.
  • Optionally, enter a specific agent identifier in the Agent ID field to scope the metric to a single agent.
  • Optionally, enter a specific queue identifier in the Queue ID field to scope the metric to a single queue.

Leave the Agent ID and Queue ID fields blank to compute the average across all agents and all queues for the selected time range.

Get Average Wrap-up Time

This endpoint returns the average wrap-up time metric for agents, fetched from /api/v2/metrics/wrapup/avg. Use this template to monitor post-call handling time as a quality and efficiency indicator.

  • Enter the beginning of the time range to query in the Start Date field, in ISO 8601 format.
  • Enter the end of the time range in the End Date field, in ISO 8601 format.
  • Optionally, enter an agent identifier in the Agent ID field to compute wrap-up time for a single agent.
  • Optionally, enter a queue identifier in the Queue ID field to compute wrap-up time for a single queue.

Get Call Record

This endpoint retrieves a single call record or conversation call leg by its ID from /api/v2/calls/{'{id}'}. Use this template when an integration needs full detail for a known call — for example, to enrich a CRM event or investigate a specific interaction.

  • Enter the unique call identifier in the Id field. Call IDs are returned by the List Call Records endpoint and surfaced in Babelforce manager reports.

Get Total Calls Metric

This endpoint returns the total number of calls within a specified time range, fetched from /api/v2/metrics/calls.total. Use this template for volume reporting and trend analysis.

  • Enter the beginning of the time range to query in the Start Date field, in ISO 8601 format.
  • Enter the end of the time range in the End Date field, in ISO 8601 format.
  • Optionally, enter an agent identifier in the Agent ID field to scope the count to a single agent.
  • Optionally, enter a queue identifier in the Queue ID field to scope the count to a single queue.

Get Outbound Campaign

This endpoint retrieves a single outbound dialer campaign by ID from /api/v2/outbound/campaigns/{'{campaign_id}'}. Use this template to ingest campaign configuration and status into downstream operational reporting.

  • Enter the unique identifier of the outbound campaign in the Campaign ID field. This value is required.

Campaign IDs can be discovered using the List Outbound Lists and related campaign endpoints, or copied from the Babelforce manager app campaign view.

Get Conversation

This endpoint retrieves a single conversation session by its ID from /api/v2/conversations/{'{id}'}. Use this template to ingest full conversation context — including associated call legs and participants — for analysis or archival.

  • Enter the conversation identifier in the Id field.

Get Current Agent Conference

This endpoint retrieves the conference that the current agent — the user associated with the credential — is participating in, fetched from /api/v2/agent/conferences/current. Use this template for live agent-context dashboards that follow the activity of a specific monitoring user.

  • This endpoint requires no additional configuration. The result is scoped to the agent identity carried by the credential.

Because the response is scoped to the credential's user, this endpoint is most useful when the credential represents an agent rather than a service or manager account.

Get Outbound Leads

This endpoint returns the leads associated with a specific outbound call list from /api/v2/outbound/lists/{'{list_id}'}/leads. Pagination is handled automatically by Nexla using the Babelforce page and pageSize query parameters, with 100 records expected per page.

  • Enter the unique identifier of the outbound list whose leads to retrieve in the Outbound List ID field. This value is required.

Use this endpoint to ingest the full list of leads for downstream dialing analytics or to keep an external CRM in sync with the outbound queue.

Get Queue

This endpoint returns the details of a single call queue from /api/v2/queues/{'{id}'}. Use this template to ingest queue configuration — such as routing strategy and member assignments — for operational reporting.

  • Enter the queue identifier in the Id field.

Get Call Recording

This endpoint retrieves a single call recording metadata record by its ID from /api/v2/recordings/{'{id}'}. Use this template to enrich call analytics with recording links and metadata for known calls.

  • Enter the recording identifier in the Id field.

Get Session Variables

This endpoint returns the variables and state for a specific session from /api/v2/sessions/{'{session_id}'}. Use this template to ingest session context for call-flow debugging, advanced reporting, or automation testing.

  • Enter the unique identifier of the session in the Session ID field. This value is required.

List Agents

This endpoint returns a paginated list of all agents in the account from /api/v2/agents, with optional filtering by associated source or enabled status. Nexla iterates pages automatically using the Babelforce page and pageSize query parameters at 100 records per page.

  • Optionally, enter a source identifier in the Source ID field to limit the result to agents associated with a specific source.
  • Optionally, enter true or false in the Enabled field to limit the result to enabled or disabled agents only.

Leave both filter fields blank to ingest the full set of agents in the account.

List Applications

This endpoint returns a paginated list of all applications configured in the account from /api/v2/applications. Use this template to inventory the integrations registered against your Babelforce environment.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Business Hours

This endpoint returns a paginated list of business hours configurations for the account from /api/v2/business-hours. Use this template to ingest opening hours and holiday rules used by call flow routing.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Call Flows

This endpoint returns a paginated list of all call flow configurations in the account from /api/v2/call-flows. Use this template to maintain an inventory of automated routing logic for governance and version tracking.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Call Records

This endpoint returns a paginated list of all call records and conversation call legs for the account from /api/v2/calls. Pagination is handled by Nexla using the Babelforce offset and limit query parameters at 100 records per page.

  • Enter the beginning of the time range to query in the Start Date field, in ISO 8601 format. This is the most common way to limit the result to a relevant period.
  • Enter the end of the time range in the End Date field, in ISO 8601 format.
  • Optionally, enter an agent identifier in the Agent ID field to ingest only calls handled by a specific agent.
  • Optionally, enter a queue identifier in the Queue ID field to ingest only calls associated with a specific queue.

For ongoing ingestion, consider using Nexla's date/time macros (described in Configure Manually) so the Start Date and End Date values advance automatically between runs.

List Calls

This endpoint returns a paginated list of calls from the Babelforce /api/v2/calls endpoint. Use this template when no additional filtering is needed and the goal is to ingest all available call activity.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Campaigns

This endpoint returns a paginated list of outbound dialer campaigns configured in the account, fetched from /api/v2/outbound/campaigns. Use this template to ingest campaign inventory and status for operational reporting.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Conversations

This endpoint returns a paginated list of conversation sessions from /api/v2/conversations. Use this template to ingest multi-leg interactions for analysis or archival.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Outbound Lists

This endpoint returns a paginated list of outbound call lists from /api/v2/outbound/lists. Use this template to maintain a catalog of dialing targets for downstream campaign analytics.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

Combine this endpoint with Get Outbound Leads to enumerate every lead in every list.

List Queues

This endpoint returns a paginated list of all call queues from /api/v2/queues. Use this template to ingest queue inventory and configuration for routing analytics.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Recordings

This endpoint returns a paginated list of call recording metadata records from /api/v2/recordings. Use this template to ingest recording inventory for compliance reporting or QA workflows.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List SMS

This endpoint returns a paginated list of SMS messages sent or received through Babelforce from /api/v2/sms. Use this template to ingest SMS history for omnichannel reporting.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Tasks

This endpoint returns a paginated list of tasks from /api/v2/tasks. Use this template to ingest the task queue used by call flows and automations for visibility into pending and processed work.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Triggers

This endpoint returns a paginated list of automation triggers from /api/v2/triggers. Use this template to inventory event-driven rules configured for the account.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Users

This endpoint returns a paginated list of users in the account from /api/v2/users. Use this template to maintain an inventory of Babelforce users for access and identity reporting.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

List Users (SCIM)

This endpoint returns a paginated list of users via the SCIM 2.0 protocol from /auth/scim/v2/Users. Use this template when integrating with identity governance tooling that expects SCIM-shaped user records.

  • This endpoint requires no additional configuration. Pagination is handled automatically by Nexla.

The SCIM endpoint returns user data in the SCIM 2.0 schema, which differs from the native /api/v2/users response shape. Choose the endpoint that matches your downstream consumer.

Synchronize Agents

This endpoint triggers and returns the result of an agent synchronization run between Babelforce environments using the Env Sync API. Use this template when an integration needs to keep agent definitions aligned across paired environments.

  • This endpoint requires no additional configuration. The response from the sync operation is ingested as the result.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Babelforce data sources can also be manually configured to ingest data from any valid Babelforce API endpoint — including endpoints not covered by the pre-built templates, endpoints that require custom query parameters or request headers, and chained requests (for example, calling /api/v2/outbound/lists and then iterating over each list with /api/v2/outbound/lists/{'{id}'}/leads). Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Enter the complete endpoint URL including the protocol and full API path (for example, https://services.babelforce.com/api/v2/calls) — the Babelforce base URL stored on the credential is not automatically substituted into manually configured API URLs. Babelforce time-window endpoints such as /api/v2/calls and /api/v2/metrics/calls.total expect ISO 8601 startDate and endDate values, which pair well with Nexla's date/time macros. Because list endpoints wrap results in a named property, set the path to data accordingly — for example, $.calls[*] for /api/v2/calls, $.agents[*] for /api/v2/agents, or $.data[*] for /api/v2/business-hours. You do not need to add the X-Auth-Access-Id or X-Auth-Access-Token headers — Nexla attaches them automatically from your credential.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Babelforce data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Babelforce destination, and select the Send to Destination option from the menu. Select the Babelforce connector from the list of available destination connectors, then select the credential that will be used to connect to the Babelforce organization, and click Next; or, create a new Babelforce credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Babelforce endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Add Outbound Lead

This template posts each Nexset record as a new lead on a specific Babelforce outbound call list using POST /api/v2/outbound/lists/{'{list_id}'}/leads. Use this template to push contacts into Babelforce dialer campaigns from a CRM or marketing system.

  • Enter the unique identifier of the outbound list that should receive the new leads in the List ID field. This value is required.
  • Each Nexset record is sent as the JSON request body using the {'{message.json}'} body template. Ensure the record schema matches the lead structure expected by Babelforce — at minimum, the fields required by your list configuration.

List IDs can be retrieved with the List Outbound Lists data source endpoint or copied from the Babelforce manager app.

Create Application

This template creates a new application in the account using POST /api/v2/applications. Use this template to provision Babelforce applications programmatically from configuration stored in another system.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the JSON payload expected by the Babelforce Applications API.

Create Calendar

This template creates a new calendar in the account using POST /api/v2/calendars. Use this template to bulk-load business calendars from a source-of-truth system into Babelforce.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the JSON payload expected by the Babelforce Calendars API.

Create Outbound Campaign

This template creates a new outbound dialer campaign using POST /api/v2/outbound/campaigns. Use this template to provision campaigns programmatically — for example, as part of a regular cadence-creation process driven by a marketing platform.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the full campaign JSON payload expected by the Babelforce Campaigns API.

Create Conversation

This template creates a new conversation session using POST /api/v2/conversations. Use this template when external systems initiate conversations that must be tracked in Babelforce as multi-leg interactions.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the conversation JSON payload expected by the Babelforce Conversations API.

Create Outbound List

This template creates a new outbound list for use in dialer campaigns using POST /api/v2/outbound/lists. Pair with Add Outbound Lead to first create the list, then load leads into it.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the JSON payload expected by the Babelforce Outbound Lists API.

Create Session

This template creates a new session for managing call or communication state using POST /api/v2/sessions. Use this template in automations that need to bootstrap session context before subsequent API calls.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the session JSON payload expected by the Babelforce Sessions API.

Create Trigger

This template creates a new automation trigger using POST /api/v2/triggers. Use this template to provision event-driven rules from configuration in another system.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the trigger JSON payload expected by the Babelforce Triggers API.

Create User

This template creates a new user in the account using POST /api/v2/users. Use this template for native Babelforce user provisioning from an HR or identity source.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the user JSON payload expected by the Babelforce Users API.

For environments managed by an identity provider, prefer the Create User (SCIM) template, which expects the SCIM 2.0 user schema.

Create User (SCIM)

This template creates a new user via the SCIM 2.0 protocol using POST /auth/scim/v2/Users. Use this template when provisioning users from an identity provider or governance tool that emits SCIM-shaped payloads.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must conform to the SCIM 2.0 user schema.

Send SMS

This template sends an SMS through Babelforce using POST /api/v2/sms. Use this template to drive outbound SMS — for notifications, marketing follow-ups, or appointment reminders — from a Nexla data flow.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the SMS payload expected by the Babelforce SMS API, including the recipient phone number and the message body.

Validate phone numbers in E.164 format upstream of this destination to avoid bulk rejection by Babelforce.

Start Sync

This template starts an environment synchronization run via the Env Sync API. Use this template to trigger sync jobs between paired Babelforce environments (for example, sandbox and production) on a schedule or in response to an upstream event.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the sync-job payload expected by the Babelforce Env Sync API.

Submit Task

This template submits a new task to Babelforce using POST /api/v2/tasks. Use this template to inject work items into the Babelforce task queue from upstream automations.

  • This endpoint requires no additional parameters in Nexla. Each Nexset record must contain the task payload expected by the Babelforce Tasks API.

Update Campaign

This template updates an existing outbound dialer campaign using PUT /api/v2/outbound/campaigns/{'{id}'}. Use this template to push configuration changes — for example, adjusting cadence, status, or assignments — into Babelforce.

  • Each Nexset record must include the campaign identifier and the updated campaign payload expected by the Babelforce Campaigns API.

The campaign ID is typically included as a field in the Nexset record and substituted into the URL via the request template at runtime.

Update Session Variables

This template updates the variables and state on an existing session using PUT /api/v2/sessions/{'{session_id}'}. Use this template to propagate context changes — such as customer attributes or routing decisions — into active sessions.

  • Each Nexset record must include the session identifier and the updated variables payload expected by the Babelforce Sessions API.

Update Trigger

This template updates an existing automation trigger using PUT /api/v2/triggers/{'{id}'}. Use this template to keep trigger configuration aligned with an external source of truth.

  • Each Nexset record must include the trigger identifier and the updated trigger payload expected by the Babelforce Triggers API.

Manual configuration

Babelforce destinations can also be manually configured to send data to any valid Babelforce API endpoint — including endpoints not covered by the pre-built templates, or endpoints that require custom request bodies, headers, or batching. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Babelforce APIs are JSON-based, so application/json is the appropriate content format for almost all endpoints. Enter the complete endpoint URL including the protocol and full API path (for example, https://services.babelforce.com/api/v2/outbound/lists); for update or upsert operations, include the ID of the object to be updated at the end of the URL (for example, https://services.babelforce.com/api/v2/outbound/campaigns/12345). You do not need to add the X-Auth-Access-Id or X-Auth-Access-Token headers — Nexla attaches them automatically from your credential. Enabling Would you like to process the API response as a Nexla Webhook source? lets downstream flows capture the Babelforce-assigned identifier (for example, the new lead, campaign, or call ID) returned by write endpoints.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Babelforce endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to Babelforce until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.