Appearance
Overview
Connectors let your widgets talk to external services — like Salesforce, weather APIs, or any HTTP endpoint — without exposing credentials in the browser. You configure a connector once, and any widget can call it securely. They are commonly used inside Custom Widgets to fetch or send data from widget code via the SDK.
New to connectors? Start with Build Your First Connector.
Why use connectors
Use them when you want to:
- Pull data from another system
- Send data to a service you rely on
- Reuse the same Connector across teams
- Keep auth and request formats consistent
They also protect sensitive data in client-side apps. Without connectors, browser code must call external APIs directly, which exposes API keys and tokens. With connectors, requests run on the backend and secrets stay on the server.
Typical examples are CRM lookups, payment processing, monitoring services, and data enrichment.
Guides
| Guide | Description |
|---|---|
| How Connectors Work | Detailed request and response pipeline |
| Configuration | Required and optional fields, naming, URL rules |
| Authentication | API Key, OAuth Client Credentials, None |
| Headers & Query Parameters | Headers, query params, overridable fields |
| Request Transformation | Reshape request bodies with Jinja2 |
| Response Transformation | Transform upstream API responses with Jinja2 |
| Secrets | Store and manage credentials |
| Calling from Widget Code | Call connectors from widget code |
| Passing User Context | Securely inject user identity into connector requests |
| Filtering Sensitive Data | Strip hidden or private records from responses before they reach the browser |
| Template Variables | Variables, filters, and functions reference |
| SDK | Full SDK documentation — install, API, types, examples |
| Testing & Debugging | Test connections, performance headers, troubleshooting |
| HTTP Caching | Automatic response caching |
| Code Mode | Define connectors using JSON |
| Repository Registry | Define connectors in your GitHub repository |

