Reading time: about 14 minutes. The integration architecture for commission software, written for the RevOps lead or IT architect who has to wire the platform into a real stack.
Commission software does not generate sales data. It calculates against sales data that lives in other systems, and the outputs of the calculation – payouts, statements, accruals – have to flow back out to other systems again. A commission engine sits in the middle of a small ecosystem: CRM and ERP feed it deals and invoices, HRIS feeds it people, payroll consumes the payouts, the GL consumes the accruals, BI consumes the historical data. If any of those connections is fragile, the platform’s correctness is also fragile. The integration architecture is not a checklist item; it is the platform.
This is the integration playbook: the systems you have to connect, the data flows in each direction, the standard patterns (real-time, scheduled, event-driven), the gotchas that show up in production, and the API surface a serious commission platform exposes. We use Sales Cookie’s architecture as the reference, but the patterns generalize.

The integration map
| System | Direction | Data | Typical cadence |
|---|---|---|---|
| CRM (Salesforce, HubSpot, Dynamics) | Inbound | Opportunities, accounts, products, custom fields | Hourly to daily |
| ERP / billing (QuickBooks, NetSuite, Stripe) | Inbound | Invoices, payments, refunds, credit memos | Daily |
| HRIS (Workday, BambooHR, Rippling) | Inbound | Employees, hire/term dates, manager hierarchy | Daily |
| Identity / SSO (Auth0, Okta, Azure AD) | Inbound | User authentication, role mapping | Real-time (SAML / OIDC) |
| Payroll (ADP, Gusto, Paychex) | Outbound | Payout amounts per payee per cycle | Per pay cycle |
| GL / accounting | Outbound | Comp expense, ASC 606 amortization, liability accrual | Monthly close |
| BI / data warehouse | Outbound | Calculations, credits, commissions, payouts, plan versions | Daily / live |
| Rep portal / dashboards | Outbound | Statements, deal-level breakdown, accelerator status | Real-time |
Pattern 1: CRM ingestion
This is the most-used integration in the stack. CRM is the system of record for deals, accounts, products, owners, and the custom fields the comp plan depends on. The architecture choices that matter:
- Field-name preservation. The engine must keep every CRM field name available for reference inside commission logic. If your custom field “Product_Tier__c” gets renamed during ingestion to “tier_1,” then plan rules become brittle and breakage is silent.
- Multi-source coexistence. A real implementation often pulls from one CRM (HubSpot, Salesforce, Dynamics) plus one or more side sources (e.g., a renewals tracker, a partner deal registration sheet). The engine must treat these as separate data sources, with cross-lookup, not as one giant denormalized table.
- Soft deletes. When a CRM opportunity is closed-lost after being credited, the engine must understand it – not silently delete the record from its data pool.
Cadence is usually hourly to daily for a healthy commission environment. Real-time CRM-to-commission flow is rarely needed and usually adds risk; deals settle, refunds arrive, statuses change. Letting the data settle for a few hours before pulling reduces dispute volume.
Pattern 2: Billing and ERP ingestion
The second data source nearly every implementation needs. Billing data tells the engine which deals actually were paid by the customer, which determines whether commissions can be released (especially for plans that pay on collection rather than on booking). Refunds and credit memos drive automatic clawbacks. For SaaS and subscription businesses, ARR/MRR data drives accelerator math and ASC 606 amortization schedules.
The cross-lookup pattern is critical here. Sales Cookie’s commission software checklist calls out “cross-lookups between two data sources, for example match some records (ex: invoices) to other records (ex: deals) across data source.” That is exactly the pattern. An invoice ID has to be matched to a deal ID, and the deal’s commission has to be conditional on the invoice’s paid status.
Pattern 3: HRIS and identity
HRIS feeds the engine the canonical list of payees – employees, hire dates, termination dates, manager hierarchy. This is what makes manager rollup plans work. Two implementation details:
- User aliasing. A rep may be identified by Employee ID in HRIS, by email in CRM, and by a sales username in the billing system. The engine must match on any of these consistently. Sales Cookie’s checklist calls this “match on either employee ID, employee name, or employee email.”
- Mid-period transfers. When a rep changes team or plan mid-period, the engine must split credit appropriately – HRIS effective dates feed this calculation, and the engine must respect them.
Identity (SSO) is usually a different integration: SAML or OpenID Connect federation with Okta, Azure AD, Auth0, Google Workspace. This handles authentication only, not authorization; the engine maintains its own role mapping (admin, limited admin, manager, payee).

