← all tools
Comms

Aircall

Every call logged against the right candidate, without you doing it.

Aircall is a call and meeting tool, and one of the 52 tools hyreflow connects to Claude, ChatGPT and other AI assistants. Through hyreflow, an AI agent can run 21 actions: 12 that look something up and 9 that create or change records. Aircall runs on your own Aircall account: hyreflow charges no credits for it, and Aircall bills you as before.

Cost per callBYOK · vendor billed
Your own keyrequired
CategoryComms

Your agent pulls Aircall call logs, transcripts and summaries and writes them onto the candidate record in your CRM. It can dial out and send SMS too. The call ends up on record, not in someone's memory.

Aircall reads and writes. Calls flow in; notes flow out to the CRM.

What can you ask Claude or ChatGPT to do with Aircall?

With hyreflow connected, you ask for the outcome in plain language and the assistant runs Aircall for you. For example:

  • “Log yesterday's calls against the candidates in Bullhorn”
  • “What was said on this call?”
  • “Call the direct dial Lusha found and log it against the record”
  • “Tag every call on this role and summarise the week”

Which tools work well with Aircall?

In a hyreflow run, Aircall is most often paired with Bullhorn, Lusha, Fathom and Recruit CRM.

  • Bullhorn

    the record the call notes belong on

  • Lusha

    the direct dials worth calling in the first place

  • Fathom

    the recorded interviews Aircall does not cover

  • Recruit CRM

    call activity onto the candidate

Which Aircall actions can an AI agent run through hyreflow?

Through hyreflow, an AI agent can run 21 Aircall actions: 12 that look something up and 9 that create or change records. Aircall runs on your own Aircall account: hyreflow charges no credits for it, and Aircall bills you as before.

Aircall actionWhat it doesCost through hyreflow
Search callsLooks something upno hyreflow credits
Search contactsLooks something upno hyreflow credits
Create contactCreates or changes a recordno hyreflow credits
Create webhookCreates or changes a recordno hyreflow credits
Send messageCreates or changes a recordno hyreflow credits
Comment callCreates or changes a recordno hyreflow credits
Delete contactCreates or changes a recordno hyreflow credits
Delete webhookCreates or changes a recordno hyreflow credits
DialCreates or changes a recordno hyreflow credits
Tag callCreates or changes a recordno hyreflow credits
Show all 21 Aircall actions →
Aircall actionWhat it doesCost through hyreflow
Update contactCreates or changes a recordno hyreflow credits
List callsLooks something upno hyreflow credits
List contactsLooks something upno hyreflow credits
List numbersLooks something upno hyreflow credits
List tagsLooks something upno hyreflow credits
List usersLooks something upno hyreflow credits
List webhooksLooks something upno hyreflow credits
Get callLooks something upno hyreflow credits
Get call summaryLooks something upno hyreflow credits
Get contactLooks something upno hyreflow credits
Get transcriptionLooks something upno hyreflow credits

One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.

How does an AI agent know how to use Aircall?

hyreflow ships a written playbook for Aircall, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.

Read the Aircall docs →
Show the raw playbookwritten for the agent

HOW in lib/aircall.py. Docs: developer.aircall.io/api-references.

Auth & config

  • Base URL: https://api.aircall.io/v1 · Auth: HTTP Basic — username=your Aircall API ID, password=your API Token (an Aircall admin generates them under Integrations > API keys; the token is shown once; never hardcode). (Multi-company partner apps use OAuth bearer — not in this adapter.)
  • Pagination: page / per_page (max 50); iter_calls/iter_contacts auto-walk via meta.next_page_link. Calls & Contacts capped at 10,000 items total; history is 6 months.
  • Rate limit: 120 req/min/company (watch X-AircallApi-Remaining).

Operations

Calls: list_calls/iter_calls, get_call, search_calls, tag_call, comment_call, get_transcription, get_call_summary. Contacts: list/iter/search/get/create/update/delete (phone_numbers & emails are [{label,value}]). Also list_users, dial, list_numbers, list_tags, webhooks, send_message (SMS). request() covers the rest.

Guardrail

dial, send_message, tag_call, comment_call are write/outbound actions on a live phone system — confirm before bulk; pilot one.

Handoff

Read source: pull call logs + transcripts/summaries → write as candidate activity into the ATS. Write target: comment_call to log recruiter notes; dial for click-to-call.

Callable surface — lib/aircall.py

Import: from lib.aircall import Aircall → instantiate Aircall() (reads key from env). Base: https://api.aircall.io/v1. Generic passthrough: request(method, path, *, params, json).

  • comment_call(call_id: int, content: str) -> Any — POST /calls/{id}/comments — add a note to a call.
  • create_contact(payload: dict) -> Any — POST /contacts — phone_numbers/emails are lists of {label,value}.
  • create_webhook(url: str, *, events: list[str] | None = None, **params) -> Any — POST /webhooks — subscribe to events (e.g. call.created, call.ended).
  • delete_contact(contact_id: int) -> Any
  • delete_webhook(webhook_id: str) -> Any — DELETE /webhooks/{id} — remove a webhook subscription.
  • dial(user_id: int, number: str) -> Any — POST /users/{id}/dial — push a number to a user's phone.
  • get_call(call_id: int) -> Any
  • get_call_summary(call_id: int) -> Any
  • get_contact(contact_id: int) -> Any
  • get_transcription(call_id: int) -> Any — GET /calls/{id}/transcription — call transcript (falls back to /realtime_transcription).
  • iter_calls(**params) -> Iterator[dict]
  • iter_contacts(**params) -> Iterator[dict]
  • list_calls(**params) -> Any — GET /calls — historical calls (page/per_page; from/to UNIX, direction, etc.).
  • list_contacts(**params) -> Any
  • list_numbers(**params) -> Any
  • list_tags(**params) -> Any
  • list_users(**params) -> Any — GET /v2/users — users with default_number_id + availability (v1 users is deprecated).
  • list_webhooks(**params) -> Any
  • ping() -> Any — GET /ping — verify the API ID + token (returns {"ping": "pong"}).
  • search_calls(**params) -> Any — GET /calls/search — filter calls (phone_number, user_id, tags, from/to...).
  • search_contacts(**params) -> Any — GET /contacts/search — by phone_number / email.
  • send_message(number_id: int, to: str, body: str) -> Any — POST /numbers/{id}/messages/native/send — send an SMS from an Aircall number (shows in its inbox).
  • tag_call(call_id: int, tags: list[str]) -> Any — POST /calls/{id}/tags — apply tags to a call.
  • update_contact(contact_id: int, payload: dict) -> Any — POST /contacts/{id} — update a contact (partial fields OK).

Questions about Aircall and hyreflow

Can I use Aircall inside Claude or ChatGPT?

Yes. hyreflow is a connector for Claude, ChatGPT and other AI assistants. Once hyreflow is connected, you ask for the outcome in plain language and the assistant calls Aircall for you. hyreflow exposes 21 Aircall actions this way.

Do I need my own Aircall account to use it with hyreflow?

Yes. Aircall runs on your own Aircall account. You connect it to hyreflow once, hyreflow charges no credits for the calls, and Aircall bills you as before.

What does Aircall cost through hyreflow?

Aircall runs on your own Aircall account: hyreflow charges no credits for it, and Aircall bills you as before.

How do I connect Aircall to an AI agent over MCP?

Add the hyreflow MCP server to your assistant and sign in. hyreflow calls the Aircall API directly and exposes its actions as tools the assistant can run, so there is no separate Aircall server to install.

Connect hyreflow to your assistant →

Put Aircall to work from one prompt

Connect hyreflow to Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.