Skip to content

Bkper Agent

Automate bookkeeping with the Bkper Agent — intelligent transaction categorization and document parsing powered by AI.

Bkper Agent

The Bkper Agent automates the tedious parts of bookkeeping by combining two powerful capabilities: intelligent data parsing and smart categorization.

Installation

Open your Bkper account and the book where you want to use the Agent. Click the Settings button (gear icon), select Automations, find the Bkper Agent, and click Install.

Document parsing

The Agent interprets data and correctly categorizes it into transactions, whether it comes from Google Sheets, Bank Connections, or file uploads.

This power is especially evident when uploading documents. Drag and drop an invoice, receipt, or bank statement (as an image or PDF) directly into your book, and the Agent performs parsing and categorization in one seamless action. It extracts dates, amounts, and descriptions while referencing your book history and learning from your patterns to apply the correct accounts.

The result is a list of fully populated and categorized draft transactions ready for your review — whether from a single receipt or a multi-page bank statement.

Supported document types

Bank Statements and Credit Card Statements — extracts multiple transactions from a single statement, supports CSV files and scanned/photographed statements, and automatically organizes transactions by date.

Invoices — extracts a single transaction with vendor or customer details, identifies invoice numbers, dates, and amounts, and captures custom fields like tax amounts.

Receipts — extracts purchase details and amounts, identifies merchant names and transaction dates. Ideal for expense tracking.

Uploading files to your book

Select the Account related to the file you are uploading — for example, select the Brex Cash account when uploading a Brex statement. Then drag and drop the file (PDF, image, or CSV) into the transaction area.

The Agent processes the file, records draft transactions, and completes the other account based on transaction history in the book. Review and post the transactions.

Attaching files to existing transactions

Drag and drop a file directly onto an existing transaction. The Agent extracts data and updates the transaction with the extracted details — perfect for adding invoices to expense entries or attaching receipts for documentation.

How the Agent learns and improves

The Agent gets smarter over time through a process called Agentic Context Engineering (ACE).

What the Agent learns from:

  • Your existing transactions — analyzing patterns in your transaction history
  • Your corrections — when you edit AI-extracted data, the Agent learns what’s correct
  • Your account structure — understanding how you organize your chart of accounts

How corrections work:

  1. Edit the transaction as needed (change amount, date, description, or accounts)
  2. Post the corrected transaction
  3. The Agent flags the extraction for improvement
  4. Behind the scenes, it analyzes what went wrong and updates its extraction instructions
  5. Future documents are processed with improved accuracy

This learning happens automatically — no configuration required.

Smart account discovery

When extracting transactions, the Agent automatically suggests From and To accounts by:

  • Analyzing transaction descriptions and extracting key terms
  • Searching transaction history for similar patterns
  • Matching based on past behavior (e.g. “Uber” always goes to Transport Expense)
  • Learning from the creator (your patterns vs. team members’ patterns)

The more you use Bkper, the better the Agent becomes at finding the right accounts.

Advanced configuration

While the Agent works well out of the box, you can customize its behavior for specific use cases.

Custom extraction instructions — add an agent_prompt property to accounts or groups to control how the Agent extracts data. For example, on a Bank Statement - Chase account:

  • Key: agent_prompt
  • Value: Extract transactions from the statement table. Include the reference number as a custom property called "ref". Extract merchant category if available.

Centralized prompt configuration — for teams managing multiple books, store extraction instructions in a central “prompt book”:

  1. Create a dedicated book for storing prompts (e.g. Company Extraction Rules)
  2. In your operational book, add a book property: agent_prompt_book_id with the ID of your prompt book

This maintains consistent extraction rules across all your books.

Account-specific prompts — match prompts from the remote book using agent_prompt_id:

  • Key: agent_prompt_id
  • Value: Name or ID to match in the remote prompt book

Useful when different statement types (bank, credit card) need different extraction rules.

Best practices

For bank statements:

  • Upload regularly (monthly or weekly)
  • Select the bank account before uploading for better account discovery
  • Review and post draft transactions in batch
  • Correct any errors — the Agent learns from them

For invoices and receipts:

  • Select the related account before uploading
  • Upload immediately after receiving
  • Clear, readable scans produce the best results
  • Add custom properties if you need specific fields extracted

For maximum accuracy:

  • Post transactions regularly so the Agent has more data to learn from
  • Be consistent with account names and transaction descriptions
  • Correct mistakes immediately to trigger learning
  • Use groups to organize accounts by document type

Workflow example

First upload: Select the Bank Account, drag in a statement. Most accounts are likely missing (the Agent is learning). Assign accounts manually and post.

Second upload: The Agent auto-assigns accounts for roughly 60% of transactions. Review and correct the rest.

Third upload: The Agent handles roughly 85% of transactions. Only minor corrections needed.

Ongoing: The Agent correctly extracts 95%+ of transactions. Quick review and post — bookkeeping in minutes.

Monitoring Agent performance

The Agent stores metadata on each transaction:

  • agent_extracted_ — original AI extraction (before corrections)
  • agent_credit_account_id_ / agent_debit_account_id_ — discovered accounts
  • agent_description_part_ — key terms used for discovery
  • agent_file_id_ — links transaction to source document

View these properties in transaction details to understand how the Agent processed each entry.

Troubleshooting

Agent didn’t extract anything — verify the Agent is installed (Settings > Automations), check file format (PDF, image, or CSV), and ensure the file is readable.

Extracted data is incorrect — correct the transaction and post it. The Agent learns from your correction and improves future extractions.

Accounts not auto-assigned — normal for new books with limited history. Keep posting transactions so the Agent has data to learn from. Try selecting an account before uploading.

Same mistakes keep happening — make sure you’re posting corrected transactions (not just viewing). The Agent learns incrementally — give it a few correction cycles.

Privacy and security

  • File processing uses Google Gemini AI with enterprise-grade security
  • Files are processed through Cloudflare’s AI Gateway for additional protection
  • Your data never trains public AI models — it only improves your private Agent
  • Files are stored securely in your Bkper book and can be deleted at any time
  • The Agent learns per book, so each learning path is unique

Categorization: finding the right accounts

Once transaction information is available — from a document or any other source — the Agent completes the transaction by assigning From and To accounts. This happens automatically based on patterns from your bookkeeping history.

The Agent follows a logical sequence, checking each method in order and stopping as soon as it finds a match:

Explicit account names in the description. If you write Bank Household rent 1900 and both Bank and Household accounts exist in your book, the Agent assigns them as the From and To accounts respectively. The first account becomes the From Account (where money comes from), and the second becomes the To Account (where money goes to).

Matching descriptions. When you’ve previously recorded Bank Household rent 1900 and later enter just rent 2000, the Agent recognizes the description and applies the same accounts.

Matching hashtags. If you’ve used a hashtag like #rent in a previous transaction, you can enter #rent 2000 and the Agent applies the same accounts associated with that hashtag.

Location (mobile). When you record a transaction at a physical location and later return to that same place, you only need to enter the amount — the Agent remembers the accounts you used there before.

Every action the Agent takes appears in your activity history, creating a transparent record of the automation at work.

Ignoring unwanted text

Sometimes descriptions include information you want to keep but don’t want the Agent to process — like timestamps or reference numbers. Wrap text in quotes to tell the Agent to ignore it for matching purposes.

For example, 10 Gas "at 10:56" causes the Agent to use only “10 Gas” for finding accounts, while the complete description including “at 10:56” is saved with the transaction. This is especially useful when integrations automatically append metadata.