Visma and Zendesk integration
Visma runs your accounting and customer data. Zendesk handles customer support tickets. Connecting them keeps your support team aware of customer financial standing and open invoices while resolving ticket issues. New customers and credit changes in Visma are reflected in Zendesk so agents see full context before responding. Customer master data stays synchronized and AR aging is available at a glance.
What moves between them
The main flow runs from Visma into Zendesk. After initial load, ml-connector polls Visma for customers and open invoices on a schedule aligned to your billing cycle or daily. Customer records are upserted into Zendesk as organizations with custom fields for credit limit, outstanding balance, and AR aging. Changes to a customer's credit standing are pushed to Zendesk so agents see current status. Invoice and AR data are stored as custom fields on the customer organization so support agents can reference open invoices and payment status without leaving Zendesk.
How ml-connector handles it
ml-connector stores the OAuth 2.0 credentials for both systems encrypted and uses the Visma OAuth client credentials grant with the tenant_id and ipp-company-id header on every call. Because Zendesk OAuth tokens do not expire, the Zendesk credential is static once granted. Since Visma webhooks offer one-time delivery with no retry, ml-connector polls Visma customers and invoices on a schedule rather than relying on webhooks, and it can optionally subscribe to Visma webhook notifications as a redundant trigger. Zendesk organizations are the target container for customer records, and custom fields track credit limit, balance due, oldest invoice, and AR days. The integration maps Visma customer dimensions to Zendesk organization custom fields and deduplicates on the Visma customer ID. Polling includes a lastModifiedDateTime query to pull only changed records since the last run, reducing API load on both sides. Rate limits are respected on both platforms with standard exponential backoff.
A real-world example
A Nordic software vendor uses Visma for billing and AR, and Zendesk for customer support across multiple markets. Before the integration, support agents handled billing questions by asking customers to check their account status or pulling up Visma manually in a separate browser tab, slowing ticket resolution. With Visma and Zendesk connected, each customer's organization in Zendesk displays credit limit, outstanding balance, oldest unpaid invoice, and AR aging in a custom field visible on every ticket. Agents can now see at a glance whether a high-priority issue is coming from a customer in good standing or a customer with overdue invoices, and they can address billing concerns directly during ticket resolution without context switching.
What you can do
- Sync customer records from Visma into Zendesk organizations, keeping name, address, and custom credit attributes in sync.
- Display outstanding balance, credit limit, and AR aging on customer organizations so support agents see credit standing during ticket handling.
- Map Visma customer dimensions and attributes to Zendesk organization custom fields without manual configuration.
- Poll Visma on a schedule with delta queries to load only changed customer and invoice records since the last run.
- Maintain a full audit trail of every sync run and support replay of failed customer or invoice records.
Questions
- What customer and invoice data moves from Visma to Zendesk?
- Customer records (name, address, contact email, credit limit) and open AR records (outstanding balance, oldest invoice, days overdue) are synced from Visma into Zendesk organizations and custom fields. Zendesk does not have native invoice entities, so invoice details are stored as structured data in organization custom fields that support agents can read during ticket handling.
- How does the integration handle Visma's webhook one-time delivery and Zendesk's lack of invoice records?
- Because Visma webhooks do not retry automatically, ml-connector polls Visma customer and invoice endpoints on a schedule using lastModifiedDateTime queries to fetch only changed records. Zendesk has no native invoice or AR objects, so the integration stores invoice data as custom fields on the customer organization, making it visible to agents without requiring a separate lookup.
- What authentication is required for Visma and Zendesk?
- Visma requires OAuth 2.0 client credentials with client_id, client_secret, tenant_id, and ipp-company-id header on all calls. Zendesk requires OAuth 2.0 authorization code flow with client_id, client_secret, and access_token for the customer subdomain. ml-connector stores both credential sets encrypted and handles token refresh for Visma.
Related integrations
More Visma integrations
Other systems that connect to Zendesk
Connect Visma and Zendesk
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started