Microsoft Dynamics NAV and BambooHR integration
Microsoft Dynamics NAV runs finance, purchasing, and inventory for your business. BambooHR runs HR and manages your people. Connecting the two keeps your employee records synchronized so your NAV headcount, job titles, and compensation details always match what BambooHR has recorded. New hires appear in NAV, terminations are marked, and employment status changes are logged without manual re-entry. Cost centers and GL accounts stay aligned with compensation so month-end payroll postings land on the correct ledger accounts.
What moves between them
Employee records and employment status flow from BambooHR to Microsoft Dynamics NAV on a push or polling schedule. When a new employee is created or an existing employee is updated in BambooHR (name, job title, employment status, department), ml-connector syncs that record into NAV's employee card. Terminations and status changes are reflected in NAV so headcount reports and the employee ledger stay current. Reference data such as departments and job codes are mapped between systems. Compensation history and benefits information from BambooHR can be recorded in NAV dimensions and cost center allocations. GL account mappings ensure that when payroll costs are posted from BambooHR, they reference valid NAV accounts and cost centers.
How ml-connector handles it
ml-connector stores OAuth credentials for both systems encrypted and manages token refresh automatically, since BambooHR tokens expire after 1 hour and NAV tokens may also require renewal depending on configuration. For BambooHR it must include the customer's subdomain in every API call and token endpoint URL. On the NAV side it accepts the full tenant ID, company ID, and instance URL (for on-premises) or uses the Business Central online base URL with the tenant. ml-connector listens for BambooHR employee webhook events signed with SHA-256 HMAC, validates the signature on every notification, and fetches the full employee record via follow-up GET when a webhook arrives. For NAV it can either register webhook subscriptions and renew them before their 3-day expiry, or poll the employee entity on a configurable schedule. Department and cost center names are mapped in both directions during setup so compensation allocations reference valid NAV dimensions. If a BambooHR employee record change arrives after a NAV webhook has been processed, ml-connector retries the NAV update with exponential backoff and logs every attempt in the audit trail, so replays are possible if a downstream call fails. Rate limiting is handled with backoff; BambooHR returns 503 if throttled, and ml-connector respects the Retry-After header if provided.
A real-world example
A mid-sized manufacturing business runs Microsoft Dynamics NAV for purchasing, inventory, and general ledger, and uses BambooHR as its HRIS system across three plants and a head office. Before the integration, the human resources team sent quarterly employee roster updates to finance, and the finance team manually updated NAV employee cards and allocated compensation costs to the correct NAV cost centers. Payroll cost postings often landed on incorrect GL accounts, causing month-end close delays and reconciliation effort. With BambooHR and NAV connected, each new hire in BambooHR is automatically added to NAV, employment status changes are logged, and compensation allocations automatically reference the correct NAV cost center. Month-end close becomes faster because payroll and the employee ledger are already synchronized.
What you can do
- Sync BambooHR employee records into Microsoft Dynamics NAV automatically when employees are hired, updated, or terminated.
- Map BambooHR departments and job titles to NAV employee card fields and dimension codes so organizational structure stays aligned.
- Validate NAV webhook subscriptions and renew them before their 3-day expiry window closes, or poll on a schedule you define.
- Authenticate BambooHR with OAuth 2.0 and NAV with OAuth 2.0 or Basic auth, managing token refresh and the required BambooHR subdomain automatically.
- Maintain a complete audit trail for every employee sync, with retries and error replay so no record is lost if a downstream call fails.
Questions
- Which direction does employee data flow between Microsoft Dynamics NAV and BambooHR?
- Employee records flow from BambooHR to Microsoft Dynamics NAV. New hires, updates, and terminations in BambooHR are synced into NAV employee cards, keeping headcount and employment status current. Cost centers and GL account dimensions are mapped during setup so compensation costs post to the correct NAV accounts. NAV GL accounts are read-only in the standard API, so ml-connector does not write financial entries back to BambooHR.
- How does ml-connector handle BambooHR's per-customer subdomain and OAuth token expiry?
- Every BambooHR API call and OAuth token endpoint must include the customer's unique subdomain (e.g., acme in acme.bamboohr.com). ml-connector stores this per customer and includes it in every request. BambooHR access tokens expire after 1 hour, and ml-connector refreshes them automatically before expiry using the refresh token issued at initial authentication.
- Why do NAV webhook subscriptions need renewal, and what happens if they expire?
- Microsoft Dynamics NAV webhooks expire after 3 days and must be renewed before that window closes or they stop firing and notifications are lost. ml-connector tracks subscription expiry dates and renews them proactively. If renewal fails or expiry is not caught, ml-connector can switch to polling mode to catch missed changes, and the audit trail shows the gap so no employee record is silently skipped.
Related integrations
More Microsoft Dynamics NAV integrations
Other systems that connect to BambooHR
Connect Microsoft Dynamics NAV and BambooHR
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started