Automated Sales Invoicing from Google Sheets to Xero (Zapier)

Eliminate manual data entry by converting Google Sheet rows into professional Xero draft invoices automatically.

Tools: Google SheetsXero

Platform: Zapier

Short Answer

A seamless workflow where marking a row as 'Approved' in Google Sheets triggers the creation of a contact and a draft invoice in Xero, ensuring 100% data accuracy and faster payments.

The Problem

Sales teams often track deals in spreadsheets, requiring accounting teams to manually re-type data into Xero for invoicing. This double-entry leads to typos, delayed billing cycles, and mismatched financial records.

The Outcome

A seamless workflow where marking a row as 'Approved' in Google Sheets triggers the creation of a contact and a draft invoice in Xero, ensuring 100% data accuracy and faster payments.

Step-by-Step Guide

1. **Create the Zap**: Log into Zapier and click 'Create Zap'. Name it 'Sheet Row to Xero Invoice'. 2. **Setup Trigger**: Choose **Google Sheets** and the event **Updated Spreadsheet Row**. Select your Spreadsheet and Worksheet. Set the 'Trigger Column' to your Status column (e.g., 'Status'). 3. **Add Filter**: Add a **Filter by Zapier** step. Configure it to only continue if 'Status' (from Step 2) exactly matches 'Approved'. 4. **Search/Create Contact**: Add a **Xero** action: **Find Contact**. Search by 'Contact Name' or 'Email'. Check the box 'Create Xero Contact if it doesn't exist yet' and map the Sheets name/email fields. 5. **Format Line Items (Optional)**: If your sheet doesn't have prices formatted as decimals, add **Formatter by Zapier** (Numbers > Currency) to ensure the value is Xero-compliant. 6. **Create Invoice**: Add another **Xero** action: **Create Type: Outbound Invoice**. - Map 'Contact ID' from Step 4. - Set 'Status' to 'Draft'. - Map 'Line Item Description', 'Quantity', and 'Unit Amount' from the Sheet. - Assign 'Account Code' (e.g., 200 for Sales). 7. **Write Back to Sheet**: Add a **Google Sheets** action: **Update Spreadsheet Row**. Use the Row ID from Step 2 and update a 'Xero Invoice ID' column with the ID generated in Step 6. This prevents duplicates.