AI Powered integration with expert operators

Microsoft Dynamics 365 and ZigZag

Integration Agency & Consultants

Manual returns processing often becomes a source of financial reconciliation debt as soon as daily volumes exceed a team's ability to cross-reference spreadsheets. When ZigZag manages the logistics, the return data must flow accurately into Microsoft Dynamics 365 to maintain inventory integrity and correct stock valuation. We focus on ensuring that Receive events and disposition details translate into reliable financial records, so your finance team stops chasing discrepancies and your ops team can trust the inventory levels shown in the ERP.

Castore
Lounge
Oliver Bonas
Green People
Tatty Devine
Cult
Audit returns workflows and ERP gaps

We swiftly connect Microsoft Dynamics 365 and ZigZag, ensuring your ERP and Returns processes work together efficiently. Our consulting services are invaluable, with our system audit uncovering integration gaps and inefficiencies between Microsoft Dynamics 365, ZigZag, and your wider ERP and Returns ecosystem. This empowers both our consultants and your team to take decisive action, keeping your technology running smoothly and efficiently. The result: a robust, well-aligned tech stack that helps you deliver an outstanding customer experience.

Solution Design

This architecture establishes Microsoft Dynamics 365 as the system of record for inventory valuation and ledger integrity. We configure ZigZag to own the physical return event and disposition logic, while D365 handles the resulting credit notes and stock adjustments. A primary design decision involves the timing of financial postings. In many setups, we recommend batching return journals in D365 rather than processing individual API updates. This choice balances the need for accurate reporting with the risk of reconciliation debt. While real-time updates provide immediate visibility, they can lead to fragmented ledger entries that are difficult for finance to audit at scale. By batching, we ensure that the ERP data remains validated and structured. This allows the operations team to move quickly in ZigZag while finance closes the month based on high-integrity data in Dynamics 365.

Mapping return dispositions to financial records

The integration synchronises returns data from ZigZag to Microsoft Dynamics 365 to maintain physical and financial accuracy. When a return is processed in ZigZag, it captures the disposition and condition, which then informs the creation of the appropriate return order or credit note in D365. We anchor the flow on unique identifiers to prevent duplicate credits. Monitoring is built into the process, surfacing exceptions where a product in ZigZag does not match the D365 item master or where a tax adjustment requires review. This ensures that the integration layer is policing the integrity of the inventory and financial records as returns flow back into the business.

Orchestrating secure flows via compliant middleware

Leveraging IPaaS with ISO 27001 and SOC 2 and above security accreditations, Microsoft Dynamics 365 and ZigZag are integrated efficiently and securely, supporting ERP and Returns processes. IPaaS enables Microsoft Dynamics 365 to connect with ZigZag, automating ERP and Returns data flows. This approach reduces manual effort, increases reliability, and ensures compliance, while maintaining robust security standards for all integrations. ZigZag and Microsoft Dynamics 365 benefit from simplified, secure connectivity.

Detecting inventory and tax reconciliation errors

Dashboards show that data is moving, but visibility requires knowing where it has failed to reconcile. We prioritise exception monitoring that flags discrepancies between ZigZag return notifications and D365 stock adjustments. If a return is processed but fails to post to the ledger, the system surfaces the error before it causes a month-end reconciliation gap. This proactive detection prevents hidden issues, such as mismatched tax rates or orphaned return records, from compounding over time. Our approach ensures that management can trust the inventory valuation in Dynamics 365 without having to verify every individual transaction in ZigZag.

Enable staff to resolve data exceptions

Handover focuses on the operational teams running the business. Finance, warehouse ops, and customer service teams learn to own the logic within the return process and the resulting D365 updates. We provide operational documentation that explains what to check at the end of each day to ensure stock levels match and how to interpret alerts from the integration layer. CX teams learn to identify refund status exceptions, while finance takes ownership of the reconciliation journals. This approach ensures your team identifies and resolves data mismatches before they compound. Documentation is written as a clear operational manual for human work, ensuring the team knows who owns each exception type.

Maintaining the financial and inventory link

Microsoft Dynamics 365 and ZigZag expertise ensure your production ERP and Returns processes are fully supported. With ERP and Returns support for Microsoft Dynamics 365 and ZigZag, you gain peace of mind, business continuity, and on-hand technical knowledge. This support keeps your systems running reliably, so you can focus on your business, knowing technical issues are swiftly addressed and your operations remain uninterrupted.

Integration operating model

In this model, ZigZag acts as the operational front-end for returns, while Microsoft Dynamics 365 serves as the single source of truth for stock value and availability. Customers initiate returns through the ZigZag portal, which orchestrates the carrier logistics. Once a return is processed, data flows into D365 to update inventory levels and adjust the general ledger. This removes the need for manual entries and ensures that the ecommerce team sees the same stock availability as the warehouse. The operating model is designed so that every return is traceable from the customer's portal request to the final credit memo in D365.

Common failures

