Connectors

Connectors

External accounts the agent accesses on your behalf — Shopify, Mercado Libre, Google Drive, Gmail, Stripe, Mercado Pago, Notion, HubSpot, monday.com, Zapier, Odoo, GitHub and more — and how to connect them from the web, the app or the CLI.

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 @handle sends 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 shopify and ghosty 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

ConnectorTypeWhat the agent can do
Google DriveOAuth2 + pickerRead the sheets, docs and CSVs you pick; append rows and update cells.
Mercado PagoCredentials (access token)Payment links (Checkout Pro) to your account.
SkydropxCredentials (Client ID:Secret)Quote, create and track shipments.
ElevenLabsCredentials (API key)Reply to WhatsApp voice notes with your own voices, cloned ones included.
Google CalendarOAuth2 (calendar.events)See the calendar, free slots, create, move and cancel appointments with invites and Meet (calendar_events, calendar_free, calendar_create, calendar_update, calendar_delete).
GmailOAuth2 (gmail.send)Send email from your account (gmail_send). It does not read your inbox.
Contactos de GoogleOAuth2 (contacts)Search, save and update contacts (contacts_search, contacts_create, contacts_update).
Mercado LibreOAuth2Read and answer buyer questions, check sales and shipments, and change price or stock (ml_questions, ml_answer, ml_orders, ml_order, ml_items, ml_item_update).
ShopifyOAuth2Daily sales summary, orders (view and mark as fulfilled with tracking), products (price, title and status), inventory by location and customers. Type your store (mystore.myshopify.com) and approve in Shopify (shopify_shop_summary, shopify_orders_list, shopify_order_get, shopify_order_fulfill, shopify_products_search, shopify_product_update, shopify_inventory_levels, shopify_inventory_adjust, shopify_customers_search).
StripeKey (restricted key)Payment links, recent payments and customer search.
NotionKey (internal integration)Search, read and write the pages and databases you share with the integration.
HubSpotKey (private app)Search and create contacts, deals and notes.
SlackKey (bot token)List channels and post messages.
WooCommerceKey (URL + consumer key/secret)Products, stock and orders; adjust stock.
FacturamaKey (API user and password)Search, issue (CFDI 4.0) and email invoices.
KommoKey (subdomain + long-lived token)Search leads, move them between stages and add notes.
FacturapiKey (secret)Issue CFDI 4.0 invoices, search and email them.
ConektaKey (private)Payment links with card, OXXO and SPEI; check whether they paid.
ClipKey (API key + secret)Clip payment links and their status.
Envia.comKey (API token)Quote several carriers, create labels and track.
ZapierOAuth2 (its official MCP)The actions you enable in your Zapier, across thousands of apps.
monday.comOAuth2 (its official MCP)Boards, tasks and items in your monday.com.
MakeOAuth2 (its official MCP)Run your Make scenarios.
KlaviyoOAuth2 (its official MCP)Lists, campaigns and email marketing metrics.
WixOAuth2 (its official MCP)Your Wix site: pages, products, bookings and contacts.
HostingerOAuth2 (its official MCP)Your sites, domains and hosting at Hostinger.
AirtableOAuth2 (its official MCP)Your Airtable bases and tables: read and update records.
PayPalOAuth2 (its official MCP)Invoices, payment links and transactions in your PayPal.
LinearOAuth2 (its official MCP)Your team's issues, projects and cycles in Linear.
WebflowOAuth2 (its official MCP)Your Webflow site and CMS: collections and publishing.
MailmaskOAuth2 (its official MCP)Create alternate addresses and mailboxes and read your domains' inbox: the tools come from Mailmask.
EasyBitsOAuth2Documents, sites, video and images from your account.
OdooKey (URL, database, user and API key)Read and create ERP records.
GitHubOAuth2 (connected in Teams)Issues, PRs and code from your repos; in Teams, from the room's repos.
CalendlyOAuth2 (connected in Teams)Scheduling and availability.
DeníkOAuth2 (connected in Teams)Appointments, customers, services and sales of your business.
SentryOAuth2 (connected in Teams)Errors, issues and releases of your projects.
Tiendanube and more—Coming soon.

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 .xlsx not yet.
  • Tools: drive_archivos (what you picked), drive_leer, hoja_agregar_fila, hoja_actualizar, documento_agregar (appends text to a document) and documento_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_guide gives 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):

RouteWhat it does
GET /api/v2/me/connectorsCatalog with conectado: true/false ("connected") per connector.
POST /api/v2/me/connectors/:id/startReturns the authorization url to open in the browser.
POST /api/v2/agents/:id/mcp/connectConnects a remote MCP to the agent: {"name","url","token?"}. Returns {added}, or {authorizeUrl} if it needs OAuth.
POST /api/v2/me/connectors/:id/credentialsConnects a key-based one: {"values": {field: value}} with the fields in the catalog's credential.fields. Tests the key before saving it (400 with the reason if it fails).
DELETE /api/v2/me/connectors/:idDisconnects and revokes.

They require an OAuth2 bearer; see .

bash
# catalog with each connector's statecurl https://www.ghosty.studio/api/v2/me/connectors -H "Authorization: Bearer $TOKEN"
# start authorization for one (open the returned url in the browser)curl -X POST https://www.ghosty.studio/api/v2/me/connectors/easybits/start -H "Authorization: Bearer $TOKEN"
# disconnect (revokes at the provider)curl -X DELETE https://www.ghosty.studio/api/v2/me/connectors/easybits -H "Authorization: Bearer $TOKEN"