The CRM and the ledger disagree
Closed-won in Salesforce, invoiced somewhere else, recognised on a third timetable. Every board pack starts with a reconciliation nobody wants to own.
Accounting Seed is a Salesforce-native accounting platform — general ledger, billing, receivables, payables and financial reporting running on the same records as your CRM. Twopir Consulting designs, configures, migrates and extends it, so finance stops rebuilding the revenue story in spreadsheets. One data model from opportunity to ledger.
Trusted by 500+ organizations — including finance, revenue and operations teams running Salesforce-native accounting with Twopir Consulting.








Accounting Seed Delivery Scope
Almost every finance problem we are called in to fix is a seam problem. Sales closes a deal in one system, finance recognises it in another, and someone spends the first week of every month proving the two agree. The reconciliation is the symptom; the seam is the cause.
Closed-won in Salesforce, invoiced somewhere else, recognised on a third timetable. Every board pack starts with a reconciliation nobody wants to own.
Someone reads the opportunity or the contract and types the invoice by hand. Volume grows, the typing grows with it, and so does the error rate on the documents customers actually see.
Manual journals, unmatched cash receipts, bank lines reconciled in a spreadsheet, and a cut-off that moves depending on who is on leave. The close consumes the week that should be spent on analysis.
Subscriptions, retainers, staged project fees and usage charges get forced into a schedule the accounting system was never designed to hold — so they end up in a spreadsheet with a reminder attached.
Leadership asks for margin by product line, project or entity, and the honest answer is a data pull and a pivot table. By the time the number is assembled, the decision window has moved on.
Intercompany entries, eliminations and FX revaluation are maintained by one person who knows where the workbook lives. That is a key-person risk sitting directly underneath the statutory accounts.
Accounting Seed is a double-entry accounting and financial management platform built natively on Salesforce. The general ledger, billings, cash receipts, payables, cash disbursements, accounting periods and financial reports are Salesforce objects — so the ledger lives in the same org, under the same security model, as the accounts, opportunities and contracts your revenue team already works in. It has been published on the Salesforce AppExchange since 2011.
That architecture is the whole point. Because there is no middleware between CRM and accounting, a billing does not have to be re-created from an opportunity, a customer balance does not have to be synced back to be visible to a sales rep, and a report can combine pipeline and ledger data in one query. The vendor's product documentation and its knowledge base are the authority on what each module does; this page is about the work of making it fit a specific business.
It typically replaces a general-ledger system that sits outside the CRM — QuickBooks, Xero, Sage or a legacy on-premise ledger — together with the spreadsheets that grew up around it to handle recurring billing, project costing, multi-entity consolidation and management reporting. For a longer, non-commercial explainer, read our guide to Accounting Seed and Salesforce workflow automation.
These conditions are the ones that make a Salesforce-native ledger pay for itself rather than simply move the work.
We would rather tell you this at the assessment than three months into a build. None of these rule Accounting Seed out — they change the scope, the sequence and the cost.
These are three different engagements with three different buyers, and conflating them is how Accounting Seed projects go over budget. Here is exactly which one you need.
A full first implementation: design the ledger, configure the modules, migrate the history, prove the balances and take the team live on a period boundary.
An org rescue. The software is installed and the team is using it, but the close is slow, the reports do not tie, or half the process still happens outside the system.
Custom development on top of the platform, where a real requirement genuinely cannot be met by configuration — and only after we have proved that it cannot.
Scroll the table sideways to compare all four columns
| Requirement | Native configuration | Declarative build | Custom development |
|---|---|---|---|
| Chart of accounts and reporting dimensions | GL accounts, ledgers, accounting periods and the GL variables used to tag every transaction | Validation rules and defaulting so the right dimensions are captured at entry | Rarely needed — a custom dimension usually means the standard ones were not designed properly |
| Billing and accounts receivable | Billings, billing lines, recurring billings, cash receipts and the standard AR automation | Flow-driven creation of billings from opportunities, contracts or project milestones | Usage-based or tiered rating that has to be calculated before a billing line can exist |
| Payables and disbursements | Payables, payable lines, payment proposals, cash disbursements and AP automation | Approval processes routed on amount, entity, cost centre or vendor risk | Bespoke bank file formats, or approvals that must call an external system of record |
| Revenue recognition and deferral | Recurring journal entries and scheduled postings for straightforward deferral | Schedules generated from contract terms held on Salesforce records | Multi-element allocation and modification accounting under ASC 606 or IFRS 15 |
| Financial and management reporting | Financial Reporter rows, columns and calculations; standard statements by ledger | Salesforce reports, dashboards and CRM Analytics across ledger and pipeline data | Board or investor packs assembled outside the platform on a fixed template |
| Integrations | Listed AppExchange connectors for payments, tax, bank feeds and expenses | External Services and Flow for well-documented REST endpoints | Apex callouts, queueable jobs and error handling for anything transactional or high-volume |
| User experience | Page layouts, list views, field sets and Lightning app pages | Screen Flows that guide non-finance users through a finance task | Lightning Web Components where the interaction cannot be expressed as a flow |
Our working rule: configuration first, declarative second, code last — because every line of Apex is something that has to be regression-tested against three Salesforce releases and every Accounting Seed upgrade, forever. We will tell you when a requirement is genuinely worth that, and when it is a process decision wearing a technical costume.
Accounting Seed ships the capability. The engagement is deciding how your business should use it, configuring it that way, and proving it holds under real transaction volume before anyone depends on the numbers.
The foundation everything else posts into: how the chart of accounts is structured, how transactions are tagged, and how a period actually gets closed.
Turning a signed deal into an invoice, a payment and a cleared receivable without anyone re-typing what the CRM already knows.
Vendor bills, approvals and payment runs inside the same platform, so the cash position on a dashboard is the cash position in the bank.
For businesses that sell time, deliverables or staged work, the link between what was delivered, what was billed and what it cost.
Statements finance trusts and dashboards leadership actually opens — built once, on the ledger, instead of exported every month.
The part of the project that decides whether anyone trusts the new system. Balances must tie to the legacy ledger to the penny, and be provable afterwards.
Because the ledger is already inside Salesforce, most of these are not integrations at all — they are configuration. The ones that genuinely cross a system boundary are listed with the direction of travel, because that is what determines who owns the data.
Same org, no connector. Opportunities, contracts and accounts drive billing creation; balances, invoices and payment status post back onto the customer record, so a rep sees an overdue account before the renewal call.
Card and ACH collection against Accounting Seed billings. Payment authorisation and settlement flow inbound as cash receipts and apply to the open invoice, removing the manual matching step from AR.
Sales and use tax determination at the point a billing line is created. Rates and jurisdiction logic come from Avalara; the calculated tax posts to the ledger, and filing data flows back out to Avalara returns.
Automated bank and card transaction import into Accounting Seed for reconciliation. Data moves inbound only; the ledger stays the system of record, and reconciliation status is what leaves.
Employee expense capture and approval outside the ledger, posting inbound as coded payables and reimbursements. Keeps receipt handling away from finance without losing the accounting treatment.
Usually a migration rather than an integration. History and open items move once, in a controlled cutover with a parallel run, after which the legacy ledger becomes read-only archive.
Payroll summary journals post inbound to the general ledger on a schedule, coded by entity, department and cost centre. Employee-level detail stays in the payroll system where it belongs.
Ledger and transaction data extracted outbound to Snowflake, BigQuery or a warehouse of your choice, so group reporting and data science work from the same numbers finance signs off.
An accounting implementation has one hard constraint no other Salesforce project has: go-live must land on a period boundary. Everything else is sequenced backwards from that date, and the schedule is driven by entity count, the state of the opening balances, and how much of order-to-cash is being automated — which is exactly what the first phase establishes.
We walk the real process: how an order becomes an invoice, how a bill gets approved, how the month closes and where the spreadsheets are. We review the existing chart of accounts, the Salesforce org, integrations and data quality, then write down what is broken and what is merely unfamiliar. The output is a scope, a risk list and a cutover date — not a proposal for everything.
The decisions that are expensive to reverse: chart of accounts structure, which reporting dimensions become GL variables, the ledger and accounting period calendar, entity and currency model, and the boundary between configuration and code. We also design the security model here — who can post, who can approve, who can only read.
Modules configured against the design: ledgers, billing and AR, payables and cash, projects where relevant, and the Financial Reporter statements. Automation is built in Flow first and Apex only where the table above says it is warranted. Everything is built in a sandbox and version-controlled, never directly in production.
Master data first, then the opening trial balance at the cut-off, then open AR and AP items with their ageing preserved, loaded through clearing accounts so every opening entry stays traceable. We reconcile to the legacy closing balances line by line and get finance to sign that reconciliation before anything else proceeds.
Finance runs real transactions through the new system alongside the old one for at least one full cycle — a billing run, a payment run, a bank reconciliation, a close. Training is role-based and uses your data, not a demo org, and the close checklist is rehearsed rather than handed over as a document.
Cutover on the period boundary with hypercare through the first close, which is the one that matters. After that we move to a support relationship: release regression testing, new entities and billing models as the business adds them, and periodic reviews of the close cycle to remove the steps that have quietly crept back in.
The modules are the same. What changes is the revenue lifecycle the ledger has to follow — and getting that mapping right in week two is what separates a build that lasts from one that gets re-scoped in month five.
Rent and service charges billed on schedule per unit, operating costs coded to the property, and profitability reported by asset rather than in aggregate. GL variables carry property, unit and portfolio, so a year-over-year comparison by building is a report rather than a project. Owner entities and joint ventures sit as separate ledgers with intercompany entries handled in-system.
Subscription revenue, implementation fees and support retainers arriving on three different rhythms, with deferral running underneath all of them. Recurring billings handle the renewal stream, project billing covers the implementation, and scheduled journal entries move deferred revenue to recognised as it is earned. ARR reporting and the ledger finally agree.
Firms that sell time need work in progress, utilisation and realisation in the same place as the ledger. Time and expense capture against project tasks feeds both the billing run and project cost, so engagement margin is visible while the engagement is still running rather than after it has been invoiced. This is also where legal and accounting practices land.
Several legal entities, often several currencies, one group view expected on demand. Each entity gets its own ledger with its own period calendar; intercompany transactions, eliminations and FX revaluation are configured rather than maintained by hand; and consolidated statements are produced in the Financial Reporter instead of a workbook only one person can operate.
One engagement, measured. A mid-size US firm moved billing and matter administration onto Accounting Seed alongside Salesforce; these are the figures that came out of it.
Twopir Consulting integrated our systems and streamlined administration and billing, leading to seamless financial operations and enhanced productivity. Automated mass billing and matter management minimized errors across our entire workflow.
Eliminating finance and CRM data silos with Accounting Seed and Salesforce.
Accounting Seed implementations fail in two directions: a Salesforce team that cannot reconcile a trial balance, or an accounting team that cannot design a data model. The work sits in between.
Chart of accounts, reporting dimensions, entity and period structure come first, on paper, with your controller in the room. These are the decisions that are cheap to change in week two and painful to change after a year of postings.
Opening balances that tie to the legacy ledger, open items with their ageing intact, and a reconciliation finance signs. Adoption is decided here: if the first trial balance is wrong, nobody trusts the second one.
Custom Apex is a permanent maintenance commitment, re-tested against every Salesforce release and every Accounting Seed upgrade. We build declaratively wherever it holds, and say plainly when a requirement is a process decision rather than a technical one.
We implement Accounting Seed, and we are also the team that built the Salesforce org, the CPQ configuration and the integrations feeding it. The seam between revenue and finance is not a handoff between two vendors.
Go-live is not the milestone; the first month-end on the new ledger is. We are there for it, and for the quarter after, when the edge cases that no test script anticipated actually show up.
Six phases: discovery and current-state assessment, ledger and solution architecture, configuration and build, data migration and opening balances, validation with a parallel run and training, then go-live and optimization. The installation itself is a small part of it. Most of the work is deciding how your chart of accounts, reporting dimensions, billing models and approval processes should be structured, and then proving that the migrated balances tie to your legacy ledger before anyone relies on them.
Three things set the timeline: the number of legal entities and currencies, the condition of the data and opening balances in the legacy system, and how much of order-to-cash is being automated rather than lifted across as-is. A fourth constraint is the calendar, because go-live has to land on an accounting period boundary. A single-entity core financials build is materially shorter than a multi-entity build that also covers project accounting, revenue recognition and CPQ-driven billing. We size it during the assessment and commit to a cutover date from there, rather than quoting a duration before we have seen the chart of accounts.
Yes. Accounting Seed is a native Salesforce application, so it installs into a Salesforce org and uses the platform's objects, security model and reporting. That is also its main advantage: because the ledger and the CRM share one data model, there is no synchronisation layer between a closed opportunity and the billing it produces. If Salesforce is not yet in place, or is in place but not trusted internally, we would address that first — putting an accounting system on top of a CRM nobody maintains moves the problem rather than solving it.
Configuration means setting up what the package already does: ledgers, accounting periods, GL accounts and variables, billing and recurring billing, payables, payment proposals, and Financial Reporter statements. Declarative build sits one step beyond that — Flows, validation rules, approval processes and Screen Flows that shape how your people use those objects. Customization means Apex or Lightning Web Components, and it is only warranted when a real requirement cannot be expressed in the first two, such as usage-based rating before a billing line exists, or multi-element revenue allocation. Every line of custom code becomes a permanent maintenance commitment against the Salesforce and Accounting Seed release cycles, so we build declaratively wherever it holds.
Yes, with a deliberate choice about how much history moves. The standard approach is to load an opening trial balance at a clean period boundary, migrate open accounts receivable and accounts payable items with their ageing preserved, and bring across master data in full. Opening entries are posted through a dedicated clearing account so every balance stays traceable back to its source. Deeper transactional history is usually better retained as a read-only archive in the legacy system than re-posted into the new ledger. The non-negotiable is that opening balances reconcile to the legacy closing balances exactly, and that finance signs that reconciliation before go-live.
Usually, yes. A slow close, reports that do not tie, or a process that still runs half outside the system are typically design problems rather than platform problems. We audit the chart of accounts and GL variable usage, the automation and approval processes, the Financial Reporter setup, the integrations and the data quality, then produce a prioritised remediation plan with the quick wins separated from the structural work. Restarting from a blank org is occasionally the right answer, but it is the exception, and we would show you the reasoning before recommending it.
Yes. Support after go-live covers hypercare through the first month-end close, regression testing against Salesforce seasonal releases and Accounting Seed upgrades, and the changes the business asks for as it grows — a new entity, a new billing model, a new reporting dimension. We also run periodic reviews of the close cycle, because manual steps tend to reappear quietly over a year. This is delivered as part of our Salesforce managed services engagement model.
A first conversation is a working session, not a demo. We look at how you bill, how you close and what your reporting has to answer, and you leave with a clear view of scope, sequence and the decisions that need making first — whether or not you engage us.
Salesforce architecture and finance systems, in the same conversation
Related: Salesforce consulting services · Salesforce for professional services firms · Salesforce for law firms · Salesforce CPQ integration case study