Office Hours · Session #42
Connectors
The decision chute — one token, two bins.
The Q&A ran wide into APIs vs connectors, secrets for API keys, rate limits, scaling multi-tenant SaaS, integration credit costs, and a couple of long voice sessions on lead-gen scraping and app monetisation.
- Credential tokenThe connection being installed
- Question gateA yes/no question flips it open
- Two binsShared, or app-user (UOU)
Pinned at the hopper
Before anything dropped
4 notices posted at the top of the chute before the sorting began.
New Connectors Live
Square and "Instagram for business" have recently landed in the integrations directory. The connector catalogue is being expanded month-to-month.
Thursday's Session: npm
Sam previewed Thursday's advanced session on npm packages — what npm is, how to install packages in one prompt, and why you should never use AI for language translation when an npm package (i18n) does it for free.
Sam Out For Wednesday
Sam confirmed he will not host the Wednesday session (it clashes with the England World Cup game — he's "piecing out early"). Coverage arranged; session will still run.
B2B Hours With Ro — Fri 24 July
A Friday B2B session hosted by Ro covering the hidden-balance / integration-credit-costing model (building a plan that caps user actions against your own credit spend).
Down the chute
The teaching, gate by gate
7 teaching points, in the order Sam ran them.
What a Connector Is
A connector is a pre-built, compartmentalised API integration that Base44 has bundled so you can install it in plain English. Analogy: like double-clicking a Windows .exe installer — all the complex backend work (files, subfolders, auth wiring) happens in the background. You don't touch the technical documentation.
How to Install One
Two ways:
- Directly in chat — type "connect stripe" (or "connect discord", "connect slack", etc.) and it triggers the OAuth connector flow, prompting you to log in with that account.
- Browse the directory — Dashboard → Integrations. Full catalogue, sortable A–Z / newest / most popular. If it's in there, "connect [name]" installs it.
Prerequisite for any connector: have an account already set up and logged in on that service (e.g. make your stripe.com account first), then "connect stripe". Done.
Shared vs App-User (UOU) Connectors — The Core Distinction
Shared connector (default): ONE account for everyone. You (the builder) connect it, and every user of the app uses that single connection/source of truth. If you connected your personal Discord, every visitor would see YOUR Discord data. Autonomous — the user sees no "connect" button. Best for team-wide Slack alerts, weekly email reports, shared dashboards, bot messaging.
App-user / UOU connector: Each user connects with their OWN credentials via a "connect" button, and their data is private. You as admin can't see their data and users can't see each other's. More setup (needs off-platform client IDs / secret IDs), but the Base44 chat walks you through where to fetch them. Best for personal calendars, individual inboxes, personal Notion notes.
Either binBoth require the builder plan (both need backend functions). When you "connect [x]", Base44 asks which type you want — shared or app user.
Decision Q&A (Sam's Flowchart)
Drop a token of your own — answer each gate the way your app works, and the chute does the sorting.
Gate 1 of 3: Does each user need their own personal data (own calendar)?
Does each user need their own personal data (own calendar)?
If no — will the app send messages/notifications from a single account (Slack team channel)?
If no — do users need to log into external services with their own credentials inside your app?
The flowchart as Sam ran it
- Does each user need their own personal data (own calendar)? → Yes = app user.
- If no — will the app send messages/notifications from a single account (Slack team channel)? → Yes = shared.
- If no — do users need to log into external services with their own credentials inside your app? → No = shared.
Connectors vs APIs
A connector IS an API — just pre-packaged by Base44. If something isn't a connector, you can still integrate it: Google "[service] API docs", paste the docs link into your builder, and it walks you through building the integration. Zero restrictions on what you can connect. GHL, for example, is not a connector yet — but you integrate it via its API with custom backend functions (which your prompt writes for you; you can do it in discuss mode).
- Toll sign
Rate Limits & Scaling (for Multi-Tenant SaaS)
150requests / minute
150 requests per user per minute and 150 requests globally on service role per minute. Exceed either → 429, with a ~2-minute grace period before the app works again.
Max data request = 5,000 rows per pull.
Both the 5K and 150 limits are extendable for enterprise only (expansion being explored).
First bottleneck is always 429s. Mitigate with fall-offs, batching, caching, websockets. For extreme data volumes, offload to an external DB (Firebase) and push/pull from there.
"Can Base44 handle 50–100 clients?" is unanswerable — entirely depends on structure, security, crons, websockets, and how data is pulled.
Side track
Secrets for API Keys
To avoid exposing your own API key (e.g. bringing your own OpenAI key to save integration credits): tell the builder you want to use your own key and set it as a secret, not exposed publicly. It'll prompt you for the secret; paste your key in the box and no user can see it.
The worked example
One token, run live
Demo benchFelside Botanicals demo app (reused from the Webflow session)
A beginner walkthrough of Connectors — what they are, where to find the integrations directory, how to install one in a single prompt, and the crucial difference between shared connectors and per-user (UOU / app user) connectors. Sam used the Felside Botanicals demo app from the prior Webflow session, showed the Discord connector OAuth flow live (cancelling before authorising), and worked through a decision Q&A for choosing between shared and app-user connectors.
One-prompt install
Ask for the connector in plain English
The OAuth hand-off
The service asks who is connecting
Authorise — or cancel
Sam stopped here, before authorising
The sorting tray
Every question, in drop order
27 questions answered live, kept in the order they fell.
Showing 27 of 27 questions
Out of the bins
What you carry off the line
7 takeaways, sorted and labelled for the trip home.
A connector is just a pre-packaged API — "connect [name]" in one prompt, no docs, no manual wiring. If it's not a connector, paste the API docs into chat and build it yourself. Zero integration restrictions.
Shared connector = one account for everyone (the default). App-user / UOU connector = each user connects their own credentials, data stays private. Both need the builder plan.
Connectors and API connections are free — only backend function CALLS cost integration credits.
Message credits build the app (yours); integration credits are what users spend using it — and plenty of apps cost zero to run.
Rate limits: 150 req/min per user, 150 req/min service-role global, 5K rows per request; breach = 429 + ~2-min grace. Extendable for enterprise only.
Bring your own API key as a secret to keep it hidden and shift cost off Base44's invoke.
Never use AI to translate an app — npm install i18n does it for free (teeing up Thursday's npm session).
