Automate Squarespace Orders to Xero Invoices & Payments (Make.com)

Eliminate manual bookkeeping by automatically syncing Squarespace sales data to Xero via Make.com.

Tools: SquarespaceXero

Platform: Make.com

Short Answer

A seamless, real-time workflow where every Squarespace order generates a matched contact, a detailed invoice with multiple line items, and an applied payment in Xero, ensuring your books are always up-to-date.

The Problem

Manual entry of Squarespace orders into Xero is time-consuming and prone to human error, specially when dealing with multiple line items, tax adjustments, and payment reconciliation. Without automation, real-time financial reporting is impossible.

The Outcome

A seamless, real-time workflow where every Squarespace order generates a matched contact, a detailed invoice with multiple line items, and an applied payment in Xero, ensuring your books are always up-to-date.

Step-by-Step Guide

1. **Create New Scenario**: Log into Make.com, click 'Create a new scenario', and name it 'Squarespace to Xero Financial Sync'. 2. **Configure Squarespace Trigger**: Add the **Squarespace** module and select the 'Watch Orders' trigger. Click 'Add' to create a Webhook. You must copy the URL and paste it into Squarespace under Settings > Advanced > Developer Tools > Webhooks. 3. **Search for Existing Xero Contact**: Add a **Xero** 'Search Contacts' module. Map the Squarespace `customerEmail` to the 'Email' filter. This prevents duplicate contacts. 4. **Add a Router**: Add a **Router** module. If the search returns a result, use the `ContactID`. If not, add a 'Create a Contact' module using the `fullName` and `email` from Squarespace. 5. **Handle Multiple Line Items**: Add an **Iterator** module. Map the `lineItems` array from the Squarespace trigger so Make.com can process each product in the order individually. 6. **Map Line Items to Array**: Use an **Array Aggregator** after the iterator. Set the 'Target Structure' to the Xero 'Line Items' format. Map `description`, `quantity`, and `unitPrice` from the Iterator. 7. **Create Xero Invoice**: Add the **Xero** 'Create an Invoice' module. Map the `ContactID` from step 4 and use the aggregated array from step 6 for the line items. Set the status to 'AUTHORISED' or 'DRAFT'. 8. **Apply Payment (Optional)**: If the order is paid, add a **Xero** 'Create a Payment' module. Map the newly created `InvoiceID`, the total amount, and the specific Xero 'Bank Account' ID where the funds are deposited (e.g., Stripe Clearing Account). 9. **Configure Error Handling**: Right-click the Xero modules and select 'Add error handler'. Use a 'Break' or 'Ignore' directive to ensure the scenario doesn't stop if a single order has a data validation issue.