ABRA Flexi
AccountingABRA Flexi, formerly FlexiBee, is a Czech accounting and ERP system built on generic registers. Agents read and write any register, issue invoices and orders, maintain price lists, track bank, cash, and stock movements, and react to changes in real time.
What This Integration Enables
ABRA Flexi, sold for years as FlexiBee, is a Czech accounting and ERP system with an unusual API design. There is no invoices endpoint. There is one URL shape over roughly two hundred registers, and the register name is part of the address: the address book, issued and received invoices, the price list, orders, bank and cash movements, stock, payroll, the chart of accounts, and every code list behind them. That is the whole API rather than a fallback layer, and it means the connector is at its best in the hands of teams who are comfortable treating the accounting database as a database. The server is yours, including the URL, which is the other reason this one appeals to companies that keep their books on their own infrastructure.
FlowRunner agents work through both layers. Generic operations list, read, write, delete, sum, count, export, and invoke named actions on any register, and convenience operations cover the registers a flow reaches for most: contacts, invoices, orders, the price list, bank and cash movements, and stock. Discovery is a real part of the design rather than documentation: List Registers reports what this license exposes, Get Register Properties reports the fields and which are mandatory, and Get Register Relations reports the sub-collections a read can pull in. Two safety behaviors matter. A response can carry a failure inside a successful status, and the connector raises on that so a rejected write cannot look like a completed one. And Create Or Update Records accepts a dry run, which validates the whole envelope and reports what it would have done without writing. That preview is what makes FlowRunner's human-in-the-loop gate on this connector a real check rather than a rubber stamp.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
A CRM sync that never stores the vendor's numbers
Customer records change in HubSpot and the agent keeps ABRA Flexi in step. It never holds an ABRA Flexi identifier, because a record can be addressed by your own external key instead, set once when the record is created. That single property removes most of the state a sync usually carries. Before the first run against a new server the agent calls Get Register Properties, because an installation can carry custom fields and localized configuration and the documentation is not the authority for your instance. Writes go through Create Or Update Records with a dry run first, and the plan the server returns is compared against what the flow expected. Only fields that were sent change, so a partial update stays partial rather than resetting the rest of the record.
-
Money in, without a mark-as-paid call
ABRA Flexi has no operation for marking an invoice paid, and looking for one is the usual first wrong turn. Recording the money is the operation. The agent reads unpaid issued invoices with List Invoices, pulls the day's bank lines, and matches them on the variable symbol, which is the field that pairs a payment to a document. Create Bank Movement records the match and the invoice moves to paid as a consequence. Sum Invoices gives the outstanding total before and after, which is the number the finance owner actually wants, and it appends to a tracking sheet alongside a short summary posted to Slack. Lines the agent cannot pair confidently are listed rather than forced, because a payment recorded against the wrong invoice leaves two customers' balances wrong at once.
-
A warehouse mirror kept honest by change tracking
Reporting teams want the registers somewhere they can query. Export Records pulls a register in bulk for the initial load into PostgreSQL. Keeping it current is where the Changes API earns its place: each response carries a version number, the agent stores it, and passes it back next time as the starting point. No gaps, no repeats, and no timestamps to reason about. Enable Change Tracking has to run once before any of this works, and nothing that happened while it was off is recoverable afterwards, so it is the first thing a new deployment does. The trigger can start the same flow in near real time, though what it reports is that something changed rather than what, so the flow reads the batch with List Changes and then the records themselves.
Human-in-Loop Highlight
The register is a parameter. Create Or Update Records takes the register name in the same position whether it addresses the address book or payroll, and Run Record Action invokes a named verb the same way, including the cancellation that writes an irreversible reversing document. So the blast radius of one badly resolved value is the whole database, and the connector's own behavior makes the quiet version of that failure easy to reach: a record carrying an identifier is updated, and a record without one is created. An external key lookup that returns nothing does not error. It creates a second customer, and the invoices already posted against the first stay where they are, so both balances are now wrong and neither is obviously so. The dry run is what makes this checkable. The agent submits the envelope with the dry run set, reads back what the server says it would do, and where the plan contains creates in a flow that expected updates, or addresses a register the flow was not written for, it stops and posts: "Sync of 412 contacts would create 37 and update 375. Expected zero creates. The 37 all carry external keys that resolved on the previous run. Run as planned, or hold for a key check?" A person answers. Runs whose plan matches expectations go through unattended, because a gate that fires on every routine sync is a gate people learn to click past.
Agent Capabilities
49 actionsDiscovery
5- List Companies Lists the company databases on the server. The identifier this returns is in the path of every other call.
- List Registers Lists every register the license exposes, with the name to address it by. The entry point to the whole API.
- Get Register Properties Reports a register's fields, their types, and which are mandatory. The authority for your own installation, which can carry custom fields the documentation does not know about.
- Get Register Relations Reports the sub-collections a record can pull in, such as invoice lines or contact people.
- List Register Reports Lists the print templates a register can render through.
Records In Any Register
9- List Records Lists records from any register, using the platform's own filter expression language. A list without an explicit limit returns twenty records, so flows always set one.
- Get Record Retrieves one record, addressable by internal identifier, user code, your own external key, or a unique field lookup.
- Create Or Update Records Writes records to any register. A record carrying an identifier is updated and one without it is created, only the fields sent are changed, and a dry run validates the whole envelope and reports what it would do without writing.
- Delete Record Deletes a record. The server refuses this for a posted document other records depend on, which is the accounting rule working as intended.
- Run Record Action Invokes a named action on a record, including the cancellation that writes a reversing document. Irreversible, and reachable on any register.
- Sum Records Sums a field across matching records without pulling them. The right way to get a total.
- Count Records Counts matching records without pulling them. Used to size a job before running it.
- Run Saved Query Runs a query saved in ABRA Flexi, so reporting logic defined by the finance team can be called from a flow rather than rebuilt in one.
- Export Records Exports a register in bulk. The initial load behind a warehouse mirror.
Address Book
4- List Contacts Lists customers and suppliers from the address book register.
- Get Contact Retrieves one contact, by internal identifier or by your own external key.
- Create Contact Creates a contact. Setting an external key here is what lets every later flow address the record without storing the vendor's numbering.
- Update Contact Updates a contact. A partial update, so unsent fields are left alone.
Invoices
8- List Invoices Lists issued or received invoices, with date range and unpaid-only filters built for you.
- Get Invoice Retrieves one invoice, optionally including its lines. Reading a real invoice before building the first one is the reliable way to learn the line shape your company uses.
- Create Invoice Creates an invoice. Whether a line price is read as net or gross is decided by the document line itself, and the wrong basis produces a document that posts cleanly and totals wrongly by exactly the VAT rate.
- Update Invoice Updates an invoice, changing only the fields sent.
- Add Invoice Items Adds lines to an existing invoice.
- Delete Invoice Item Removes a single line from an invoice.
- Cancel Invoice Writes a reversing document and leaves both in the audit trail. The operation accounting rules expect, and irreversible.
- Sum Invoices Totals invoices matching a filter. The outstanding balance figure without pulling the documents.
Orders
3- List Orders Lists received or issued orders.
- Get Order Retrieves one order with its detail.
- Create Order Creates an order.
Price List
4- List Price List Items Lists the price list. The catalog that document lines price from.
- Get Price List Item Retrieves one price list item, including both its net and gross prices.
- Create Price List Item Adds an item to the price list.
- Update Price List Item Updates a price list item. The net and gross fields are separate, and writing the wrong one is the failure nobody notices until a document totals oddly.
Money
3- List Bank Movements Lists bank movements for a period or account.
- List Cash Movements Lists cash register movements.
- Create Bank Movement Records a bank movement with the invoice's variable symbol, which is what pairs it to the document and moves the invoice to paid. There is no separate mark-as-paid call.
Stock
2- List Stock Movements Lists stock movements for a warehouse or period.
- List Stock Levels Reads current stock levels. The source of a reorder decision.
Documents and Attachments
4- Download Record PDF Renders a record through one of its print templates into FlowRunner file storage, optionally in another language or with the stored signature stamped.
- List Attachments Lists files held against a record.
- Add Attachment Attaches a file to a record. The file name travels in the URL and the bytes in the body, with no multipart form involved.
- Download Attachment Fetches an attached file.
Change Tracking
4- Get Change Tracking Status Reports whether change tracking is switched on for this company.
- Enable Change Tracking Switches change tracking on. It has to run once before either the trigger or the change feed produces anything, and what happened while it was off cannot be recovered afterwards.
- Disable Change Tracking Switches change tracking off.
- List Changes Lists changes since a version number, returning a new version to store for the next run. A complete polling primitive with no gaps and no repeats.
Webhooks
3- List Webhooks Lists webhooks registered on the server.
- Create Webhook Registers a webhook against an endpoint of your choosing, separate from the trigger below.
- Delete Webhook Removes a registered webhook.
Triggers
1 triggersEvent Triggers
1- On ABRA Flexi Change Fires when something changes on the server. The delivery names the register and a global version number and carries no event name and no record, so the flow reads what changed with List Changes or Get Record rather than parsing the payload. Change tracking has to be enabled first, and the register filter is applied on delivery rather than at subscription, because a single hook reports everything. There is no signature on an ABRA Flexi delivery and the vendor publishes no secret to check, so the delivery is treated as a prompt to go and read, which is all its payload was ever going to be.
Frequently Asked Questions
What can FlowRunner do with ABRA Flexi?
FlowRunner agents can run List Companies, List Registers, and Get Register Properties in ABRA Flexi, plus 46 more actions.
Does connecting ABRA Flexi to FlowRunner require OAuth?
No. ABRA Flexi connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.
Can ABRA Flexi trigger a FlowRunner workflow automatically?
Yes. ABRA Flexi supports 1 trigger that can start a FlowRunner workflow automatically.
Start building with ABRA Flexi
Free plan, no card required. Connect in minutes.