A Plugin is how Aitelier connects to the systems your business already runs — your phone trunk, your booking software, your CRM, your calendar, your notification channel. The agent calls them as tools during a conversation: check availability, create a booking, send a confirmation, write a lead, look up an existing customer.
Plugins are typed — every plugin of a given type (e.g. Calendar) implements the same contract — so you can swap providers without touching your scenario.
Connecting a plugin
Open the Connections tab in your project. You see one row per plugin type the scenario requires. Click the row to configure the provider.
Each provider asks for the credentials it needs: an API key, an OAuth login, a webhook secret. The platform encrypts every secret at rest and never displays it back. After saving, the Test connection button verifies the credentials are valid and that the agent can call the plugin successfully.
Plugin types
Telephony
How calls reach the platform. Two paths:
- Aitelier-provided number — we provision a SIP DID inside the platform. Pick a country, you get a number, you point your call traffic at it (or just publish it as your business number).
- Your own SIP trunk — bring your existing trunk (Twilio, Bandwidth, your IP-PBX). We validate the call path with a test before enabling production traffic, per ADR-0051.
Outbound calls go through the same plugin. We classify outbound minutes by route bucket (US local, US tollfree, EU outbound, RU outbound, other) for billing.
LLM Realtime
The model the agent uses for natural voice turn-taking. Three tiers ship with the platform:
- Economy — Gemini 2.5 Flash native audio. Low cost, suitable for high-volume / low-stakes scenarios.
- Standard — Cascade pipeline (Deepgram STT + GPT-4o-mini + Cartesia Sonic TTS). The default.
- Premium — OpenAI Realtime hybrid + Claude Sonnet on the slow path. Highest quality, highest cost.
You pick the tier per scenario; the platform handles the rest.
Booking
How the agent reserves time slots — for tables, treatments, appointments. Shipping providers:
- TheFork
- OpenTable
- SevenRooms
- Resy
- Generic webhook — points at your own reservation API
The agent calls check_availability, create_booking, modify_booking, cancel_booking against whichever provider is connected.
Calendar
For scenarios where the agent books on a specific person's calendar — typically sales meetings, real-estate viewings, healthcare appointments per practitioner.
- Google Calendar — OAuth, per-person calendar access
- Microsoft Outlook 365 — OAuth, per-mailbox calendar access
- CalDAV — for Apple Calendar and self-hosted
The agent reads availability live, books with a title and description you template, and sends invites to attendees.
CRM
Where leads and customers live in your business. Shipping providers:
- HubSpot
- Salesforce
- Pipedrive
- AmoCRM
- Zoho
- Bitrix24
- Generic webhook
The agent looks up callers by phone, writes new leads on capture, updates deal stages on qualification, attaches the call recording and transcript for audit.
E-commerce / OrderManagement
Used by the Sales pack to place orders on the call.
- Shopify
- 1C (Russia-friendly)
- WooCommerce
- BigCommerce
- Custom REST — your own backend with a typed contract
place_order, check_stock, get_price against your real backend, audit trail attached.
Notification
How the agent sends confirmations and follow-ups.
- Resend (email)
- AWS SES (email)
- Twilio SMS
- Telegram bots
- Slack
The agent reads the last four digits of the destination back to the caller for confirmation before sending.
Storage
Where call recordings, transcripts and exports live. Default is Hetzner Object Storage (S3-compatible, EU). Alternatives:
- AWS S3
- Cloudflare R2
- Google Cloud Storage
You configure retention per project (default 90 days for recordings, configurable from 0 to "max permitted by law").
Writing your own plugin
If a provider you need is not on the shipping list, you can write a plugin against the typed contract. The full SPI lives in @avp/plugins-types; a small plugin (e.g. a custom CRM connector) is typically an afternoon of work.
Plugins run server-side; they have access to network only through the platform SDK, not to the filesystem or other tenants' data. We review and sign plugins before they can be enabled in a project; the review is a quick code-and-security check, not a marketplace gate.
Reach out at partners@aitelier.org if you want to contribute a plugin we can ship to other customers.
Errors and resilience
When a plugin fails — provider down, credential expired, rate-limited, network blip — the platform surfaces the failure to the LLM as a structured "service unavailable" tool-call result, not an exception. The agent reacts politely ("I am having trouble checking availability right now, could I take your details and call back?") instead of crashing the call.
You see every plugin error in the session detail page with the full request / response / latency, so you can debug without guessing.