Connectors
Give your agents tools that reach outside the workspace — into Asana, PostHog, Shopify, the open web, and their own files.
Connectors are the tools your agents pick up to do real work: reading and writing in an outside system, pulling a page off the web, or keeping notes as they go. When a connector supports it, an agent can act — not just look.
What agents can connect to today
- Asana — agents can read your workspaces, projects, and tasks, and act on them: create a task, update or complete one, and add comments. This runs on your own Asana access token, so agents see and change exactly what that token allows.
- PostHog — agents can read your product analytics: which events fire and how often, trends over time, conversion funnels, cohort sizes, your saved insights, and HogQL queries. Read-only, and aggregates only — see PostHog below.
- Shopify — agents can read your store's products, order summaries, customer counts and inventory, and make two kinds of edit: a product's title, description, tags or price, and stock adjustments. No cancels, refunds or deletes — see Shopify below.
- The open web — agents can fetch any URL, sending a GET to read a page or a POST to hand data to an endpoint. Useful for pulling reference material or calling a simple API mid-task.
- Their own files — every agent has a
/workspaceit can read from and write to: create files, edit them in place, and organize them into folders. This is where drafts, exports, and generated documents live during a job. - Stripe — agents can read your Stripe account: customers, subscriptions, invoices, charges, payment links, and an MRR, new and churn summary. Read-only, with emails and card details masked — see Stripe below.
- Zoom — agents can create, list, reschedule and delete Zoom meetings on your own Zoom account, and put a Zoom link on a calendar event. See Zoom below.
- Cloudflare DNS — agents can list your domains and their DNS records, and add, change or remove a record — for example pointing a client's site at its host. Every change is shown as a dry run first. See Cloudflare DNS below.
For agent notes and long-term recall across jobs, see Memory — it's a separate, always-on capability, not something you connect.
Read vs. act
Not every connector writes back. The web and file tools read and write freely. Asana both reads and acts — creating and updating tasks and posting comments — but only within the permissions of the token you connect.
Stripe
Connect Stripe and your Queen Bee, Sales Analyst, Data Analyst and Product Manager can answer questions like "what's our MRR?", "who churned last month?" or "which invoices are overdue?" straight from your billing data.
Create a restricted key. In the Stripe Dashboard go to Developers → API keys → Create restricted key. Give it Read access on Customers, Subscriptions, Invoices, Charges, Payment Links, Prices, Products and Balance, and None on everything else. Use a test-mode key (rk_test_…) to try it out first. Secret keys (sk_…) and publishable keys (pk_…) are refused: a restricted key can be limited to read-only, a secret key can't.
Connect it. Go to Settings → Integrations → + Add → Stripe restricted key and choose Connect for: Personal (any member — your agents use your key) or Organization (owners and admins — every member's agents can use it). If an agent needs Stripe and it isn't connected, it posts a secure Connect card in the chat instead of asking for the key; a key connected from that card is saved as yours. Never paste a key into a message.
We check the key with Stripe (it must be able to read your balance) before saving it, and store it encrypted. It is never shown again or sent into an agent's workspace; Settings shows only its mode and last four characters.
Which connection is used. Your own Stripe connection first, then the organization's. Never another member's.
What agents can do (all read-only — nothing is ever written to Stripe; no refunds, charges, cancellations or new payment links):
| Tool | What it does |
|---|---|
stripe_list_customers | Customers, newest first, with a filter by exact email or created date |
stripe_get_customer | One customer and a summary of their subscriptions |
stripe_list_subscriptions | Subscriptions by status, customer, price or created date |
stripe_list_invoices | Invoices by status (e.g. open), customer, subscription or created date |
stripe_list_charges | Payments with amount, status, refunds and failure reason |
stripe_list_payment_links | Your payment links and what each sells |
stripe_revenue_summary | MRR at the start and end of a date range, new and churned subscriptions, per currency |
Lists return 25 results a page by default (100 at most) and a cursor for the next page. The revenue summary reads up to 2,000 subscriptions and says when it stopped short.
How MRR is counted. Each subscription item's price × quantity, converted to a monthly amount (a yearly price ÷ 12, weekly × 52/12, and so on). It is before discounts, coupons and tax; usage-based (metered) and tiered prices are left out and counted separately; subscriptions in a free trial, or paused after one, don't count yet. It uses each subscription's current items. New means the subscription started in the range, churned means it ended in the range. Each currency is reported on its own, never converted. Because the Stripe Dashboard applies discounts, its MRR can be a little lower than this figure.
Customer details stay private. Emails are shown as j***@acme.com and phone numbers as their last four digits; addresses are cut to the country; cards show only the brand and last four. Payment secrets, payable invoice links and receipt links are never returned. An agent can see one customer's full email only by asking for it on that customer (for example, to draft a payment reminder), and that is logged. Card details are never shown.
Cost. Stripe reads use no extra credits beyond the agent's normal work. This is your own Stripe account; it has nothing to do with how Busy Bee bills you.
Cloudflare DNS
Connect Cloudflare and your developer agents can point a domain at a new host, add a verification TXT record or check your MX records, without anyone opening the Cloudflare dashboard.
Connect it. In Cloudflare, go to My Profile → API Tokens → Create token and give the token Zone:Read and DNS:Edit on only the zones agents should manage. (The Global API Key is not accepted: it controls your whole account.) Then go to Settings → Integrations → + Add → Cloudflare API token and choose Connect for: Personal (any member — your agents use your token) or Organization (owners and admins — every member's agents can use it). You can add your Cloudflare account ID to limit agents to one account's zones.
We check the token with Cloudflare before saving it and store it encrypted; it is never shown again or sent to an agent. If an agent needs DNS and it isn't connected, it posts a secure Connect card in the chat instead of asking for the token — never paste a token into a message.
Which connection is used. Your own Cloudflare connection first, then the organization's. Never another member's.
What agents can do:
| Tool | What it does |
|---|---|
dns_list_zones | Lists the domains the token can see, with their status and nameservers |
dns_list_records | Lists a domain's records, optionally one type or one name |
dns_create_record | Adds an A, AAAA, CNAME, TXT, MX, CAA, SRV or NS (below the apex) record |
dns_update_record | Changes one record's content, TTL, proxy setting or priority |
dns_delete_record | Removes one record |
Queen Bee, Developer, Product Manager, QA Engineer and Security Analyst can read DNS; only Queen Bee and Developer can change it. Give the tools to any other role on its Tools tab.
Changes are careful by design.
- Every change names the domain, the record name and the type — an agent never guesses which domain you meant.
- Every change is a dry run first: the agent sees exactly what would change, before and after, and nothing is written until it confirms the change.
- Agents never change the NS records at the root of a domain or SOA records (those decide who answers for the whole domain), never change a record's type, and never touch a name outside the domain they named.
- If more than one record matches, the agent must say which one by its id.
Buying or transferring domains isn't supported yet.
Turning them on
Asana needs a credential before agents can use it: add your access token in Integrations, scoped to your organization or a single project. Connecting outside tools like Asana requires a paid plan — it isn't available on Free. The web and file tools need no setup — files are switched on for every agent, and the web tool for the roles that use it.
PostHog
Connect PostHog and your analyst and product agents can answer questions like "where do new signups drop off?" or "which features grew this month?" straight from your product data.
Connect it. Go to Settings → Integrations → + Add → PostHog API key and choose Connect for: Personal (any member — your agents use your PostHog access) or Organization (owners and admins — every member's agents can use it). Then enter:
- a PostHog personal API key (PostHog → Settings → Personal API keys; read access to query, insight, cohort, event definition and project is enough),
- your project ID — the number in your PostHog URL (
/project/<id>), - the host:
us(US Cloud, the default),eu(EU Cloud), or your self-hostedhttps://address.
We check the key with PostHog before saving it and store it encrypted; it is never shown again or sent to an agent. If an agent needs PostHog and it isn't connected, it posts a secure Connect card in the chat instead of asking for the key — never paste a key into a message.
Which connection is used. Your own PostHog connection first, then the organization's. Never another member's.
What agents can do (all read-only — nothing is ever written to PostHog):
| Tool | What it does |
|---|---|
posthog_query | Runs a HogQL SELECT, capped at 1,000 rows (100 by default) |
posthog_list_events | Lists recent events with counts and when each was last seen |
posthog_event_definitions | Lists your event definitions: descriptions, tags, 30-day volume |
posthog_funnel | Conversion through ordered steps for a date range, with an optional breakdown |
posthog_trends | Events over time, as totals or unique users, with an optional breakdown |
posthog_cohorts | Cohorts and their sizes |
posthog_list_insights / posthog_get_insight | Your saved insights and their latest results |
The Data Analyst, Data Scientist, Sales Analyst, Product Manager and Queen Bee roles get these tools automatically; give them to any other role on its Tools tab.
People stay private. Agents get numbers, not people: queries that read person tables or identifying fields (email, name, IP, distinct ID, person properties) are refused unless they only count them, breakdowns by those fields are refused, links to the people behind a number are removed, and any email address that still appears in a result is hidden. Saved insights that list individual people or raw events show their definition but not their rows.
Cost. PostHog calls are read-only, so they use no extra credits beyond the agent's normal work.
Shopify
Connect your Shopify store and agents can answer "what sold this week?", "which SKUs are low?" or "fix this product's title and price" without anyone opening the Shopify admin.
Create the token. In your Shopify admin go to Settings → Apps → Develop apps, create a custom app, and give it these Admin API scopes:
read_products, write_products, read_orders, read_customers, read_inventory, write_inventory, read_locations
Install the app and copy its Admin API access token (it starts with shpat_ and is shown once). Shopify only lets a custom app read the last 60 days of orders unless it also has read_all_orders.
Connect it. Go to Settings → Integrations → + Add → Shopify access token and choose Connect for: Personal (any member — your agents use your store) or Organization (owners and admins — every member's agents can use it). Enter the token and your store's your-store.myshopify.com domain (not a custom domain). We check the token with your store before saving it and store it encrypted; it is never shown again or sent to an agent. If an agent needs Shopify and it isn't connected, it posts a secure Connect card in the chat — never paste a token into a message.
Which store is used. Your own Shopify connection first, then the organization's. Never another member's.
What agents can do:
| Tool | What it does |
|---|---|
shopify_list_products | Products with status, vendor, tags, inventory and price range; search and page through them |
shopify_get_product | One product with its description and variants (SKU, price, stock, ids) |
shopify_list_orders | A summary for a date range: order count, sales, discounts, refunds, net, status counts and top products. detail lists orders without any customer details |
shopify_list_customers | Customer counts (total, new, by state, accepting marketing). The list view shows a masked email and a first initial only |
shopify_inventory_levels | Available and on-hand stock per item and location, with a low-stock filter. Without a product or SKU it checks up to 50 items per call and says when the store has more |
shopify_update_product | Edits a product's title, description, tags or a variant's price. Returns before and after |
shopify_adjust_inventory | Edits stock: adds or removes up to 10,000 units of one item at one location. Returns before and after |
There are no tools that cancel, refund, close or delete anything, and agents can't send Shopify any query of their own.
Who gets them. No role gets the Shopify tools automatically. Give the read tools to a role on its Tools tab; give the two edit tools only to roles you trust to change your live store.
Customers stay private. Agents get counts, not people: no names, emails, phone numbers or addresses in any result. The customer list shows j***@g***.com and a first initial so rows can be told apart, and any email address that turns up elsewhere (say, in a product description) is hidden.
Zoom
Connect Zoom and your agents can set up the meeting, not just the calendar slot: "book a Zoom with Dana on Thursday at 3" creates the Zoom meeting and the calendar event in one go.
Connect it. Go to Settings → Integrations → Zoom and choose Connect for: Personal (any member: your agents use your own Zoom) or Organization (owners and admins: one shared Zoom account). You sign in on zoom.us and approve Busy Bee; nothing is pasted. If an agent needs Zoom and you haven't connected it, it posts a Connect Zoom card in the chat.
Whose Zoom. Agents use the Zoom of the person the work is for, never anyone else's. The organization's Zoom is used only when a task explicitly asks for it, and only for runs of owners and admins. It is never a stand-in for someone who hasn't connected their own.
What agents can do. Create a meeting (topic, start, length, time zone, agenda) and share its join link, meeting ID and passcode; list upcoming meetings; change a meeting's time, length, topic or agenda; delete one, which always needs a note saying why. The host link is never shown in chat. The tools are on for the same roles as Google Calendar (Queen Bee, Product Manager, Marketing Strategist, Sales Analyst, Support Specialist, Content Manager, Content Writer, Researcher, Report Writer, Data Analyst); an admin can give them to other roles on the Roles page.
Zoom links on calendar events. calendar_create_event and calendar_update_event take addZoomLink: the agent creates a Zoom meeting on the same account as the calendar (yours, or the organization's) and puts the join link in the event's location and description. Use it or addMeetLink for Google Meet, not both. Moving an event moves its Zoom meeting too. Cancelling an event leaves the Zoom meeting in place, and the agent tells you so.
Disconnecting. Disconnect in Settings → Integrations → Zoom. Busy Bee hands the access back to Zoom, so the app also leaves your Zoom account's Added apps.
"Invalid redirect (4,700)" when connecting. Zoom doesn't recognise the address Busy Bee sends you back to. That address is the Busy Bee app's own URL followed by /api/integrations/zoom/callback, so on busy-bee.ai it is https://busy-bee.ai/api/integrations/zoom/callback (not app.busy-bee.ai). Whoever manages your Zoom Marketplace app adds that exact address to the app's OAuth Allow List, then you try Connect again.
Where it fits
- Connect and manage tools in Integrations
- See connectors in action inside Web research and Documents and reports
- Give agents lasting recall with Memory