Connector catalogue
Every built-in connector is installed from the Connectors screen. Actions marked “caller” or “staff” run only after that person says yes.
| Connector | Id | Actions | Install needs |
|---|---|---|---|
| WooCommerce | woocommerce |
catalog search, orders | Store URL, consumer key and secret |
| Shopify | shopify |
products.search, variant.stock, orders.find, order.create (staff) |
*.myshopify.com address, Admin API access token |
| Daraz seller | daraz.seller |
products.search, products.get, orders.list, orders.get, orders.status |
Country, app key, app secret, seller access token |
| Cal.com | calcom |
slots.find, booking.create (caller), booking.cancel (caller) |
API key, base URL (https://api.cal.com or your own server) |
| Google Calendar | google.calendar |
freebusy.query, events.list, event.create (caller) |
Google sign-in, calendar id |
| Google Sheets | google.sheets |
rows.read, rows.append (caller), rows.update, rows.batch_update, rows.clear (staff) |
Google sign-in, spreadsheet id |
| FHIR R4 | fhir.r4 |
patient.find, slots.find, appointment.book (caller), appointment.get, appointment.cancel (caller) |
FHIR base URL, bearer token. Health data, hosted in Nepal |
| Khalti | khalti |
payment.link.create (caller), payment.status |
Secret key, https://dev.khalti.com (test) or https://khalti.com |
| eSewa | esewa |
payment.form (caller), payment.status, payment.verify |
Merchant code, secret key, test or live |
| Sparrow SMS | sparrow.sms |
sms.send (caller), credit.balance |
Token, sender identity. Asks for messages.send |
| Webhook (Zapier, Make, n8n) | webhook |
event.send, trigger event.received |
HTTPS URL, shared secret sent as X-Webhook-Secret |
| WhatsApp Cloud API | whatsapp.cloud |
template.send (caller), templates.list |
Access token, phone number id, WhatsApp Business account id |
| HubSpot | hubspot |
contacts.find, contact.create (caller), deals.list, deal.create (staff), note.add |
Private app token |
| Zoho CRM | zoho.crm |
contacts.search, lead.create (caller), deals.search, note.add (caller) |
Access token, data centre address |
| Airtable | airtable |
records.list, record.get, records.create (caller), records.update (caller) |
Personal access token, base id |
| Notion | notion |
database.query, page.get, page.create (caller), page.update (caller) |
Integration token, database id shared with it |
| Slack | slack |
message.post, channels.list |
Bot token |
| Microsoft Teams | microsoft.teams |
message.post, card.post, message_card.post (all caller) |
Workflows or incoming webhook URL |
| Fonepay | fonepay |
payment.request (caller), qr.request (caller), payment.status, payment.verify |
Merchant code, secret, API user, test or live |
| IME Pay | imepay |
payment.initiate (caller), payment.status, payment.confirm |
API user and password, module, merchant code, base URL |
| Odoo 19+ | odoo |
products.search, product.stock, orders.find, order.create (staff) |
Instance URL, database name, API key |
| MCP server | generated | One action per tool on the server | Server URL, optional bearer token |
MCP servers
Section titled “MCP servers”Add any MCP server that speaks streamable HTTP with POST /api/connectors/mcp
(server_url, optional name and bearer token). AirFone calls initialize and
tools/list, and each tool becomes an action. Adding the same server again refreshes
its tools.
- the action name is the tool name in lowercase, with other characters turned into
_ - tools marked
readOnlyHintare read actions; every other tool needs the caller’s yes - each run is a
tools/callto the server’s address, and only that host is allowed
Running a tool needs a server that answers tools/call with plain JSON and no session.
Listing tools works with sessions and event streams too.
Known limits
Section titled “Known limits”- Odoo 17 and 18 are not supported: their API needs the key in the request body.
- IME Pay returns only the token. The checkout address is not built yet.
- Zoho signs in per data centre, so its token is not renewed automatically yet.