Connectors
Updated 2026-10-04
A connector is an external account the agent can use on your behalf. It is connected once per person and used by all your agents.
How it works
- The account connects; each agent is granted access. The key is stored encrypted under
(your user, provider). As with databases, an agent only uses the connectors you give it in its page → Connectors (a new agent starts with none). On team channels it reads and writes; on customer channels it only reads, unless you allow it. - Connect once, it works everywhere. Your connection belongs to your account, not to a workspace: GitHub, Calendly, Deník, Sentry, Odoo or Drive connected in one Teams workspace (or in Studio) already show up in your other workspaces. Disconnecting applies everywhere too. What stays per workspace is sharing a connection with that team.
- It acts as whoever invokes it. In Teams, if
@handlesends an email from a channel, it sends it with the account of the person who mentioned it, not with a shared account. On a public channel (WhatsApp) personal connectors are not available. - Disconnecting revokes. Removing a connector deletes the key and revokes the grant at the provider.
- From the terminal too:
ghosty connectors ls,ghosty connectors connect shopifyandghosty connectors disconnect shopify(see ).
Where they are connected
- Studio: the Connectors chip in the chat (
/c) or Connectors in the navbar. Key-based ones (Mercado Pago, Stripe, Notion…) are pasted in a dialog right there: the key is tested against the provider before it is saved, and your personal agents (without customer channels) get access automatically. Grant the rest from each agent's page → Connectors. - Your own system (MCP): at the end of the Connectors list in
/c, Connect it with its URL adds your system's MCP server to that chat's agent (pasting its URL in the search box works too). If it requires OAuth, Ghosty registers itself, sends you to authorize and keeps the token in the vault; Ghosty's proxy injects and refreshes it (Bearer ${conn.token}), and it never reaches the box. If it uses a fixed key, paste it in Token. Catalog connectors that work this way (Mailmask) are connected from their card, like the rest. - Teams: the workspace's Settings → Integrations, for what the agent uses inside the workspace (GitHub, Calendly, Deník…). Google Drive shows up there too: you connect it once in Studio with the same account, and the Teams agent uses it with the account of whoever is talking to it.
- Mobile app: Settings → Integrations with the same list, through the .
Catalog
The ones marked «connected in Teams» are connected in a Ghosty Teams workspace (the Connectors chip takes you there) and also work in your chat and in the app. They are not available from a customer channel (WhatsApp, Messenger): they are personal accounts.
Google: Claude or OpenAI agents only
Google Drive, Calendar, Gmail and Contacts only work with Claude or OpenAI agents: on our accounts with those providers, model training is turned off. With DeepSeek or Gemini (including Ghosty Lite) they show as blocked on the agent's page: your Google account data never reaches those models. Google requires it (Limited Use, Google API Services User Data Policy).
- If you switch an agent from Claude to DeepSeek or Gemini, its Google connectors pause and come back on their own when you switch back.
- A conversation where the agent used Google is not shared with a DeepSeek or Gemini agent: not its history, not cross-conversation search, not memories that came from it.
Google Drive
The agent only sees the files you pick. When connecting, Google asks for access to "the files you use with this app" (drive.file) and then Google's picker opens so you choose your price list, inventory or catalog. Nothing else in your Drive is within its reach.
- What it reads: Google Sheets (every tab), Google Docs and CSV or text files. PDF and
.xlsxnot yet. - Tools:
drive_archivos(what you picked),drive_leer,hoja_agregar_fila,hoja_actualizar,documento_agregar(appends text to a document) anddocumento_reemplazar(replaces an exact text across a document; handy for filling{{placeholders}}in templates). Write tools from a customer channel only if you allow it. - Writing to a sheet works from team channels (your chat, Teams, scheduled). To let a customer (Messenger, WhatsApp) write, for example their order, tick "Can write from customer channels" in the agent's page → Connectors.
- Add or remove files: Connectors → Google Drive → Files. Which files each agent sees is chosen in its page → Connectors.
- From the phone app (personal use): when you pick files, your personal agents get access by themselves. Left out: agents that serve customers (with WhatsApp or Messenger connected, or a customer-role channel) and workspace agents; you grant those on their page → Connectors or with
ghosty agents set <id> --connect google-drive. - Disconnecting revokes the grant in your Google account.
Key-based connectors
Stripe, Notion, HubSpot, Slack, WooCommerce, Facturama, Facturapi, Conekta, Clip, Envia.com and Kommo (plus Mercado Pago, Skydropx and ElevenLabs) are connected by pasting the key each service gives you. The dialog says where to get it.
- Tools:
stripe_payment_link,stripe_payments,stripe_customers·notion_search,notion_read,notion_append·hubspot_contacts,hubspot_contact_upsert,hubspot_deals,hubspot_deal_create,hubspot_note·slack_channels,slack_post·woo_products,woo_orders,woo_stock_set·facturama_search,facturama_issue,facturama_send·kommo_leads,kommo_lead_move,kommo_note·facturapi_customers,facturapi_invoice,facturapi_invoices,facturapi_send·conekta_payment_link,conekta_orders·clip_payment_link,clip_payments·envia_quote,envia_label,envia_track. - From a customer channel (WhatsApp, Messenger) nothing that lists other customers' data runs (contacts, orders, payments, inbox). Writes (a payment link, a CRM note) do; turn them off per channel in the agent's page if you don't want them there.
- Test conversations: writes are simulated; your real account is not touched.
- On-demand guides:
connector_guidegives the agent a connector's step by step (today Facturama and Stripe: what to ask, what to confirm, common SAT errors). Only for connectors it has; it takes no context until requested.
Odoo and other credential-based connectors
Non-OAuth connectors are set up with their credentials (instance URL, user, key). The URL goes through a network guard: only public hosts, no private IPs and no localhost, so a connector can't be used to reach your internal network from the agent's machine.
API
For your own clients (the mobile app uses these):
They require an OAuth2 bearer; see .