Mismatched refund and stock receipt timing

Operational impact: ZigZag can trigger a customer refund at the first carrier scan, but the physical goods may not be processed and received into Microsoft Dynamics 365 for days or weeks. This creates a timing gap where a Credit Memo is posted long before the corresponding inventory adjustment. The finance team then struggles to reconcile the value of goods in transit during month-end close, as inventory journals do not align with payout records.

Prevention / Action: Decouple the refund action from the initial return acknowledgement. The integration logic should be configured to create the Credit Memo in Dynamics 365 only after receiving a definitive 'goods accepted' status from the warehouse via ZigZag. This ensures financial and inventory events post closely together, simplifying reconciliation. A clear exception process is needed for returns that are subsequently rejected at inspection.

Returned SKU not recognised by Dynamics 365

Operational impact: A return is processed by ZigZag for an SKU that is inactive, discontinued, or mismatched in Dynamics 365. The integration cannot post the inventory adjustment, leaving the return in a stuck state and the stock unaccounted for. This forces the CX or operations team to investigate the SKU, manually correct data in one of the systems, and re-process the return, delaying both the stock update and financial reporting.

Prevention / Action: Establish Dynamics 365 as the single source of truth for item master data, including the SKU and inventory status. The integration should validate every returned SKU from ZigZag against the active item list in D365 before attempting to process the record. Build a clear operational process for handling exceptions, such as returns for delisted items, and use monitoring to route these failures to the correct team.

Incorrect stock valuation from return disposition

Operational impact: The integration fails to correctly map ZigZag’s return disposition codes (e.g. 'Resellable', 'Damaged') to the correct inventory locations or valuation accounts in Dynamics 365. Consequently, damaged stock might be added back to the sellable stock pool, or written-off items are not correctly journalled. This corrupts inventory valuation data for the finance team and leads to fulfilment errors when unsellable items are picked for new Sales Orders.

Prevention / Action: During implementation, precisely define and test the mapping between every ZigZag disposition code and the corresponding inventory posting logic in Dynamics 365 (covering warehouse, location, and journal type). The integration must strictly enforce this routing. Regularly audit the mappings and create exception reports for any unmapped dispositions to prevent them from posting to a default, and likely incorrect, location.

Incomplete or failed return order creation

Operational impact: The integration fails to create the Return Order in Dynamics 365 because a key field is missing or invalid, such as the original Sales Order reference. The return exists in ZigZag but not in the ERP, meaning inventory is never updated and the financial value of the return is not credited. The fulfilment and finance teams operate with inaccurate stock levels and financial records until a manual audit discovers the discrepancy.

Prevention / Action: Design the integration to perform data validation before attempting to create the Return Order. Essential fields like the original Sales Order ID must be present and in the correct format. The integration should place any records that fail this validation into a separate error queue for review, rather than attempting repeated failed posts. This isolates problems and allows an operator to correct the source data without halting the entire sync process.

Frequently asked questions

How does the integration ensure returned stock is correctly valued in Microsoft Dynamics 365?

The integration uses return reasons and item condition data from ZigZag to correctly create credit notes and inventory adjustments in Microsoft Dynamics 365. This ensures returned stock is valued accurately on your balance sheet, reflecting its true worth. This process avoids the common problem where finance teams must perform manual journal entries to correct inventory valuation at month-end close.

What happens if our warehouse locations in Dynamics 365 don't match the locations used in ZigZag?

An exact match between the 'Warehouse' codes in Microsoft Dynamics 365 and the location identifiers in ZigZag is critical for stock synchronisation. If they do not match, the integration will fail to post stock adjustments for processed returns. This means your inventory levels in Dynamics 365 will become inaccurate, leading to a risk of overselling or showing restocked items as unavailable.

We process returns manually and it's causing stock discrepancies in Dynamics 365. How does the integration fix this?

The integration automates the creation of 'Return Orders' in Microsoft Dynamics 365 based on 'Receive' events from the ZigZag platform. This replaces the manual data entry that often causes delays and errors in updating inventory levels after a return is processed. As a result, your inventory record in Dynamics 365 accurately reflects available stock, improving trust in your core ERP data.

Can we still process a return for a SKU that has been marked as discontinued in Dynamics 365?

This is a common failure point that requires a clear process. If ZigZag attempts to process a return for a SKU that is inactive in the Microsoft Dynamics 365 item master, D365 will reject the transaction. This means the integration cannot automatically create the credit note or update stock, forcing your team to handle that specific return as a manual exception.

How does the integration handle non-physical charges like return fees in our financial records?

This requires specific configuration during setup to prevent financial reconciliation issues. A charge from ZigZag, such as a 'Return Fee SKU', must be mapped to a corresponding non-stock 'Service Item' record within Microsoft Dynamics 365. If this mapping doesn't exist, D365 will not recognise the charge, causing failures when attempting to post the credit note from ZigZag.

Get Started

We would love to hear about your brand and project