A seamless, real-time workflow where Shopify orders generate Xero contacts and invoices automatically. You achieve 100% accurate financial records, real-time tax liability tracking, and automated inventory adjustments within your accounting ledger.
The Problem
E-commerce merchants often struggle with manual data entry between Shopify and Xero, leading to human error, mismatched tax reporting, and delayed financial visibility. This automation ensures every sale is accounted for accurately without manual intervention.
The Outcome
A seamless, real-time workflow where Shopify orders generate Xero contacts and invoices automatically. You achieve 100% accurate financial records, real-time tax liability tracking, and automated inventory adjustments within your accounting ledger.
Step-by-Step Guide
1. **Create Scenario**: Log into Make.com, click 'Create a new scenario', and name it 'Shopify Orders to Xero Invoices'.
2. **Configure Shopify Trigger**: Add the **Shopify > Watch Orders** module. Select 'Webhooks' as the connection type. Add a new webhook, connect your store, and set the status to 'paid' to ensure only finalized orders sync.
3. **Search for Existing Contact**: Add the **Xero > Search Contacts** module. Map the `Customer: Email` from Shopify to the 'Email Address' field in Xero to prevent duplicate records.
4. **Add Router (Optional)**: If you want to handle guest checkouts differently, add a Router. Otherwise, proceed to contact logic.
5. **Conditional Contact Creation**: Add a **Xero > Create a Contact** module. Set a Filter between the Search and Create modules where 'Contact ID' from the search results `Does not exist`. Map name, email, and address fields.
6. **Map Line Items**: Add an **Iterator** module if you have complex orders, though the Xero 'Create Invoice' module in Make.com natively handles arrays. Map the `Line Items` array from Shopify to the Xero Invoice 'Line Items' section.
7. **Create Invoice**: Add the **Xero > Create an Invoice** module. Map `Order Name` to 'Invoice Number', `Total Price` to 'Amount', and use the `Contact ID` from the previous steps.
8. **Apply Tax Rates**: Use a `switch()` function in the mapping to convert Shopify Tax Titles (e.g., 'State Tax') to your specific Xero Tax Type codes (e.g., 'OUTPUT').
9. **Record Payment**: Add the **Xero > Create a Payment** module. Link it to the Invoice ID created in step 7 and map it to your 'Shopify Clearing' bank account in Xero.
10. **Error Handling**: Right-click the Xero modules and select 'Add error handler'. Use the **Break** directive to store the execution and allow for manual retries if the Xero API is down.