InTouch Hub · Blue Isle Software

Aircall

Manage calls, contacts, and phone numbers for sales teams via the Aircall REST API.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

crm-salesemailstatus

Aircall

Manage calls, contacts, and phone numbers for sales teams via the Aircall REST API.

Base URL: https://api.aircall.io/v1

What it does

A single InTouch tool that wraps the most common Aircall read/write operations so a job or the AI assistant can pull call activity, look up call detail, browse or create CRM contacts, and list the team's provisioned phone numbers.

The tool uses standard library Python only (no requests) and returns the raw Aircall JSON response as a string under result, with the HTTP status under status.

Operations

operation HTTP / endpoint Required params Optional params
list_calls GET /v1/calls?per_page=N perPage
get_call GET /v1/calls/{id} callId
list_contacts GET /v1/contacts?per_page=N perPage
create_contact POST /v1/contacts firstName or lastName phoneNumber, email, information
list_numbers GET /v1/numbers?per_page=N perPage

perPage is clamped to the Aircall maximum of 50.

apiKey setup

Aircall authenticates with HTTP Basic auth, where the username is your api_id and the password is your api_token.

  1. Open the Aircall Dashboard.
  2. Go to Integrations > API Keys and create (or copy) an API Key.
  3. Combine the two values as api_id:api_token (a single colon-separated string) and pass that as the apiKey input.

The tool Base64-encodes the pair into the Authorization: Basic ... header for you. No OAuth flow is required for first-party Aircall customer credentials.

Examples

List the 10 most recent calls:

{
  "apiKey": "abc123id:def456token",
  "operation": "list_calls",
  "perPage": "10"
}

Retrieve one call by id:

{
  "apiKey": "abc123id:def456token",
  "operation": "get_call",
  "callId": "1234567"
}

List contacts:

{
  "apiKey": "abc123id:def456token",
  "operation": "list_contacts",
  "perPage": "25"
}

Create a contact:

{
  "apiKey": "abc123id:def456token",
  "operation": "create_contact",
  "firstName": "Jordan",
  "lastName": "Lee",
  "phoneNumber": "+15558675310",
  "email": "[email protected]",
  "information": "Inbound demo request"
}

List provisioned phone numbers:

{
  "apiKey": "abc123id:def456token",
  "operation": "list_numbers"
}

Output

{
  "result": "{\"calls\":[...],\"meta\":{...}}",
  "status": "200"
}

On error the tool prints {"error": "...", "status": "0", "result": ""} and exits non-zero, which marks the YAML step FAILED. Aircall 4xx/5xx responses are returned in result with their real HTTP status so you can see the API error message.

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change.
operation string yes One of: list_calls, get_call, list_contacts, create_contact, list_numbers
callId string no Numeric Aircall call id. Required for 'get_call'.
firstName string no Contact first name. For 'create_contact', supply at least firstName or lastName.
lastName string no Contact last name. For 'create_contact', supply at least firstName or lastName.
phoneNumber string no Contact phone number in E.164 format (e.g. +15558675310). Optional for 'create_contact'.
email string no Contact email address. Optional for 'create_contact'.
information string no Free-text note attached to the contact. Optional for 'create_contact'.
perPage string no 20 Max items to return for list_calls / list_contacts / list_numbers (1-50).