# API keys
Source: https://www.wirebase.com/docs/admin-guide/models/api-keys
Connect AI providers for your organization. Every member chats with the models your keys unlock.
## Overview
**Admin → API Keys** has three tabs:
| Tab | Holds |
| - | - |
| **Provider Keys** | Keys for AI model providers: OpenAI, Anthropic, Google, xAI, Groq, Mistral, DeepSeek, Fireworks, Cohere, Amazon Bedrock, OpenRouter, Ollama and others. |
| **Service Keys** | Keys for supporting services, such as the web search provider. |
| **Custom Providers** | OpenAI-compatible endpoints you add yourself. See [Custom providers](/docs/admin-guide/models/custom-providers). |
## Add a provider key
1. On **Provider Keys**, find the provider and click **Add**.
2. Paste the key and save. Wirebase validates it with the provider first.
3. The provider's default models are enabled automatically. Fine-tune them in [Models](/docs/admin-guide/models/models).
**Quick start** offers two shortcuts: **Connect** OpenRouter (authorize Wirebase to create a key, no copy and paste), and **Get a free key**, which lists providers with free tiers.
## Security
* Keys are encrypted at rest and never displayed again after saving. To change one, click **Edit key** and enter a new value.
* Keys are scoped to your organization. Other organizations can't see or use them.
* Keys in server environment variables are ignored; keys are only ever configured here.
* Every create, update and delete is recorded in the [audit log](/docs/admin-guide/usage/audit-logs).
## Remove a key
Click **Delete key**. All of that provider's enabled models are removed and members can no longer select them.
## Which keys does each feature need?
| Feature | Needs |
| - | - |
| Chat | Any provider key with enabled chat models. |
| Knowledge bases and project files | An **OpenAI** or **OpenRouter** key, for embeddings. |
| Image generation | A provider with image models, such as OpenAI or Google. |
| Web search | A search key under **Service Keys** (Exa). See [Chat features](/docs/admin-guide/models/chat-features). |
# Chat features
Source: https://www.wirebase.com/docs/admin-guide/models/chat-features
Turn chat capabilities on or off for your organization, and set up web search.
## Overview
**Admin → Settings → Chat Features** controls which chat capabilities members can use.
| Feature | What it controls |
| - | - |
| **Voice Chat** | Voice input in chat. |
| **File Upload** | Attaching files to chat messages. |
| **Image Generation** | Generating images in chat. |
| **Web Search** | The built-in web search tool. Needs a search provider and key (below). |
| **Code Execution** | Running JavaScript and Python in chat. Use with caution. |
| **Temporary Chat** | Starting temporary chats that aren't saved. |
Changes apply to every member of the organization.
## Set up web search
1. Turn on **Web Search**.
2. Under **Search Provider**, select **Exa**.
3. Click **Add API key** and paste your Exa key.
Web search keys are stored per organization and encrypted like provider keys. There is no server-wide fallback key.
## Related settings
* To turn connectors off for the whole organization, see [Integrations](/docs/admin-guide/settings/integrations).
* To control which models members can use, see [Models](/docs/admin-guide/models/models).
# Custom providers
Source: https://www.wirebase.com/docs/admin-guide/models/custom-providers
Use any OpenAI-compatible endpoint, such as vLLM, LM Studio or an internal gateway, as a model provider.
## Overview
A custom provider connects Wirebase to any endpoint that implements the OpenAI Chat Completions API, for example a self-hosted vLLM server, an internal AI gateway or a provider Wirebase doesn't list.
## Add a custom provider
Go to **Admin → API Keys → Custom Providers** and click **Add Custom Provider**.
| Field | Description |
| - | - |
| **Name** | A label for the provider, such as "Internal vLLM". |
| **Endpoint URL** | The base URL, for example `https://llm.internal.example.com/v1`. A trailing `/chat/completions` path is normalized automatically. |
| **API Key** | Sent as `Authorization: Bearer …`. Leave blank if the endpoint doesn't require a key. |
| **Custom Headers** | Optional extra headers sent with every request. |
| **Models** | Model IDs to expose (for example `llama-3.1-70b`), each with an optional display label. Models are entered manually. |
Save, then enable the models in [Models](/docs/admin-guide/models/models).
The endpoint must be reachable from the public internet over HTTPS. For guidance on what the endpoint needs to support, see [OpenAI-compatible providers](/docs/developer-guide/openai-compatible-providers).
## Edit or remove
Use **Edit** to change the URL, key, headers or model list, and **Delete** to remove the provider and its models.
# Models
Source: https://www.wirebase.com/docs/admin-guide/models/models
Choose which models members can use, see their capabilities, and set pricing for spend reporting.
## Overview
**Admin → Models** lists every model available from the providers you've added keys for. Model lists, context lengths, capabilities and pricing are maintained by Wirebase and appear once a provider is configured.
## Enable and disable models
1. Select a provider.
2. Switch models on or off. **Enabled** models appear in every member's model selector; **Available** ones don't.
3. Save your changes.
Use the search box and filters (**Enabled only**) to find models quickly. Click **Refresh** to pull the latest models from every configured provider.
## Model details
Click a row to see a model's details:
* **Identity**: model ID, provider, modality, release date and knowledge cutoff.
* **Limits**: context length and maximum output.
* **Capabilities**: tool calling, vision (image input), file upload, JSON mode, reasoning, prompt caching, web search, image generation.
* **Pricing per 1M tokens**: input, output, cache read and cache write.
* **Status**: enabled, deprecated, whether it's still in the provider's catalog, and when it was last synced.
Members can only use @mentions, agents, workflows and connectors with models that support **tool calling**. Keep at least one such model enabled.
## Override pricing
Spend in [reporting](/docs/admin-guide/usage/reporting) and [usage limits](/docs/admin-guide/usage/usage-limits) is calculated from each model's price per token. If your organization has negotiated rates, or a model has no list price (for example a self-hosted model), set your own input and output price per 1M tokens. **Reset to provider default** removes your override.
Wirebase doesn't bill you for model usage. Providers bill the key owner directly. Spend figures in Wirebase are estimates for monitoring and budgeting.
# Admin overview
Source: https://www.wirebase.com/docs/admin-guide/overview
What organization admins can manage in Wirebase, and where to find it.
## Open the admin dashboard
Click your avatar in the sidebar and choose **Admin**. The option only appears for organization **admins**.
The **Dashboard** shows total users, who's signed in now, messages in the last 7 days, storage, recent activity and quick links to common tasks.
## What you can manage
Connect AI providers for your whole organization.
Choose which models members can use, and set pricing.
Invite people, change roles, suspend or remove members.
Group members for sharing projects.
Set monthly AI budgets for the org, roles or people.
Spend, adoption, reliability and tool usage.
Every administrative and security-relevant action.
Single sign-on and automatic user provisioning.
Serve Wirebase on your own domain, white-labelled.
Plans, seats and invoices.
## Organizations
Everything in Wirebase belongs to an organization: API keys, models, agents, workflows, connectors, knowledge and chats. Data never crosses between organizations, and admin settings apply only to your own organization.
# Members & roles
Source: https://www.wirebase.com/docs/admin-guide/people/members-and-roles
Invite people to your organization, assign roles, and suspend or remove members.
## Invite members
Go to **Admin → Users** and click **Add Member**.
Enter the person's **Email Address**, choose a **Role**, and optionally a **team** they'll join when they accept.
They receive an email with a link to join. Pending invitations are listed alongside members, where you can resend or **Cancel Invitation**.
Admins and editors can invite members.
The Free plan includes up to 3 members. On the Team plan you pay per seat; if you're out of seats, the invite dialog offers to add more. See [Billing](/docs/admin-guide/settings/billing).
## Roles
Each member has one role in the organization.
| Capability | Member | Editor | Admin |
| - | :-: | :-: | :-: |
| Chat, temporary chats, projects, memory | ✓ | ✓ | ✓ |
| Create and share agents | ✓ | ✓ | ✓ |
| Use shared workflows and connectors | ✓ | ✓ | ✓ |
| Create and edit workflows | | ✓ | ✓ |
| Add and manage connectors | | ✓ | ✓ |
| Invite members | | ✓ | ✓ |
| Open the admin dashboard: keys, models, members, teams, limits, reporting, settings | | | ✓ |
New invitees default to **Member**. Whoever creates an organization is its first **Admin**.
## Manage members
In **Admin → Users**, search by name or email, then use a member's menu to:
* **Change Role**.
* **Suspend Member**: they lose access to this organization for 7 days. Their other organizations aren't affected. **Lift Suspension** restores access early.
* **Remove Member**: removes them from the organization. This can't be undone.
Click a member to see their details and AI usage over time.
Every role change, suspension and removal is recorded in the [audit log](/docs/admin-guide/usage/audit-logs).
## Provision automatically
With an identity provider, you can create and remove members automatically with [SCIM](/docs/admin-guide/security/scim), and have them sign in with [SSO](/docs/admin-guide/security/sso).
# Teams
Source: https://www.wirebase.com/docs/admin-guide/people/teams
Group members within your organization, for example Engineering or Sales.
## Overview
Teams are groups of members inside your organization. Use them to share a [project](/docs/user-guide/chat/projects) with just one group instead of everyone.
## Create a team
1. Go to **Admin → Teams** and click **Create Team**.
2. Enter a name, for example "Engineering".
3. Click **Manage members** and add organization members.
You can also put new people on a team when you invite them. They join the team when they accept.
## Manage teams
From a team's menu you can **Rename**, **Manage members** (add, or **Remove from team**) or **Delete** it. Deleting a team doesn't remove its members from the organization.
Only admins can create and manage teams. Members can see the teams they belong to.
# Custom domain
Source: https://www.wirebase.com/docs/admin-guide/security/custom-domain
Serve your Wirebase workspace on your own domain, with your branding and access rules.
## Overview
Map a domain you own, such as `ai.yourcompany.com`, to your organization. Members use Wirebase at that address, with a sign-in page in your brand, and you control who can sign in there.
Custom domain and white-label are part of the **Enterprise** plan. Configure them in **Admin → Settings → Custom Domain**.
## Connect your domain
Enter the domain or subdomain you want to use, for example `ai.yourcompany.com`.
At your DNS provider, add the **CNAME** record shown on the page. It routes traffic to Wirebase, and an SSL certificate is issued automatically.
Add the **TXT** record shown on the page at `_wirebase-verify.`. It proves you own the domain.
Once both records are in place, click **Verify**. DNS changes can take up to 48 hours to propagate. When verification succeeds, the status changes from **Pending Verification** to **Active**.
If your domain has a CAA DNS record, it must allow the certificate authority used for custom domains (`ssl.com`), or the SSL certificate can't be issued. If you have no CAA record, there's nothing to do.
## Access rules
The **Access** tab controls sign-in on your domain only. Sign-in on [www.wirebase.com](http://www.wirebase.com) is unaffected, and every rule is enforced server-side.
| Rule | Effect |
| - | - |
| **Members of this organization only** | Anyone signed in with an account outside your organization is blocked on this domain. |
| **Email and password** | Turn off to require single sign-on. This also disables password reset on the domain. |
| **Single sign-on (SAML / OIDC)** | Sign in through your configured [identity provider](/docs/admin-guide/security/sso). |
| **Open sign-up** | Off by default: new accounts can only be created by invitation or through your IdP. |
| **Allowed sign-up email domains** | Restrict sign-ups to specific email domains, such as `yourcompany.com`. |
Google, GitHub and Microsoft sign-in aren't available on a custom domain. Use SSO or invitations instead.
## White-label branding
The **White-label** tab customizes the sign-in page on your domain: **Brand Color**, **Favicon URL**, **Login Page Title**, **Login Page Copy** and **Custom CSS**, with a live **Login Page Preview**. Your organization's name and logo come from [Branding](/docs/admin-guide/settings/branding).
## Remove the domain
Click **Remove Domain**. The domain stops routing to your organization immediately, its SSL certificate is revoked, and its white-label settings are deleted.
# SCIM provisioning
Source: https://www.wirebase.com/docs/admin-guide/security/scim
Create, update and deactivate Wirebase users automatically from your identity provider.
## Overview
SCIM keeps your Wirebase organization in sync with your identity provider (IdP). When you assign someone to the Wirebase app in your IdP, they're created in Wirebase; when you unassign them, they're deprovisioned.
SCIM is available on the **Enterprise** plan. Configure it in **Admin → Settings → SCIM**.
## Set up SCIM
Click **Generate SCIM Token**, enter a **Provider ID** (for example `okta-scim`), and copy the token. It's shown only once.
In your IdP's SCIM settings:
| Setting | Value |
| - | - |
| **SCIM Base URL** | `https://www.wirebase.com/api/auth/scim/v2/` (also shown on the page) |
| **Authentication Method** | HTTP header / Bearer token |
| **Token** | The token from step 1 |
Use your IdP's test action to verify it works, then assign users or groups to the app.
Active connections are listed under **Active Connections**. Generating tokens and deleting connections is recorded in the [audit log](/docs/admin-guide/usage/audit-logs).
Combine SCIM with [SSO](/docs/admin-guide/security/sso) so provisioned users sign in through your IdP.
# Single sign-on (SSO)
Source: https://www.wirebase.com/docs/admin-guide/security/sso
Let members sign in through your identity provider with OIDC or SAML 2.0.
## Overview
With SSO, members sign in to Wirebase through your identity provider (IdP), such as Okta, Microsoft Entra ID or Google Workspace. Users whose email domain matches an SSO provider are signed in through it.
| Protocol | Plan |
| - | - |
| **OIDC** (OpenID Connect) | Team and Enterprise |
| **SAML 2.0** | Enterprise |
Configure SSO in **Admin → Settings → SSO**.
## Add an OIDC provider
Create an OIDC web application. Set its redirect (callback) URL to:
```text theme={null}
https://www.wirebase.com/api/auth/sso/callback/
```
Replace `` with the ID you'll choose in the next step.
Click **Add OIDC** and fill in:
| Field | Example |
| - | - |
| **Provider ID** | `okta-prod`: a unique slug for this provider |
| **Issuer URL** | `https://accounts.google.com` |
| **Client ID** / **Client Secret** | From your IdP app |
| **Email Domain** | `yourcompany.com`: users with this email domain use this provider |
## Add a SAML provider
Click **Add SAML** and enter a **Provider ID**. The dialog then shows the values to configure in your IdP:
| IdP setting | Value |
| - | - |
| **SP Entity ID / Audience URI** | Shown in the dialog |
| **ACS / Reply URL / Callback URL** | `https://www.wirebase.com/api/auth/sso/saml2/callback/` |
| **SP Metadata URL** | `https://www.wirebase.com/api/auth/sso/saml2/sp/metadata?providerId=` |
Use the values above, then download your IdP's metadata XML.
Paste the IdP metadata, set the **Email Domain**, and save.
If you serve Wirebase on a [custom domain](/docs/admin-guide/security/custom-domain), use the URLs exactly as the dialog shows them; they reflect the domain you're configuring from.
## How members sign in
On the sign-in page, members click **Sign in with SSO** and enter their work email. Wirebase sends them to your IdP and, after they authenticate, signs them in to your organization. New users from your domain are added to your organization automatically.
## Remove a provider
Delete it from the providers list. Creating and deleting SSO providers is recorded in the [audit log](/docs/admin-guide/usage/audit-logs).
## Related
* [SCIM](/docs/admin-guide/security/scim): create and deactivate users automatically.
* [Custom domain](/docs/admin-guide/security/custom-domain): require SSO on your own domain.
# Plans & billing
Source: https://www.wirebase.com/docs/admin-guide/settings/billing
Wirebase plans, seats, trials and managing your subscription.
## Plans
Wirebase charges for seats and features, not for AI usage. You bring your own provider keys and pay providers directly, at their prices.
| | Free | Team | Enterprise |
| - | - | - | - |
| Price | \$0 | $10 per member/month ($8 billed yearly) | Custom |
| Members | Up to 3 | Unlimited (pay per seat) | Unlimited |
| All AI models, agents & workflows | ✓ | ✓ | ✓ |
| Website chat widget | | ✓ | ✓ |
| SSO (OIDC) | | ✓ | ✓ |
| SAML 2.0 SSO | | | ✓ |
| SCIM directory sync | | | ✓ |
| Custom domain & white-label | | | ✓ |
| Automations | 2, daily at most | 20, hourly | 100, hourly |
| Audit log retention | 30 days | 90 days | Unlimited |
| File storage | 1 GB | 10 GB | Unlimited |
| Support | Community | Priority | Dedicated success manager |
The Team plan starts with a **14-day free trial**. See [wirebase.com/pricing](https://www.wirebase.com/pricing) for current prices.
## Manage your subscription
Go to **Admin → Settings → Billing** to see your **Current Plan** and **Seats**, switch between **Monthly** and **Yearly** (save 20%), and click **Manage Subscription** to update your payment method, change your seat count, view invoices or cancel.
On Enterprise, contact your account manager to adjust seats or pricing.
## Seats
On the Team plan each member uses a seat. If you invite more people than you have seats, you'll be asked to purchase additional seats.
## Payment problems
If a payment fails, the billing page shows **Payment failed** and asks you to update your payment method. If it isn't resolved, access can be suspended until it is.
# Branding & theme
Source: https://www.wirebase.com/docs/admin-guide/settings/branding
Customize your organization's name, logo and the look of the chat interface.
## Branding
**Admin → Settings → Branding** sets how your organization appears:
| Field | Where it's used |
| - | - |
| **Organization Name** | The sidebar and throughout the app. |
| **Logo** | Upload an image or enter a URL. Shown in the sidebar. |
| **Tagline** | The main screen and the page title. |
| **Description** | Social media link previews and search results. |
## Chat theme
**Admin → Settings → Chat Theme** changes the look of the chat interface for every member.
1. Pick a **Base Theme**.
2. Optionally override individual colors under **Color Overrides**: core colors (background, foreground, primary), secondary and accent, surfaces (card, popover, border, input), the sidebar and chart colors.
3. Use **Reset to theme default** on a color, or **Reset All**.
## Your own domain
To brand the sign-in page and serve Wirebase on your own domain, see [Custom domain](/docs/admin-guide/security/custom-domain).
# Delete an organization
Source: https://www.wirebase.com/docs/admin-guide/settings/delete-organization
Permanently delete your organization and all of its data.
Deleting an organization is permanent and can't be undone.
## What gets deleted
From **Admin → Settings → Danger Zone**, **Delete Organization** permanently:
* Deletes all chat threads and messages.
* Deletes all agents, workflows and connectors.
* Deletes all uploaded files from storage.
* Revokes all API keys.
* Removes the custom domain configuration.
* Deletes the accounts of members who have no other organizations.
## Delete your organization
1. Go to **Admin → Settings → Danger Zone**.
2. Click **Delete Organization**.
3. Type the organization's name to confirm.
Organizations on a paid plan can't be deleted from the dashboard. [Contact support](https://www.wirebase.com/contact) and we'll help you.
## Export first
Before deleting, members can download conversations they want to keep as Markdown or JSON. See [Share & export](/docs/user-guide/chat/share-and-export).
# Emails
Source: https://www.wirebase.com/docs/admin-guide/settings/emails
Send invitations, password resets and notifications from your own mail server, and check deliverability.
## Overview
**Admin → Settings → Emails** configures outgoing email for your organization: invitations, password resets and notifications.
## Deliverability
The top of the page shows how recent emails fared: **Sent**, **Delivered**, **Delayed**, **Failed**, **Bounced** and **Complained**, plus a list of recent failures.
## Use your own SMTP server
Under **SMTP Settings**, enter:
| Field | Example |
| - | - |
| **Host** | `smtp.example.com` |
| **Port** | `587` |
| **Username** / **Password** | Your SMTP credentials. Leave the password blank to keep the existing one. |
| **From Email** | `noreply@example.com` |
| **From Name** | The sender name shown on emails. |
Save, then send a test email. Test emails use your saved settings, so save first to test changes.
## Notifications
Turn **Email Notifications** on or off to control whether members of your organization receive notification emails.
# Integrations
Source: https://www.wirebase.com/docs/admin-guide/settings/integrations
Govern which integrations and connectors are available in your organization.
## Overview
**Admin → Settings → Integrations** controls access to tools from outside services.
## Connectors
Turn **Enable Connectors** off to stop members from adding and using [connectors](/docs/user-guide/workspace/connectors) (MCP servers) in chat. Turn it back on to restore access; existing connectors are kept.
## Connected Apps
When available on your deployment, **Connected Apps** lets members connect accounts for popular apps and use their tools in chat. Use **Enable Integrations** to turn it on or off, and **App Access** to allow all apps or restrict members to selected ones.
# Audit logs
Source: https://www.wirebase.com/docs/admin-guide/usage/audit-logs
A record of administrative and security-relevant actions in your organization.
## Overview
**Admin → Reporting → Audit Logs** lists actions taken in your organization, with the timestamp, action, status (success or failure), resource, user, IP address and details.
## Filter and export
* Filter by action, resource type and status, or click a user to see only their actions.
* Click **CSV** or **JSON** to export the current view.
## What's recorded
| Area | Events |
| - | - |
| Users & sign-in | User created or updated, sign-ins, platform role changes, bans |
| Members | Role changes, suspensions and reinstatements, removals, invitations cancelled or resent |
| Organization | Settings updates, organization deletion |
| Teams | Team created, renamed or deleted; members added or removed |
| Content | Agents, workflows, prompts, automations and projects created, updated, deleted or shared; chat imports |
| Website widget | Enabled, disabled, updated, key regenerated |
| Connectors & providers | Connectors added or removed; custom providers and API keys created, updated or deleted |
| Security | Custom domain added, verified, removed or policy changed; SSO providers and SCIM connections created or deleted |
| Usage | Quotas created, deleted or exceeded; pricing overrides; storage quota exceeded; reporting exports |
## Retention
| Plan | Audit logs kept for |
| - | - |
| Free | 30 days |
| Team | 90 days |
| Enterprise | Unlimited |
# Reporting
Source: https://www.wirebase.com/docs/admin-guide/usage/reporting
Spend, adoption, reliability and tool usage across your organization.
## Overview
**Admin → Reporting** shows how your organization uses AI. Pick a date range at the top of each page.
| Page | What it shows |
| - | - |
| **Overview** | Spend, AI requests, active users, cost per active user, error rate and p95 latency, plus top models, members and tools. |
| **Usage & Cost** | Spend and token usage by member and by model. |
| **Activity** | Engagement and token usage: messages, active conversations, usage over time, top models and top users. |
| **Tools** | Which tools and connectors are used, how often, and how often they fail. |
| **Audit Logs** | Every administrative and security-relevant action. See [Audit logs](/docs/admin-guide/usage/audit-logs). |
Click a member to see their individual usage.
## Spend figures
Spend is estimated from each model's price per token. If a model has no price, its spend is under-reported, and the page shows **Spend is under-reported** with a link to **Set model pricing**. See [Models](/docs/admin-guide/models/models).
## Export
Use **Export** to download **Spend by member**, **Spend by model**, **Tool usage** or **Daily trend** for the selected range as CSV.
Tool calls are recorded from new conversations onward, so older history doesn't appear on the Tools page.
# Usage limits
Source: https://www.wirebase.com/docs/admin-guide/usage/usage-limits
Set monthly AI budgets for the whole organization, for roles, or for specific people.
## Overview
Usage limits help you keep AI spend predictable. Each limit is a monthly budget in US dollars, calculated from model token prices (see [Models](/docs/admin-guide/models/models) to override prices).
Wirebase never caps your usage on its own. Limits are budgets **you** choose to set; with none configured, usage is unlimited and billed by your providers as usual.
## Add a limit
Go to **Admin → Access & Limits → Usage Limits** and click **Add Quota**.
| Setting | Options |
| - | - |
| **Scope** | **Org-wide**, **By Role** (Admin, Editor or User), or **Specific Users**. |
| **Monthly Budget** | An amount in USD, for example `50.00`. Leave blank for no limit. |
| **Enforcement Mode** | How the limit is applied when it's reached (below). |
### Enforcement modes
| Mode | When the budget is reached |
| - | - |
| **Hard Block** | Members can't send new messages until the next billing period. |
| **Soft Cap** | Usage continues, with warnings. |
| **Warn Only** | Alerts are shown; nothing is blocked. |
Members see a notice in chat when they're approaching their budget. When a quota is exceeded, it's recorded in the [audit log](/docs/admin-guide/usage/audit-logs).
# Code node
Source: https://www.wirebase.com/docs/developer-guide/code-node
Transform data in a workflow with sandboxed JavaScript.
## Overview
The Code node runs your JavaScript on the server in an isolated sandbox. Use it for deterministic transformations that would be awkward or unreliable with an LLM: parsing, filtering, math, reshaping JSON.
## How it works
Your code is the **body of a function**:
* Inputs arrive on a `params` object.
* `return` a value to produce the node's output. It must be JSON-serializable.
### Params
Under **Params**, add keys and set each value to a literal or a `/` reference to an earlier node's output. Inside your code, read them as `params.`.
### Result schema
Optionally describe the returned value's shape under **Result Schema** so later nodes can reference its individual fields. Leave it as-is to keep the output an untyped object.
## Example
With params `orders` (referencing an HTTP node's response) and `minTotal` set to `100`:
```javascript theme={null}
const big = params.orders.filter((o) => o.total >= Number(params.minTotal));
return {
count: big.length,
revenue: big.reduce((sum, o) => sum + o.total, 0),
ids: big.map((o) => o.id),
};
```
## Limits
| Limit | Value |
| - | - |
| Runtime | Synchronous JavaScript only: no `await`, timers or promises. |
| Network and files | None. Use an **HTTP** node to fetch data, then pass it in as a param. |
| Timeout | 10 seconds by default, up to 30 seconds. |
| Memory | 64 MB. |
| Code size | 64,000 characters. |
| Console output | `console.log` output is captured (up to 100 entries) to help you debug. |
## Debugging tips
* Click **Run** in the workflow editor, enter test inputs, and open each node's result to inspect what it received and returned.
* Throw an `Error` with a clear message when input isn't what you expect; the workflow stops and shows it.
# Build an MCP connector
Source: https://www.wirebase.com/docs/developer-guide/mcp-connectors
Expose your own API to Wirebase as tools by running a remote MCP server.
## Overview
Wirebase is an MCP **client**. Any remote server that speaks the [Model Context Protocol](https://modelcontextprotocol.io) can be added as a [connector](/docs/user-guide/workspace/connectors), and its tools become available in chat, agents and workflows.
## Requirements
| Requirement | Details |
| - | - |
| **Transport** | Streamable HTTP (recommended) or SSE. Wirebase tries Streamable HTTP first and falls back to SSE. |
| **Reachability** | A public `https://` URL Wirebase can reach. Local (stdio) servers aren't supported. |
| **Capabilities** | Tools. Each tool needs a name, a description and a JSON Schema for its input. |
## Authentication
Choose one:
Accept a token in a header, typically `Authorization: Bearer `. The person adding the connector enters it under **Headers**.
Implement the MCP authorization spec (OAuth 2.1 with PKCE). Wirebase discovers your authorization server from the MCP server's metadata and registers itself with dynamic client registration:
| Client metadata | Value |
| - | - |
| `client_name` | `wirebase-` |
| `redirect_uris` | `https://www.wirebase.com/api/mcp/oauth/callback` |
| `grant_types` | `authorization_code`, `refresh_token` |
| `token_endpoint_auth_method` | `none` (public client, PKCE) |
| `scope` | `mcp:tools` |
Users click **Authorize** and complete sign-in in a popup. Tokens are encrypted at rest and refreshed automatically. By default each user authorizes separately; the connector's owner can turn on **Shared Authentication** instead.
## Tool naming
Tools appear in Wirebase as `_`, for example `github_create_issue`. Names are sanitized to letters, numbers, underscores and hyphens and capped at 124 characters. Keep tool names short and descriptive.
## Write tools that models use well
* **Describe when to use the tool**, not just what it does. The description is what the model reads when deciding.
* **Keep input schemas small and typed.** Use enums for fixed choices and mark required fields.
* **Return compact results.** Tool output is truncated at about 40,000 characters before it reaches the model. Return the fields that matter, and paginate large lists.
* **Return clear errors.** A short, specific error message lets the model correct itself and retry.
Admins can add per-tool and per-connector [custom instructions](/docs/user-guide/workspace/connectors#customize-how-tools-are-used) to steer usage without changing your server.
## Test your server
Add it under **Workspace → Connectors → Add custom connector**, open it, and use **Tools Test** to call each tool with sample input before using it in chat.
# OpenAI-compatible providers
Source: https://www.wirebase.com/docs/developer-guide/openai-compatible-providers
Connect self-hosted or internal models through an OpenAI-compatible Chat Completions endpoint.
## Overview
Admins can add any OpenAI-compatible endpoint as a [custom provider](/docs/admin-guide/models/custom-providers): self-hosted servers such as vLLM, an internal AI gateway, or a provider Wirebase doesn't list.
## Endpoint requirements
* Implements `POST /chat/completions` in the OpenAI format, including streaming (`stream: true`) with server-sent events.
* Reachable from the public internet over HTTPS.
* Accepts the API key as `Authorization: Bearer `, or needs no key. Add any other headers your gateway needs under **Custom Headers**.
* Supports function calling (`tools`) if you want members to use tools, agents, workflows and connectors with these models.
## Configure
Enter the base URL, for example `https://llm.internal.example.com/v1`. Wirebase appends `/chat/completions`; if you paste the full path, it's normalized. Then list the model IDs your endpoint serves, exactly as the endpoint expects them, and enable them in **Admin → Models**.
## Pricing
Custom models have no list price, so their spend shows as under-reported in [reporting](/docs/admin-guide/usage/reporting). Set input and output prices per 1M tokens in **Admin → Models** to include them in spend and [usage limits](/docs/admin-guide/usage/usage-limits).
# Developer overview
Source: https://www.wirebase.com/docs/developer-guide/overview
Embed Wirebase agents on your site, connect your own services, and extend workflows with code.
## What you can build
Put an agent on any website as a chat bubble with one script tag.
Expose your own APIs to Wirebase as tools by running a remote MCP server.
Plug in self-hosted or internal models through an OpenAI-compatible endpoint.
Reference for every node: LLM, Condition, Tool, HTTP, Template, Code and more.
## For AI assistants and crawlers
These docs are available in machine-readable form:
* [`/docs/llms.txt`](https://www.wirebase.com/docs/llms.txt): an index of every page.
* [`/docs/llms-full.txt`](https://www.wirebase.com/docs/llms-full.txt): the full text of the docs.
* Append `.md` to any page URL for its Markdown source.
Use the menu at the top of any page to copy it as Markdown or open it in ChatGPT or Claude.
# Website widget
Source: https://www.wirebase.com/docs/developer-guide/website-widget
Embed a Wirebase agent on your website as a chat bubble.
## Overview
The website widget puts one of your [agents](/docs/user-guide/workspace/agents) on your site as a chat bubble in the bottom-right corner. Visitors chat without signing in. The agent answers from its knowledge bases using your organization's API keys.
The website widget is available on the **Team** and **Enterprise** plans.
## Set up the widget
Go to **Workspace → Agents**, open the agent and save it if it's new. Scroll to **Publish → Website chat widget**.
Turn on **Turn on website widget**, then set:
| Setting | Description |
| - | - |
| **Model** | The model visitors chat with. Usage counts against your organization's quota. |
| **Websites** | The sites the widget may appear on, such as `www.example.com`. If people visit with and without `www`, add both. Up to 20; wildcards aren't supported. |
| **Welcome message** | Optional first message, up to 500 characters. |
| **Accent color** | The launcher and highlight color. |
Click **Save widget settings**.
Copy the **Embed code** and paste it just before the closing `