Pasting an API key into a form always worked, but it was never really one click. You still had to leave Breezify, find the right settings page in some other product, generate a key, copy it, and hope you grabbed the right one with the right permissions. Multiply that by every service an app might need and it stopped feeling like the fast path it was supposed to be.
That's gone now, and the list of services it's gone for is a lot longer than it used to be. Stripe. All five major Google products an app might touch: Sheets, Drive, Calendar, Gmail, Docs. Notion, Airtable, Discord, Dropbox, Zoom, Mailchimp, Linear, Figma, Square, Asana, Typeform, and more are joining the list on an ongoing basis. Each one now has a real "Connect" button. Click it, you're sent to that service's own login screen the same way you'd authorize any app, you approve access, and you're back in Breezify with the connection live. No key to find, no docs to read, nothing to paste, for any of them.
What's actually happening underneath is standard OAuth, the same handshake your browser already trusts for "Sign in with Google" on any other site. Breezify only ever sees a token scoped to what that connector needs, never your password, and the token is stored per app, not shared across every app you build. Disconnecting revokes it on the other end too, not just in Breezify's own database.
The Connectors panel makes the distinction obvious at a glance now: services with a real one-click flow get a green border, so you're never guessing which ones are still the older paste-a-key kind. A handful of connectors, like Google's Custom Search, genuinely can't work this way, since there's no personal account to authorize in the first place, just a public API key and a search engine ID, so those stay a manual field by necessity, not because they were skipped.
The generation side hasn't changed: describe the feature in plain English, "let people sign in with their Google account and read their calendar," say, and Breezify still reaches for the right connector and wires the code to use it automatically. What changed is what happens when that connector isn't set up yet. Instead of a vague warning listing raw environment variable names, you get a plain message naming the actual service and a button that takes you straight to connecting it. The gap between describing a feature and having it actually work just got a lot shorter.