Pattern 4: Payroll and GL output
The output side is shorter but matters more for finance and HR. Two flows:
Payroll. Once a cycle is calculated and verified, the engine produces a payout file – payee, amount, currency, period. Format is usually a CSV or an API call to the payroll provider. Sales Ops needs a “pre-payroll” step where statements are reviewed and approved before the file goes out; this is where the manager-approval and statement-verification workflows pay off.
GL. Finance needs three numbers from commissions per period: comp expense (cash), commission liability (earned but unpaid), and ASC 606 amortization (capitalized commissions on multi-year deals, amortized across contract life). Each of these maps to specific GL accounts and posting entries.
Pattern 5: BI and the API surface
For any organization with a real BI function, the commission engine is one data source among many in the warehouse. The engine should expose APIs that support read across every entity. Sales Cookie’s published API surface includes read APIs across calculations, write APIs for adjustments, and bulk-upload APIs for transactions. Power BI, Tableau, Looker, and dbt projects all want to connect at this layer rather than via CSV exports.
The minimum endpoints to require from a commission platform:
- GET /calculations – list calculations with status, period, plan
- GET /calculations/{id}/credits – per-rep, per-deal credits
- GET /calculations/{id}/payouts – per-rep payouts
- GET /users, GET /teams, GET /plans – master data
- POST /adjustments – apply or reverse a manual adjustment
- POST /transactions – bulk-upload sales data
- Webhooks on key events: calculation completed, statement released, dispute filed
Integration gotchas (the ones that cost weeks)

| Gotcha | What goes wrong | Mitigation |
|---|---|---|
| Custom field loss | CRM custom fields collapsed during ingest; plan logic can’t reference them. | Verify in demo that named fields survive end-to-end. |
| Soft-delete handling | CRM marks opportunity as closed-lost; engine deletes it from data pool instead of marking ineligible. | Use status filtering, not row deletion, for state changes. |
| Multi-currency FX timing | FX rate applied at calculation time differs from rate at booking time. | Snapshot FX rates at booking; carry through to payout. |
| Refund timing | Refund arrives in period N+2 after commission paid in N; clawback rule unclear. | Encode clawback policy explicitly; let engine apply automatically. |
| Mid-period transfer | Rep moves from team A to team B mid-cycle; deals double-credited. | Use effective dates on team membership; engine respects them in crediting. |
| Field renaming | Salesforce admin renames a custom field; plan logic breaks silently. | Subscribe to schema-change webhooks where available; alert on unmapped fields. |
| CRM/ERP rate limits | Daily pull hits API quotas during high-deal-volume months. | Use incremental sync, not full refresh; respect rate-limit headers. |
| Webhook reliability | Webhooks dropped; downstream systems out of sync. | Pair webhooks with reconciliation polling; idempotent processing. |
Real-time vs. scheduled: choose deliberately
The temptation is to wire everything real-time. Resist it. Commission calculations are a periodic process (daily, weekly, monthly), and the data they consume needs time to settle. The right cadence by data type:
- Real-time: SSO authentication only.
- Hourly: CRM deal status changes during high-volume close periods.
- Daily: CRM, ERP, HRIS in normal operation.
- Per-cycle: Payroll output, GL posting.
- Event-driven: Refunds, cancellations (trigger clawback workflow).
Security and access
Commission data is one of the most sensitive datasets in the company. A few non-negotiables:
- SSO with role mapping. Authentication via your identity provider; authorization to specific plans/teams via engine roles.
- Read-only admin roles. Finance and audit roles often need full read but no write. Many platforms still treat this as a feature toggle rather than a first-class role.
- Manager-level visibility scoping. A sales manager sees their team, not other teams.
- Audit log on every change. Who, when, what changed, before/after.
- Encryption in transit and at rest. TLS 1.2+ and AES-256.
- Compliance certifications. SOC 2 Type II at minimum; ISO 27001 for global teams.
Bottom line
The commission engine is one node in a sales-finance-HR-BI network. Its value comes from the quality of its connections to CRM, ERP, HRIS, payroll, GL, and BI. Get the integration architecture right (preserved field names, multi-source cross-lookups, well-chosen cadences, comprehensive APIs, and an honest set of mitigations for the standard gotchas) and the platform will scale through plan changes, M&A, and audit cycles. Get it wrong and the platform will quietly start producing the same disagreements the spreadsheet used to.
See the integration architecture in production. Sales Cookie publishes its integration patterns and APIs openly. Pair this article with our feature pillars guide, our buyer’s scorecard, and our why-automate ROI breakdown.
Sources: Sales Cookie commission software checklist; Deconstructing sales commission software; FASB ASC 340-40; SOC 2 reporting framework (AICPA).