# How to connect Aircall with ChatGPT

```json
{
  "title": "How to connect Aircall with ChatGPT",
  "toolkit": "Aircall",
  "toolkit_slug": "aircall",
  "framework": "ChatGPT",
  "framework_slug": "chatgpt",
  "url": "https://composio.dev/toolkits/aircall/framework/chatgpt",
  "markdown_url": "https://composio.dev/toolkits/aircall/framework/chatgpt.md",
  "updated_at": "2026-10-10T05:31:15.588Z"
}
```

## Introduction

### How to connect Aircall MCP with ChatGPT
[ChatGPT](https://chatgpt.com/) can take action across your apps and files, stay with a project for hours, and turn a goal into finished materials like sheets, slides, and docs, not just answers.
In this guide, I will explain the easiest and most secure way to connect your Aircall account to ChatGPT via Composio Connect, so it can manage calls, search contacts, update teams, organize phone numbers, and apply tags through natural language commands without ever putting your account credentials at risk.

## Also integrate Aircall with

- [Claude Cowork](https://composio.dev/toolkits/aircall/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/aircall/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/aircall/framework/atomic-agent)

## TL;DR

### Why use Composio over default connectors?
- Apps with read and write access. Default connectors mostly can read your data. Composio's Aircall integration lets ChatGPT take actions like creating drafts, sending updates, labeling records, and more.
- 1,500+ SaaS toolkits out of the box. Composio gives you instant access to a vast catalog of pre-built connectors, from Gmail and Slack to Notion, Linear, and Salesforce.
- One MCP server for every app. Connect any of your applications on demand through a single endpoint, rather than juggling a separate server for each app.
- Smart, context-aware tool loading. Unlike traditional MCP servers that dump every available tool into the LLM context window, Composio searches for and loads only the tools relevant to the task at hand.
- Cross-app automation. Chain actions across multiple apps in a single run - fetch a thread, summarize it in Notion, and post highlights to Slack without leaving the conversation.

## Connect Aircall to ChatGPT

### Prerequisites
- A ChatGPT account. We will use the [ChatGPT desktop app](https://openai.com/chatgpt/download/), and the steps are the same on the web.
- Access to the Aircall workspace you want to connect.
- [Composio plugin](https://dashboard.composio.dev/login?utm_source=toolkits&utm_medium=framework_template&utm_campaign=chatgpt&utm_content=composio_connect&next=%2F~%2Forg%2Fconnect%2Fclients%2Fchatgpt).
Note: Composio connects through OAuth. You will be asked to sign in and approve specific permissions. Review the permission screen carefully if you are using a work account.
### Step-by-step: Connect Aircall to ChatGPT
### 1. Install the Composio plugin
Click the button. ChatGPT opens the Composio plugin page. Click Install plugin.
[Install in ChatGPT](https://chatgpt.com/plugins/plugin_asdk_app_6a58503580c08191b78cc5bdaf4eba6e)
You can also find it inside ChatGPT: go to Settings, open Plugins, search the marketplace for Composio, and click Install plugin.
### 2. Authenticate
After you install, ChatGPT asks you to authenticate with Composio. Log in and click Allow access to authorize ChatGPT to use your Composio account.
### 3. Start using Composio
That is it. Composio tools are now available in ChatGPT. Type @Composio followed by your request, for example @Composio find unread Aircall messages and summarize them, and it will run the actions you authorize. On first use it asks you to authorize Aircall.
### Option 2: Add Composio as an MCP server
If you cannot use the plugin marketplace, add Composio as a custom MCP server instead.
### 1. Open the MCP settings
In ChatGPT, go to Settings and open the Plugins section. Inside the Plugins page, click the MCP tab.
### 2. Add the server
Click Add server. In the Name field enter Composio, for Type select Streamable HTTP, and in the URL field paste the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is the Aircall MCP server, and what's possible with it?

The Aircall MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Aircall account. It provides structured and secure access to your Aircall calls, users, teams, phone numbers, contacts, tags, and webhooks, so your agent can place calls, search call activity, manage contacts and teams, check user availability, and control call features on your behalf.
- Call handling and insight: Have your agent place outbound calls, find calls by direction, user, phone number, tags, or date, add comments, manage recording during ongoing calls, delete call audio, and publish insight cards for call agents.
- Contact management: Let the agent search, create, view, and delete shared contacts, then add or remove their phone numbers and email addresses.
- User and team administration: Direct your agent to list, create, view, and delete users, create or remove teams, change team membership, and check user availability.
- Phone numbers and tags: Instruct your agent to list and inspect Aircall phone numbers, check registration status, and create, view, list, or delete call tags.
- Webhook management: Have your agent create, list, inspect, or delete Aircall webhooks for connected HTTPS destinations.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `AIRCALL_ADD_CONTACT_METHOD` | Add Contact Method | Add a phone number or an email address to an existing Aircall contact. Set method_type='phone' to add a phone number or method_type='email' to add an email address. The value and any supplied label must be nonblank, but this tool does not impose E.164 or strict email formatting. If the label is omitted, Aircall defaults it to 'Main'. Use when a contact already exists and needs another way to be reached; not for creating the contact itself (AIRCALL_CREATE_CONTACT), and not for changing a method that is already on the contact (AIRCALL_UPDATE_CONTACT_METHOD). Returns the created method as 'contact_method' ({id, method_type, label, value}) — keep its id to update or delete it later. |
| `AIRCALL_ADD_USER_TO_TEAM` | Add User to Team | Add a User to a Team (membership change). Returns the updated team. |
| `AIRCALL_COMMENT_CALL` | Add Comment to Call | Add a comment/note to a Call (max 5 comments per call; emojis are stripped). Returns success on HTTP 201. |
| `AIRCALL_CREATE_CONTACT` | Create Contact | Create a shared Aircall contact. Use when adding someone to the shared address book; not for editing an existing one (AIRCALL_UPDATE_CONTACT), and not for attaching a phone number or email address to a contact that already exists — that is AIRCALL_ADD_CONTACT_METHOD with method_type='phone' or method_type='email'. At least one phone_numbers[] entry is required (1-20); emails[] is optional (max 20). Aircall rejects a name-only contact AND an email-only contact with HTTP 400. |
| `AIRCALL_CREATE_TAG` | Create Tag | Create a Tag. name must be unique per company; color is a hex string (e.g. #00B388). Aircall does not accept a mutable description field. |
| `AIRCALL_CREATE_TEAM` | Create Team | Create a new Team. Requires a name. |
| `AIRCALL_CREATE_USER` | Create User | Create an Aircall user and send them a real invitation email, consuming a licensed seat. Use when adding a new teammate to the account; not for changing someone who already exists (AIRCALL_UPDATE_USER). Requires email, first_name and last_name. role_ids takes role NAME strings, one of owner, supervisor, admin or agent, not numeric ids. |
| `AIRCALL_CREATE_WEBHOOK` | Create Webhook | Create an Aircall webhook targeting a public HTTPS URL. Select one or more events, or explicitly set subscribe_to_all_events=true; omission never silently subscribes the destination to every company event. Aircall permits at most 100 webhooks per company. |
| `AIRCALL_DELETE_CALL_MEDIA` | Delete Call Media | Request permanent deletion of a Call's audio recording or voicemail, for compliance or data governance. Set media_type='recording' or media_type='voicemail'; a call may have one, both, or neither. The call record is retained, but deleting a recording on an AI Assist/Pro account also permanently removes its transcription and AI insights. Use when an audio artefact and its derived AI data must be purged; not for reading call details (AIRCALL_GET_CALL). Once processed, deletion is irreversible. A successful response means Aircall accepted the request, not that deletion is complete: recordings take 10-15 minutes and voicemails up to 1 minute, and existing download URLs may work during propagation. A recording can arrive up to 24 hours after the call, so retry later when it is not present yet. |
| `AIRCALL_DELETE_CONTACT` | Delete Contact | Permanently delete a shared Contact and all of its phone numbers and email addresses. Irreversible — there is no undo. Use to remove a contact entirely; not for removing a single phone number or email from a contact (AIRCALL_DELETE_CONTACT_METHOD). Returns 204 (empty body). |
| `AIRCALL_DELETE_CONTACT_METHOD` | Delete Contact Method | Permanently remove one phone number or email address from an Aircall contact. Set method_type='phone' or method_type='email' to say which kind method_id refers to. Use when a contact should no longer be reachable that way; not for deleting the whole contact (AIRCALL_DELETE_CONTACT), and not for correcting a method's value or label (AIRCALL_UPDATE_CONTACT_METHOD). IRREVERSIBLE: the method is gone and re-adding it mints a new id. Returns {success: true} on HTTP 204. |
| `AIRCALL_DELETE_TAG` | Delete Tag | Delete a Tag by id. Returns 204 (empty body). |
| `AIRCALL_DELETE_TEAM` | Delete Team | Delete a Team by id. Returns 204 (empty body). Does not delete the users in it. |
| `AIRCALL_DELETE_USER` | Delete User | Permanently delete a User. The deletion is processed asynchronously and returns HTTP 204 (empty body); it fires a user.deleted webhook. Returns a {success, id} confirmation. |
| `AIRCALL_DELETE_WEBHOOK` | Delete Webhook | Permanently delete an Aircall webhook. Delivery stops and its configuration is lost; use UPDATE_WEBHOOK with active=false instead when a reversible pause is preferable. |
| `AIRCALL_GET_CALL` | Get Call | Retrieve a single Call by id, with optional contact / short-url / timeline enrichment via the fetch_* flags. |
| `AIRCALL_GET_COMPANY` | Get Company | Retrieve information about the connected Aircall company (name, users_count, numbers_count). This is the best true auth-verify endpoint: a 200 confirms the Basic Auth credentials are valid. |
| `AIRCALL_GET_CONTACT` | Get Contact | Retrieve a single shared Contact by id, with its nested phone_numbers[] and emails[]. NOTE: contact created_at/updated_at are UNIX-epoch INTEGERS. |
| `AIRCALL_GET_NUMBER` | Get Number | Retrieve a single Aircall phone Number by its numeric id. |
| `AIRCALL_GET_NUMBER_REGISTRATION_STATUS` | Get Number Registration Status | Check whether an Aircall phone number is registered for compliance (10DLC or other regulatory registration) by reading the `status` field. Use for regulatory registration state only; not for the number's name, availability or Music & Messages (AIRCALL_GET_NUMBER). |
| `AIRCALL_GET_TAG` | Get Tag | Retrieve a single Tag by id. |
| `AIRCALL_GET_TEAM` | Get Team | Retrieve a single Team by id, including its member users. |
| `AIRCALL_GET_USER` | Get User | Retrieve one Aircall user by numeric id or by email address. Both work in the id field. Use when you already have the id or email; not for browsing the roster (AIRCALL_LIST_USERS). The user's assigned phone numbers are not included. Get them from AIRCALL_LIST_USER_NUMBERS. |
| `AIRCALL_GET_USER_AVAILABILITY` | Get User Availability | Check the current availability of one User. Returns availability ∈ available \| offline \| do_not_disturb \| in_call \| after_call_work. |
| `AIRCALL_GET_WEBHOOK` | Get Webhook | Retrieve one Aircall webhook by its UUID or legacy numeric id. |
| `AIRCALL_LIST_CALLS` | List Calls | List the account's calls in chronological order, covering about 6 months of history and at most 10,000 items via pagination. Window past that with the `from` UNIX timestamp. Use for plain date-ordered browsing of call activity; not when filtering by direction, user, phone number or tag, which is what AIRCALL_SEARCH_CALLS is for. An account with no calls returns an empty list with HTTP 200, never 404. |
| `AIRCALL_LIST_CONTACTS` | List Contacts | List all shared Contacts (hard-capped at 10,000 items via pagination — window past with the `from` timestamp). Each contact embeds nested phone_numbers[] and emails[] ({id, label, value}). NOTE: contact created_at/updated_at are UNIX-epoch INTEGERS (unlike other resources). Paginated via page/per_page; pass next_cursor back as cursor while has_more is true to retrieve subsequent pages. |
| `AIRCALL_LIST_NUMBERS` | List Numbers | List all Aircall phone Numbers in the account. Each number includes id, digits, name, country, availability and a `messages` object of audio URLs. Paginated via page/per_page; to page, pass the response's next_cursor back as cursor (has_more signals whether more pages remain). |
| `AIRCALL_LIST_TAGS` | List Tags | List all Tags in the account. Each tag = {id, name, color (hex), description}. Paginated via page/per_page; to page, pass the response's next_cursor back as cursor (has_more signals whether more pages remain). |
| `AIRCALL_LIST_TEAMS` | List Teams | List all Teams in the account. Each team embeds its member users (nested user objects). Paginated via page/per_page; to page, pass the response's next_cursor back as cursor (has_more signals whether more pages remain). |
| `AIRCALL_LIST_USER_NUMBERS` | List User Numbers (V2) | List all Aircall Numbers assigned to a specific User (V2, paginated). Returns one page plus a next_cursor to fetch the next. The number ids feed AIRCALL_START_OUTBOUND_CALL. Targets the /v2 API. |
| `AIRCALL_LIST_USERS` | List Users | List the users in the Aircall account, one page at a time with a next_cursor to continue. Use when you need user ids, names, emails, availability or default_number_id; not for a single known user (AIRCALL_GET_USER), and not for the phone numbers a user can call from (AIRCALL_LIST_USER_NUMBERS). |
| `AIRCALL_LIST_USERS_AVAILABILITY` | List Users Availability | List the detailed availability of all Users (whether each user is available/offline/on a call, etc.). Paginated via page/per_page; to page, pass the response's next_cursor back as cursor (has_more signals whether more pages remain). |
| `AIRCALL_LIST_WEBHOOKS` | List Webhooks | List webhook subscriptions accessible to the connected Aircall company. This returns one page only. If next_cursor is non-null, call LIST_WEBHOOKS again with that cursor to retrieve the next page; continue until next_cursor is null. Use this to discover a webhook UUID before retrieving, updating, or deleting it. |
| `AIRCALL_PUBLISH_CALL_INSIGHT_CARD` | Publish Call Insight Card | Display contextual title, short text, links, or Aircall user details to the agent handling an ongoing call. Cards are ephemeral: only ongoing calls show them and Aircall does not store them after the call. The JSON payload must be strictly less than 10KB. |
| `AIRCALL_REMOVE_USER_FROM_TEAM` | Remove User from Team | Remove a User from a Team (membership change). Returns the updated team when Aircall sends HTTP 200, or a success confirmation for an empty HTTP 204. Does not delete the user. |
| `AIRCALL_SEARCH_CALLS` | Search Calls | Find calls matching any combination of direction (inbound or outbound), user_id, phone_number and tag ids, optionally narrowed to a from/to date window. Use whenever at least one of those filters applies; not for unfiltered chronological browsing (AIRCALL_LIST_CALLS). Tag ids are AND-matched and come from AIRCALL_LIST_TAGS. |
| `AIRCALL_SEARCH_CONTACTS` | Search Contacts | Search shared Contacts by phone_number and/or email (optionally within a from/to date window). Pass next_cursor back as cursor while has_more is true to retrieve subsequent pages. NOTE: contact created_at/updated_at are UNIX-epoch INTEGERS. |
| `AIRCALL_SET_CALL_RECORDING_STATE` | Set Call Recording State | Pause or resume recording on an ongoing Aircall call. This is destructive: audio from a paused interval is never recorded and cannot be recovered by resuming later. The call must still be live and live recording must be enabled on its Aircall number. |
| `AIRCALL_START_OUTBOUND_CALL` | Start Outbound Call | Place a real, billable outbound phone call from an Aircall user's desktop Workspace to an external number. Use when a specific user should dial someone now. Requires the user's desktop Workspace app to be open, the user to be available, and a number_id the user owns, from AIRCALL_LIST_USER_NUMBERS. Returns acceptance only. No call id comes back and the call may still fail to connect; locate it afterwards with AIRCALL_SEARCH_CALLS. Calling again places a second call. |
| `AIRCALL_TAG_CALL` | Tag Call | Tag a Call with one or more existing Tag ids (create tags first with AIRCALL_CREATE_TAG). Returns success on HTTP 201. |
| `AIRCALL_TRANSFER_CALL` | Transfer Call | Cold-transfer a call that is live right now to one user, one team, or one external phone number. The transfer takes effect immediately and cannot be undone. Use only while a call is ringing or connected; not for a call that has already ended, and not for starting a new call (AIRCALL_START_OUTBOUND_CALL). Supply exactly one of user_id, team_id or number. External-number transfers work only for unanswered inbound calls. Returns acceptance on HTTP 204; calling again transfers again. |
| `AIRCALL_UPDATE_CONTACT` | Update Contact | Update a Contact's core fields (first_name, last_name, company_name, information). Phone numbers and emails are edited via the dedicated contact-method tools (AIRCALL_ADD_CONTACT_METHOD / AIRCALL_UPDATE_CONTACT_METHOD / AIRCALL_DELETE_CONTACT_METHOD), not here. |
| `AIRCALL_UPDATE_CONTACT_METHOD` | Update Contact Method | Update one phone number or email address that is already on an Aircall contact. Set method_type='phone' or method_type='email' to say which kind method_id refers to, and always send a nonblank value — Aircall requires it on every update even when only the label changes. Use when changing a method that already exists; not for adding a new one (AIRCALL_ADD_CONTACT_METHOD), and not for removing one (AIRCALL_DELETE_CONTACT_METHOD). Answers HTTP 202 Accepted and returns the updated method as 'contact_method'. |
| `AIRCALL_UPDATE_NUMBER` | Update Number | Update at least one mutable Number field: name changes its display name; availability_status changes the first Time Rule widget and can open or close call routing; live_recording_activated enables or disables inbound and outbound recording, and audio missed while disabled cannot be recovered; priority changes routing priority; messages replaces or clears supplied Music & Messages audio slots heard by live callers. These routing, recording, and audio effects are destructive and no previous value is restored automatically. Capture current values with AIRCALL_GET_NUMBER before updating if you need to revert. Do not assume omitted fields or message slots are preserved or cleared because Aircall does not document partial PUT semantics. |
| `AIRCALL_UPDATE_TAG` | Update Tag | Update a Tag (PUT, full replace). name and color are both expected. name must remain unique per company. Aircall does not accept a mutable description field. |
| `AIRCALL_UPDATE_USER` | Update User | Update an existing Aircall user's name, availability_status, substatus, roles or wrap-up time in place. Use when changing a user who already exists; not for creating one (AIRCALL_CREATE_USER), and not for reading their current availability (AIRCALL_GET_USER_AVAILABILITY). substatus applies only when availability_status is 'unavailable'. |
| `AIRCALL_UPDATE_WEBHOOK` | Update Webhook | Update an Aircall webhook's URL, name, active state, or event subscriptions. event_update_mode makes preserve/replace/add/remove/all explicit. The safe default is preserve, because Aircall otherwise resets omitted events to all. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

Once connected, ChatGPT can access the Aircall MCP server via Composio to run actions that you authorize, directly in your workspace.

## Complete Code

None listed.

## How to build Aircall MCP Agent with another framework

- [Claude Cowork](https://composio.dev/toolkits/aircall/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/aircall/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/aircall/framework/atomic-agent)

## Related Toolkits

- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Slack](https://composio.dev/toolkits/slack) - Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.
- [Gong](https://composio.dev/toolkits/gong) - Gong is a platform for video meetings, call recording, and team collaboration. It helps teams capture conversations, analyze calls, and turn insights into action.
- [Microsoft teams](https://composio.dev/toolkits/microsoft_teams) - Microsoft Teams is a collaboration platform that combines chat, meetings, and file sharing within Microsoft 365. It keeps distributed teams connected and productive through seamless virtual communication.
- [Slackbot](https://composio.dev/toolkits/slackbot) - Slackbot is a conversational automation tool for Slack that handles reminders, notifications, and automated responses. It boosts team productivity by streamlining onboarding, answering FAQs, and managing timely alerts—all right inside Slack.
- [2chat](https://composio.dev/toolkits/_2chat) - 2chat is an API platform for WhatsApp and multichannel text messaging. It streamlines chat automation, group management, and real-time messaging for developers.
- [Agent mail](https://composio.dev/toolkits/agent_mail) - Agent mail provides AI agents with dedicated email inboxes for sending, receiving, and managing emails. It empowers agents to communicate autonomously with people, services, and other agents—no human intervention needed.
- [Android Texter](https://composio.dev/toolkits/android_texter) - Android Texter is an API service that connects Android phones to SMS, MMS, contacts, and device data. Use it to automate mobile messaging without building your own phone-to-API bridge.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Blooio](https://composio.dev/toolkits/blooio) - Blooio is a stable v2 API platform for messaging, chats, contacts, groups, phone numbers, and account analytics. It gives teams a clean way to build reliable communication workflows without stitching together fragile custom APIs.
- [Callback24](https://composio.dev/toolkits/callback24) - Callback24 is a telephony API for managing phone calls, users, services, and routing groups. It centralizes call control and routing to automate voice workflows and operations.
- [CallOnTheGo](https://composio.dev/toolkits/callonthego) - CallOnTheGo is a telephony API for managing phone numbers, caller IDs, suppression lists, audio assets, contact lists, and Voice AI campaigns. It provides programmatic control over calling infrastructure and campaign automation for scalable voice outreach.
- [Carbon Voice MCP](https://composio.dev/toolkits/carbon_voice_mcp) - Carbon Voice MCP is a voice-first collaboration platform for messages, conversations, and workflows. Use it to centralize voice communications and streamline team collaboration.
- [CardClan](https://composio.dev/toolkits/cardclan) - CardClan is a digital card platform for creating and sending personalized team cards. Use it to celebrate moments, share card links, and manage card workflows without extra coordination.
- [Chatwork](https://composio.dev/toolkits/chatwork) - Chatwork is a team communication platform with group chats, file sharing, and task management. It helps businesses boost collaboration and streamline productivity.
- [Clickmeeting](https://composio.dev/toolkits/clickmeeting) - ClickMeeting is a cloud-based platform for running online meetings and webinars. It helps businesses and individuals host, manage, and engage virtual audiences with ease.
- [Confluence](https://composio.dev/toolkits/confluence) - Confluence is Atlassian's team collaboration and knowledge management platform. It helps your team organize, share, and update documents and project content in one secure workspace.
- [Daily](https://composio.dev/toolkits/daily) - Daily is a WebRTC video and audio API platform for building rooms, meetings, recordings, live streams, transcriptions, and telephony. It gives developers reliable real-time media infrastructure without managing complex conferencing stacks.
- [Dailybot](https://composio.dev/toolkits/dailybot) - DailyBot streamlines team collaboration with chat-based standups, reminders, and polls. It keeps work flowing smoothly in your favorite messaging platforms.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Aircall MCP?

With a standalone Aircall MCP server, the agents and LLMs can only access a fixed set of Aircall tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Aircall and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with ChatGPT?

Yes, you can. ChatGPT fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Aircall tools.

### Can I manage the permissions and scopes for Aircall while using Tool Router?

Yes, absolutely. You can configure which Aircall scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Aircall data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
