How AI Powers FUNDesk: Statement Analyzer, Built-in Assistant, and Bot Integration
Last updated: February 2026
There are three distinct AI stories in FUNDesk, and each one solves a different problem for MCA brokers.
The first: the Statement Analyzer. Upload a merchant's bank statements, and AI-powered underwriting produces average daily balance, NSF count, deposit patterns, negative day count, and a preliminary paper grade. This replaces the manual spreadsheet analysis that eats hours of every broker's week.
The second: a built-in AI assistant inside the CRM web UI. You open the chat panel, ask a question in plain English, and the assistant queries your merchant data, creates records, or updates deals. It streams responses in real time and requires confirmation before any write operation.
The third: external bot integration through the FUNDesk Bot skill file. Your AI bot, running in a terminal or connected to whatever tools you use, gets a skill file that teaches it the entire CRM API. Generate the file, drop it into your bot config, and your agent can manage merchants, deals, tasks, and notes from wherever you already talk to it.
This post is a deep-dive into all three systems. If you want to understand how the AI features work before using them, this is where to start.
What Each System Does
Statement Analyzer (Bank Statement Underwriting)
The Statement Analyzer is the AI feature most specific to MCA brokerage. When a merchant submits bank statements, your team uploads them to FUNDesk. The analyzer processes the statements and produces:
- Average Daily Balance: The mean balance across the statement period
- NSF/Overdraft Count: Number of non-sufficient funds events, a key risk indicator
- Deposit Patterns: Daily, weekly, and monthly deposit frequency and amounts
- Negative Day Count: How many days the account was in the negative
- Revenue Estimates: Projected monthly revenue based on deposit patterns
- Preliminary Paper Grade: A through D classification based on the combined metrics
This analysis feeds directly into the funder matching engine. A merchant graded as "B paper" gets matched against funders whose buy box includes B-grade deals. The whole chain, from bank statement upload to funder recommendation, happens inside the CRM.
The analyzer uses your choice of LLM through OpenRouter. Claude, GPT-4o, Llama, Gemini, pick whichever model gives you the best results for your volume. Your statements are stored securely in FUNDesk. Only the extracted text data goes to the LLM for analysis.
Built-in AI Assistant (In-App)
When you are inside the CRM, the assistant lives in the chat panel. It has 13 tools: 8 read and 5 write.
Read tools (auto-execute):
search_records: full-text search across all recordslist_records: list records with optional filtersget_record: get a specific record by IDlist_objects: list all object typesget_object: get object schema with attributeslist_tasks: list tasks (optionally filtered)get_notes: get notes for a recordlist_lists: list saved lists
Write tools (require confirmation):
create_record: create a new recordupdate_record: update an existing recorddelete_record: delete a recordcreate_task: create a taskcreate_note: add a note to a record
Read tools execute immediately. Write tools show a confirmation card in the UI: you review the action, click Confirm or Cancel. No data changes without your approval.
For MCA brokers, this means you can ask questions like:
- "Which merchants in Texas have deals over $50k?"
- "Show me all deals in the Submitted to Funder stage"
- "What is the total pipeline value for B-grade paper this month?"
- "Find all merchants with factor rates above 1.35"
External Bot Integration (FUNDesk Bot)
When you are outside the CRM, your AI bot handles it. The bot uses a skill file that documents the full REST API: 19 endpoint categories covering workspaces, objects, records, search, tasks, notes, lists, and notifications.
The skill file is a Markdown document with YAML frontmatter. The bot reads it, understands the API structure, and makes HTTP requests on your behalf. No SDK, no special client library. Just REST calls with a Bearer token.
Here is what that looks like in practice:
> add the merchant from this morning's call to the CRM
Creating record in FUNDesk...
done Mike's Auto Repair, Dallas TX
Paper grade: B, Requested amount: $75,000
Want me to run the funder match?
> show me all deals closing this week
Querying FUNDesk...
4 deals expected to fund this week:
- Dallas Plumbing Co ($45k, Contracts Signed, factor 1.29)
- Sunrise Deli ($25k, Funder Approved, factor 1.35)
- Metro Tire Shop ($120k, Contracts Signed, factor 1.22)
- Green Valley Landscaping ($35k, Funder Approved, factor 1.31)
Total pipeline: $225k
Total commissions: ~$18k
> add a note to the Metro Tire deal about the funder call
Added note to Metro Tire Shop ($120k, Contracts Signed):
"Spoke with funder rep. They need updated bank statement
from February. Merchant agreed to send by EOD tomorrow."
done. Want me to create a follow-up task?
The bot chains operations naturally. It searches for "Metro Tire," finds the deal, creates a note, then offers to create a follow-up task. Multi-step workflows, no manual API calls.
How the Statement Analyzer Works
The Statement Analyzer follows a streamlined document processing pipeline:
- Upload: The broker uploads 3 months of bank statements (PDF or image) to a deal record
- Extraction: The system extracts text from PDFs. For scanned documents, OCR runs first
- Parsing: The extracted text is structured into transaction data: dates, amounts, descriptions, running balances
- Analysis: The structured data goes to the AI model via OpenRouter with a specialized prompt that asks for specific metrics
- Scoring: The system calculates average daily balance, NSF count, deposit patterns, negative days, and assigns a paper grade
- Storage: Results are stored as structured fields on the deal record, visible in both the UI and through the API
- Matching: The paper grade and metrics feed directly into the funder matching engine
The AI model never sees the raw PDF. It receives structured transaction data with amounts and dates. Merchant PII (names, account numbers) can be stripped before analysis if your compliance requirements demand it.
Why AI Instead of Rules
Traditional bank statement analysis uses rule-based scoring: if average daily balance > $X and NSFs < Y, then grade = B. This works but is brittle. Edge cases break it constantly.
The AI approach handles nuance. A merchant with a low average daily balance but consistent, growing deposits might be better paper than the numbers suggest. A business with seasonal patterns needs different evaluation than a steady-revenue operation. The AI considers context that rules miss.
You can also customize the analysis. If your funder network values certain metrics more heavily, the system can weight them accordingly.
How the Built-in Assistant Works
The in-app assistant follows a streamlined pipeline: you type a question, the AI processes it against your workspace data, and results stream back in real time.
Dynamic Schema Awareness
The assistant is not static. It reads your workspace schema at request time. Every object type, every attribute, every status value is available to the AI on each request.
Add a "Funders" object with custom attributes for buy rates and advance limits, and the assistant knows about it on the next message. No configuration, no retraining. The AI automatically understands your MCA data model, including your 12-stage pipeline, paper grade options, and industry categories.
Read/Write Safety Model
Read operations (searching records, listing deals, checking pipeline status) execute immediately. Write operations (creating records, updating deals, deleting data) show a confirmation card in the UI first.
For example, if you say "Create a deal for Metro Tire Shop, amount $120k, B paper," the assistant first searches for Metro Tire Shop to check if it already exists, then presents a confirmation card: Create Deal, Business: Metro Tire Shop, Amount: $120,000, Factor Rate: 1.22, Paper Grade: B. Two buttons: Confirm and Cancel. Only Confirm triggers the write.
This safety model is critical for MCA brokers dealing with live deals worth tens of thousands of dollars. No data changes without your explicit approval.
Real-Time Streaming
Responses stream in real time. Tokens appear as they are generated, so the UI updates progressively instead of making you wait for a complete response. This makes the assistant feel responsive even for complex queries.
Model Flexibility
The assistant uses OpenRouter, which means you choose from Claude, GPT-4o, Llama, Gemini, and 200+ other models. Set an OpenRouter API key and pick a model in workspace settings. One integration, every model available.
How Bot Integration Works
The external bot integration works differently from the built-in assistant. Instead of being embedded in the CRM, the bot learns your CRM's API from a skill file: a structured document that teaches it how to interact with your data.
The Skill File
The skill file is generated from within FUNDesk and contains everything your bot needs to understand the CRM: what objects exist (Merchants, Funders, Deals), what fields are available (factor rate, paper grade, holdback percentage), and how to make API calls to read and write data.
The skill file includes:
- Authentication details: How the bot authenticates with your CRM instance
- API endpoint documentation: Every available operation with request/response formats
- Schema information: Your workspace's objects, attributes, and valid values
The 19 API Endpoint Categories
The skill file documents these endpoint groups:
| Category | Endpoints | Operations |
|---|---|---|
| Workspace | 2 | Get details, update settings |
| Workspace Members | 2 | List members, add member |
| Objects | 3 | List objects, get object, get attributes |
| Records | 5 | List, create, get, update, delete |
| Search | 1 | Full-text search across all records |
| Tasks | 5 | List, create, update, delete, get by record |
| Notes | 6 | List all, get by ID, get by record, create, update, delete |
| Lists | 6 | List all, get details, get entries, add entry, update entry, remove entry |
| Notifications | 3 | Get notifications, mark read, mark all read |
Every endpoint includes the HTTP method, path, parameters, and expected request/response format. The bot reads this once, then makes standard HTTP requests with the Bearer token.
Environment Variables and Auth
Two environment variables power the integration:
FUNDESK_API_URL: the base URL of your CRM instance (e.g.,https://crm.yourbrokerage.com)FUNDESK_API_KEY: a workspace-scoped API key (prefixed withfd_sk_)
API keys are generated in Settings > API Keys inside the CRM. Each key is scoped to a single workspace. All requests include Authorization: Bearer $FUNDESK_API_KEY.
The response envelope is consistent across all endpoints:
- Success:
{ "data": ... } - Error:
{ "error": { "code": "...", "message": "..." } }
How the Bot Uses the Skill File
When you ask your AI bot to do something CRM-related, it recognizes the request matches the fundesk skill, reads the skill file, plans a sequence of API calls, executes them over HTTP, and formats the results.
For "add the merchant from this morning's call to the CRM," the bot reads its call notes (from another skill or context), calls GET /api/v1/objects/merchants/attributes to learn the schema, calls POST /api/v1/objects/merchants/records to create the merchant, and returns a summary.
The bot chains operations naturally because it has the full API documentation in context. Search for a merchant, get the deal ID, create a note attached to it.
Setup: 2 Minutes
- Go to Settings > FUNDesk Bot in the CRM
- Select an API key (or create one in Settings > API Keys)
- Download the generated SKILL.md
- Place it in your bot's skill directory
- Add the config to your bot configuration:
{
"skills": {
"fundesk": {
"enabled": true,
"env": {
"FUNDESK_API_URL": "https://your-instance.com",
"FUNDESK_API_KEY": "fd_sk_your_key_here"
}
}
}
}
- Restart your bot
The CRM generates the skill file with your instance URL pre-filled. The only manual step is pasting your API key into the config.
Why Three Systems Instead of One
Statement Analyzer: you need AI-powered underwriting without manual spreadsheet analysis. Upload bank statements, get a paper grade and metrics.
Built-in assistant: you are already in the CRM and want to ask a quick question or create a record without navigating forms. "Show me all B-paper deals over $50k" is faster than clicking through filters.
Bot integration: you are not in the CRM. You are in your terminal or talking to your bot through whatever interface you use, and the bot handles CRM operations without you opening a browser.
Same underlying platform, different access patterns. The Statement Analyzer processes documents. The built-in assistant works directly within the CRM interface. The bot calls the REST API over HTTP from wherever you use it.
Challenges We Solved
Bank statement variability. Every bank formats statements differently. Chase, Bank of America, Wells Fargo, local credit unions all produce different PDFs. FUNDesk's extraction layer handles this variability automatically, so the AI gets clean, structured data regardless of the source.
AI accuracy and safety. AI models can sometimes misinterpret requests. FUNDesk handles this with a confirmation-before-write safety model, result capping to keep responses focused, and error recovery that lets the AI self-correct when something goes wrong.
Schema flexibility. MCA brokerages have different data models. Some track ISOs as a separate object, others embed them in merchant records. FUNDesk's AI automatically adapts to whatever schema you configure, no retraining required.
Skill file maintenance. The skill file is generated from your current schema. If you add custom objects or attributes, regenerate the file from Settings and your bot picks up the changes immediately.
Lessons Learned
Direct Data Access Over Search Indexes
CRM data is structured. Brokers ask "show me deals over $50k with B paper" or "create a task to follow up with Metro Tire." The AI queries your data directly rather than searching through document embeddings, which means more accurate results for structured business data.
Schema-Aware AI Feels Smart
Users think the assistant is "learning" their data. In reality, the AI reads your current schema on every request. Add a custom object for funders with buy rate fields, and the assistant knows about it on the next message. No retraining needed.
The Read/Write Safety Split is Non-Negotiable
Read operations are safe. Worst case: wrong results, user ignores them. Write operations are dangerous. If the AI misinterprets "delete the deal" and deletes 50 records, trust is gone. Confirmation cards solve this cleanly. For MCA brokers dealing with live deals worth tens of thousands of dollars, this safety net is critical.
Skill Files are a Powerful Pattern
Teaching a bot through a structured document (instead of requiring a custom integration) has advantages: it is human-readable, easy to update, and works with any bot that can read text. Simple format, powerful result.
Streaming Makes AI Feel Fast
Without streaming, users wait 3-5 seconds for a full response. With SSE streaming, tokens appear as they are generated. Users see progress. It feels fast even when total generation time is the same.
Domain-Specific AI Features Win
The Statement Analyzer is not a generic document analysis tool. It is specifically built for MCA bank statement underwriting. That specificity makes it dramatically more useful than a general-purpose AI feature. Know your user, build for their exact workflow.
Try It
Statement Analyzer: upload bank statements to any deal record and click "Analyze." Results appear in seconds.
Built-in assistant: open the CRM, navigate to Chat, and start asking questions about your merchants and deals.
Bot integration: go to Settings > FUNDesk Bot, generate your skill file, and connect your AI bot. Two minutes. For the full walkthrough, see How to Connect Your AI Bot to FUNDesk.
All three systems work independently. Use one, two, or all three. The CRM is the same underneath.
Start Free at FUNDesk | Live Demo | Documentation
Related: