
Financial Services Agents: Compliant Copy, Product Explainers & Human Review
In production, a financial-services Agent usually does three jobs only: explain products and processes from effective documents, read-only status lookups on an allowlist, and route high-risk wording into human review before send. It does not: give investment advice, promise returns, auto-approve credit/disbursement, or change fees without approval. GeonAI delivers inside your compliance boundary; /agents (e.g. Data Privacy Consultant) are capability references only—not a public trial of all 363+ presets. Email [email protected], subject “Enterprise Agent inquiry”. KB guardrails: /blog/enterprise-rag-knowledge-base-agent. Private deploy is common in finance: /blog/deepseek-private-deployment-guide.
Nail four boundaries in the SOW first
| Boundary | Allowed (examples) | Forbidden (examples) |
|---|---|---|
| Copy | Cite prospectus text on fees, cooling-off, redemption | “Guaranteed,” “can’t lose,” “will beat the market” |
| Product explain | Compare documented differences (tenor, risk rating) | Decide the client’s suitability outcome |
| Account/txn | Read-only progress, document checklist, branch/materials | Change limits, unfreeze, place orders, change phone |
| Send path | Draft → human confirm; or low-risk template auto-send | Model free-text sent straight to the client |
Without these four, “compliant copy / product explainer / human review” stay verbal and fail acceptance disputes.
1) Compliant copy = corpus + hard refuse—not softer tone
A workable compliance layer needs three assets:
- Approved corpus: FAQs, risk-disclosure templates, complaint scripts—with version and effective date; the Agent cites, it does not “polish into a new sales pitch”
- Don’t-say list (hard refuse): capital guarantee, promised return ranges, insider hints, competitor disparagement, undisclosed fees—on hit, fixed refuse + handoff; no rewrite around the block
- Mandatory disclosure blocks: for wealth/insurance/loan products, append the line’s standard risk notice (template ID in the audit log)
| Client ask | System action | Reply rules |
|---|---|---|
| “Is this safe? Can I lose money?” | Retrieve risk rating + prospectus; append disclosure | State documented risk class and “past performance ≠ future” wording; no soothing guarantees |
| “Which one should I buy?” | Suitability/licensed-sale intent → human | Agent may show a document diff table, never “buy A” |
| “Can you lower my rate?” | Read public fee table; bargain intent → ticket | Quote published price; pricing only via RM ticket |
| “Raise my limit” | Write intent → force human / official flow link | Point to official self-serve or branch checklist; Agent never changes limits |
2) Product explainers: effective-version filter + field-level allowlist
Prospectuses, fee sheets, and policy wordings change often. Retrieval must carry product_id + effective_from/to; obsolete revisions may be auditable but must not answer clients. Fix chunk metadata: product code, channel (app/branch/phone), audience tags, dual-recording required?, suitability required?.
- Auto-answer OK: definitions (cooling-off), document checklists, steps, public fee tables, branch hours
- Draft only: personalized illustrations (“if you hold 500k for a year…”)—numeric outputs enter review
- Refuse → human: suitability conclusions, tax planning, cross-border compliance, complaint adjudication, unpublished internal quota rules
Illustrated calculations are a top failure mode: models turn assumptions into promises. Prefer controlled formulas or fee-table lookup, watermark “assumptions,” and default to human review. RAG refuse/citation detail: /blog/deepseek-rag-knowledge-base.
3) Human review as a state machine—not “call someone when it breaks”
Coexistence means every outbound reply has a state. Minimal machine: `draft` → `auto_allowed` (low-risk) or `pending_review` → `approved` / `edited` / `rejected` → `sent` (channel + message id). Reviewer UI must show: client question, proposed reply, hit doc IDs/versions, which rule fired, one-click edit-and-send.
| Trigger (example rules) | Default path | SLA hint |
|---|---|---|
| Don’t-say hit / no citable doc | Refuse or pending_review | Instant refuse; human 15–30 min |
| Reply contains yield, interest, or premium math | pending_review | 10–20 min in business hours |
| Complaint / regulator / media intent | Force human + escalate tag | Complaint SOP; never auto-send |
| Pure process/hours with citations | auto_allowed | Sample ≥5% sessions/day |
| Funds/write account intent | Refuse execute + official entry | No “act for the client” automation |
- Reviewers via SSO; log who/when/what changed
- Rejects need reason codes (wrong promise / missing disclosure / stale doc / tone)—feed don’t-say and corpus
- Peaks: review only high-risk intents; sample the rest; rule changes need compliance-signed versions
Audit fields to lock before go-live
- session_id / customer_token (masked) / channel
- intent_label, risk_flags[], refuse_reason
- retrieved_doc_ids[], doc_versions[], disclosure_template_id
- output_state, reviewer_id, edit_diff_hash, sent_message_id
- model_route, prompt_template_version (hash sensitive payloads if needed)
Retention and access follow internal control and local regulation; engineering first ensures complete fields, tamper evidence, session replay. General enterprise checklist (classification + audit + internal access): /blog/enterprise-ai-compliance-overview.
Integrations (common in finance)
| System | Typical hook | Acceptance |
|---|---|---|
| Product/doc store | Prospectus/fee/terms sync + effective filter | Stale never answers clients; sync SLA |
| CRM/tickets | Create case, chat summary, escalate tags | Humans need not re-ask |
| Core/account (read) | Progress, missing docs, branch info | Field allowlist; honest degrade on timeout |
| Dual-record/suitability | Deep-link or status only—not a substitute | Agent never fakes dual-record done |
| Gateway/deploy | Private cloud/on-prem, keys, rate limits | See private-deploy guide; minimize PII in prompts |
Pilot acceptance: numbers, not “better experience”
- Wrong-promise rate (guarantee/return/fee): sampled near zero
- Missing-disclosure rate: required risk notice not appended
- Missing-citation rate: product answers without doc_id
- Review latency: P50/P90 on pending_review
- Missed-handoff count: should-be-human but auto_allowed (QA finds)
- Repeat-contact rate and FCR on process-only intents
Sensible pilot slices (verifiable in 8–12 weeks)
Do not start with “full-book robo-advisor.” Safer cuts: (1) one retail product line—prospectus Q&A + checklist; (2) card progress/loss guidance (read-only + official links); (3) branch hours / basic appointment copy. Then expand to calculated drafts under review. Delivery: /blog/enterprise-ai-agent-delivery-4-steps. Pricing factors: /blog/custom-ai-agent-pricing-factors.
What to bring to GeonAI
Bring: priority product lines and channels, current compliant scripts and don’t-say list, prospectus samples (with versions), review org and SLA, private/VPC needs, read-only system list, target acceptance metrics. Email [email protected], /pricing, or Live chat. We design the state machine and KB ACL to your compliance outcome—not a “fully automated finance CS” slogan.
Frequently asked questions
Can the Agent give investment advice or allocations?
Default no. It can contrast documented differences and checklists; suitability and buy/sell advice stay with licensed staff and existing flows. Auto-sending “advice” is a common kill item.
Won’t human review destroy response time?
Intent split: cited process FAQs can auto_allowed + sample; numeric illustrations, complaints, and don’t-say hits go pending_review with a business-hours SLA.
When fees change, how fast does the Agent update?
Same effective instant as document control switches the index; acceptance tracks stale-version hit rate on clients. Tribal “please update the bot” emails will miss.
Can it change limits or unfreeze accounts in core?
Do not let a chat Agent execute writes. Read status + deep-link/ticket; writes stay on existing risk and auth rails.
Can the 363+ presets go live as finance support?
No. Presets lack your product versions, don’t-say list, review flow, and audit fields. Custom discovery required.
How long must we keep logs?
Set by internal control and local regulation. Engineering first ships complete, tamper-evident fields; retention is a separate compliance write-up.