MST Bank
M AI Chatbot · v1.0.0
M AI Chatbot · Banking Template

Every answer,

MST Bank’s assistant answers from your own policies and rate sheets — never a guess — in six languages, then logs, summarizes, and hands off every conversation automatically.

mstbank.example
M
MST Bank
NOVA · YOUR ASSISTANT

Hello, I’m Nova. Ask me about accounts, cards, or transfers — I’ll point you to the exact policy page.

Daily wire limit

For personal accounts, the outbound wire limit is $25,000 per day ($100,000 for Private Banking clients).

Wire Transfer Policy.pdf · p.4
This conversation may be recorded for quality and compliance.
Branding

The widget wears your branding, not ours.

Logo, colors, font, corner radius, position — set once under General & Branding and Theme, with a live preview. No template files, no code.

Brand it in minutes

Upload a logo, pick five colors, choose a font from system default, Inter, Poppins, Roboto, Space Grotesk, or Georgia — read at runtime from a single settings screen.

Bottom-left or bottom-right

Position and corner roundness are plain settings, so the widget can match a site that already has strong opinions about its layout.

Company info, built into every answer

Hours, addresses, and policy notes typed into Company Info are folded directly into the AI’s system prompt — no separate FAQ file to keep in sync.

Speaks six languages, out of the box

English, Bahasa Indonesia, Español, Français, Deutsch, and Português — the welcome message, quick replies, menus, and every button and error string are translated, not just the AI’s replies.

Grounded answers

Grounded in what your bank actually published.

Upload PDFs, Word documents, plain text, or point at a public page. The plugin extracts the text, splits it into roughly 1,800-character chunks, and embeds every chunk for retrieval.

Index anything you already have

Rate sheets, disclosures, product PDFs, an internal wiki page — four intake types (PDF, DOCX, TXT/MD, URL) cover most of what a bank already publishes.

Retrieved by relevance, not keyword

Every visitor message is embedded and compared by cosine similarity against the full knowledge base; only chunks above a relevance threshold enter the prompt.

The browser never talks to OpenAI directly. Every request is proxied and logged by WordPress, so API keys stay server-side and the model only ever answers from what’s actually been indexed.
Voice

Voice, for the visitors who’d rather talk.

Turning on Enable Voice Call Button adds a phone icon to the widget header. Calls run through ElevenLabs Conversational AI — the browser never touches your knowledge base directly.

One tap to talk

The phone icon opens a full-panel call overlay with a status indicator and a hang-up button — no separate app, no phone number to dial.

One continuous record

Each turn of the call is logged into the same conversation as any text messages before it — a visitor can start typing and end up talking, and the transcript stays whole.

Type it, say it, or hear it back

A microphone turns a spoken question into text, and any reply can be played back aloud — with a one-tap mute for visitors who’d rather just read.

Records

Every word, kept — but not every detail.

Text and voice conversations are written to dedicated database tables as they happen, with a privacy notice shown in the widget itself.

A full transcript, not a log line

Every message, from either side of the conversation, is stored with its role and timestamp — enough to reconstruct exactly what was said.

The IP address is never stored

Only a salted SHA-256 hash is kept — enough to rate-limit abuse, never enough to identify who sent a message.

Reviewable, not just recorded

The Conversations screen lists every thread — channel, status, a summary preview — with the full transcript one click away.

Asks before it shares

Before a lead reaches your team, the assistant checks first — “I’d like to send your details to our team, shall I go ahead?” — and only sends it on a yes.

Workflow

One message, six steps, no black box.

This is what happens, in order, every time a visitor presses send.

Message sent
Verified & routed
Matched to sources
Prompt assembled
Sent to OpenAI
Logged & shown
01

The message is sent

A session ID generated in the browser is kept in localStorage, so the same thread survives a page reload.

02

WordPress verifies and routes it

The REST nonce and rate limit are checked, then the matching open conversation is found — or a new one is started.

03

It’s matched against your sources

The message is embedded and compared by cosine similarity to every indexed chunk; the closest matches are kept.

04

A prompt is assembled

The system prompt, your Company Info, the matched context, and the last 20 messages of history are combined into one request.

05

The model replies

The assembled prompt is sent to OpenAI’s chat completion API, and the reply streams back into the widget.

06

Both sides are logged

The visitor’s message and the AI’s reply are written to wp_wparc_messages — nothing lives only in memory.

Auto-close

Nothing stays open forever.

Three things close a conversation — and every one of them produces a record.

Three ways out

The visitor closes the tab (a beacon fires automatically), a voice call is hung up, or — the safety net — an hourly job closes anything idle for more than 30 minutes.

Always summarized

Every closed conversation gets an AI-written summary under 150 words. If summarizing ever fails, a plain transcript excerpt is used instead — a record is always produced.

Delivered, not just stored

With Email Summaries on, the transcript and summary land in the inbox you configure, with an optional shorter copy sent to the visitor too.