Buffaly Logo Buffaly

For websites, tools and customer portals

Add an AI assistant that calls your APIs.

Put it in your website, tool or portal. Let users get information, run calculations and complete tasks through conversation—using your application's data and business logic.

You decide what it can do. Credentials stay on your server. Choose any model provider, keep running costs low and retain the knowledge and skills Buffaly learns over time.

CFL website assistant showing its welcome message and a message field with a Send button.
Buffaly on a cleaning company's website.
View the mobile example

Public chat for sales

Put Buffaly on your public website to help visitors explore your products and services, get answers and take the next step toward buying.

It connects to your public API for customer-facing information and actions, such as prices, availability, estimates and inquiries.

Your sales team can watch conversations live and take over when needed. Staff follow the same conversation from their portal and can step in to speak directly with the visitor.

Illustrative public sales chat on a home builder's website: Buffaly reads availability from the public API while the sales team watches the same conversation with a Take over control.
Public chat: the visitor talks with Buffaly on your website. Your sales team watches the same conversation and can take over.

Private chat for your organization or portal

Put Buffaly inside your organization or authenticated portal to help people find information and get work done.

It uses your application's APIs with the same access as the person using it. It can work with the records and actions that person is allowed to use, without granting additional permissions.

Same user. Same access. If someone cannot see or change something in the application, they cannot do it through Buffaly either.

Illustrative private portal: Alex Rivera is signed in, and Buffaly retrieves Alex's appointments through the application API using Alex's existing permissions.
Private chat: Buffaly works inside the signed-in user's workspace, with the same records and allowed actions.

Call your own APIs

Let Buffaly look up records, run calculations and take action through your application's APIs and existing code. No MCP server. No CLI wrapper needed.

Works with OAuth. Private chat uses the same permissions as the logged-in user. Your API controls which records and actions that person can access.

A signed-in portal user connects through OAuth to Buffaly, which calls appointment, calculation and action APIs directly. No MCP or CLI. Same user and permissions; the API stays in control.
Private chat carries the user's access to your APIs. Public sales chat connects to your public API instead. Your application enforces the rules in either case.

Use whatever models you want

Choose the provider and model that fit your application, budget and deployment. Use a hosted model or run one locally.

Change models without rebuilding your integration. Your API connections, knowledge and learned skills stay in Buffaly.

Buffaly keeps your API connections, knowledge and learned skills while you choose or switch among OpenAI, Anthropic, Gemini, xAI, OpenRouter and local models.
Your application stays connected. You choose the model behind the conversation.

Buffaly learns over time and gets smarter

Teach Buffaly your terminology, correct a procedure or show it a better way to complete a task. It can retain that knowledge and reuse it in future conversations.

You control what it remembers. Learned procedures stay in Buffaly. Live records, prices and permissions still come from your application.

Teach Buffaly once to include addresses with appointments. Buffaly retains the procedure as a reusable skill. On the next request, the appointment answer includes the address.
A simple example: teach it to include an address, retain that preference, and use it the next time. This is reusable knowledge—not retraining the underlying model.

For developers

Connect your backend. Choose your model. Add the chat to your page. Here is how the pieces fit together.

Connect the backend

The chat runs in your page. Buffaly runs on the server. Your API does the work. Connect one useful operation first, then add more.

Keep provider credentials and application secrets on the server—not in the embed. Your API validates each request and returns the result Buffaly uses in its answer.

Frontend and backend integration: embedded browser chat sends HTTPS requests to Buffaly on the server. Typed actions call your API with trusted user or OAuth context. The API authorizes access, runs business rules and returns results to the chat. Private credentials stay on the server.
The frontend displays the conversation. Server-side code connects the assistant to your application and its existing authorization.

1. Set up Buffaly

Run Buffaly with the chat host, choose a provider and model, and configure its server-side credential.

Runtime setup · Model configuration

2. Connect your operations

Define the permitted operations, inputs and results in code. Connect an HTTP API or an existing .NET function. Start with a read or calculation.

Tools and integrations

3. Connect the right access

For public sales chat, connect your public API. For private chat, connect your sign-in and OAuth flow so requests use the current user's access. Enforce account, role and record permissions in your API.

See API and calculator examples

Property application: retrieve models, prices and availability

GET /integrations/real-estate/v2/projects/{ProjectID}/models

A server-side action maps the permitted request to this endpoint and returns the application's result.

Buffaly can also use your existing calculators. In this cleaning example, it collects the home's details and calls the website's calculator, which returns a $155–$195 preliminary estimate.

Recorded calculator response showing the $155–$195 preliminary range, inputs and pricing qualification.
The estimate comes from the website's calculator and appears in the conversation.

Add public chat to your webpage in three steps

Once your public chat is connected to your API, adding it to a page is straightforward. Private chat also needs the authenticated-user connection described above.

  1. Copy your assistant URL

    Illustrated step: copy the URL of your connected public assistant.

    Get the public assistant URL from your connected Buffaly installation. Register your website as an allowed origin.

  2. Paste the embed

    Illustrated step: place an iframe with your assistant URL in the page HTML.

    Replace the URL in the code below. Paste it into your page's HTML or a Custom HTML / Embed block.

  3. Publish and test

    Illustrated step: open the published website chat, send a test request and verify its live API result.

    Publish the page, open the chat and send a test request. Check that the answer matches your application's result.

Connect your assistant to your application first, then use the embed to display it on your webpage.

Paste this into your page
<iframe
  src="YOUR_PUBLIC_ASSISTANT_URL"
  title="Website assistant"
  style="width: 100%; height: 640px; border: 0;">
</iframe>

Replace YOUR_PUBLIC_ASSISTANT_URL with your actual URL. The snippet contains no private API key. Your website and chat host must both allow the frame.

Before you go live
  • Verify your website and chat host allow the embed, while an unregistered origin cannot use it.
  • Check a successful API call and a denied request. For private chat, verify two users cannot access each other's restricted records.
  • Test required confirmations for changes. For public sales chat, test staff monitoring and takeover of the same conversation.

Add Buffaly to your website.

Start with one useful operation. Add more capabilities as you need them—without rebuilding your application or giving up control of it.

Connect