Automated High-Value Invoice Approval and Xero Posting (Zapier)

Streamline accounts payable with automated approvals and precise document synchronization.

Tools: DextXero

Platform: Zapier

Short Answer

Large invoices are automatically caught by Zapier, routed for approval via Slack, and only posted to Xero once authorized. This ensures 100% compliance with spending limits while attaching the original document PDF directly to the Xero transaction.

The Problem

Manual data entry from Dext to Xero often skips critical internal controls. Without a middle-layer automation, high-value invoices are published directly to the ledger without managerial oversight, posing a risk to cash flow management and audit trails.

The Outcome

Large invoices are automatically caught by Zapier, routed for approval via Slack, and only posted to Xero once authorized. This ensures 100% compliance with spending limits while attaching the original document PDF directly to the Xero transaction.

Step-by-Step Guide

1. **Authenticate Dext**: In Zapier, create a new Zap and select 'Dext' as the Trigger. Choose 'New Published Item'. Connect your account via OAuth2. 2. **Set Trigger Filters**: In the Dext account settings within Zapier, ensure the 'Type' is set to 'Costs' and 'Status' to 'Ready'. 3. **Add a Filter by Zapier**: Add a step and choose 'Filter'. Set the logic to: *Total* (Number) *Greater than* 1000. 4. **Add a Path (Optional/Pro)**: If you want to handle both high and low values, use 'Paths by Zapier'. Path A for < 1000 (Auto-post) and Path B for > 1000 (Approval). 5. **Format Data**: Add 'Formatter by Zapier' -> 'Date/Time'. Ensure the Dext date format matches Xero's requirement (YYYY-MM-DD). 6. **Create Approval Step**: Add 'Slack' action -> 'Send Approval Message'. Map the Dext Image URL so the manager can view the receipt before clicking 'Approve'. 7. **Search/Create Contact**: Add 'Xero' action -> 'Find Contact'. Use the 'Supplier Name' from Dext. Enable 'Create Xero Contact if it doesn't exist' to prevent errors. 8. **Create Bill in Xero**: Add 'Xero' action -> 'Create Bill'. Map the Supplier, Date, Due Date, and Line Items. Set 'Status' to 'Draft' or 'Awaiting Approval'. 9. **Handle File Attachment**: Add another 'Xero' step -> 'Upload File'. Use the 'Image Link' or 'PDF Link' binary from Dext and associate it with the 'Bill ID' created in Step 8. 10. **Error Handling**: Click the '...' on the Xero step and select 'Set up error handler'. Choose 'Zapier Manager' or a Slack alert to notify you if the Chart of Accounts code is missing or invalid.

Data Mapping

| Dext Field | Xero Field | Transformation / Logic | | :--- | :--- | :--- | | **Total Amount** | Total | `{{Amount}}` (Required) | | **Supplier Name** | Contact Name | Use 'Find Contact' search first | | **Date** | Date | Formatter: `YYYY-MM-DD` | | **Invoice Reference** | Reference | `{{Reference}}` (Duplicate Check Field) | | **Category** | Account Code | Map to Xero Chart of Accounts | | **Image URL** | File Attachment | Use 'Upload File' action with Bill ID | | **Currency** | Currency | Use 3-letter ISO code (e.g., USD, GBP) |

Gotchas & Failure Modes

• **Rate Limits**: Xero has a limit of 60 requests per minute. If bulk-publishing from Dext, add a 'Delay by Zapier' step (1-2 seconds) to avoid 429 errors. • **File Binaries**: Don't just map the URL to the 'File' field in Xero; use the Dext 'Source File' object or a dedicated 'Upload File' action to ensure the actual PDF is stored in Xero Files. • **Duplicate References**: Xero will error if an invoice reference already exists for that supplier. Use a 'Find Bill' step first to check for existing Reference Numbers. • **Draft vs. Approved**: Transactions sent to Xero via API often default to 'Draft'. Ensure your mapping explicitly sets the status to 'Awaiting Approval' if you want them to appear in the Xero approval queue.

Verification Checklist

- [ ] **Test Trigger**: Pull a 'Recent Item' from Dext in the Zapier Editor. - [ ] **Verify Formatter**: Check that the date output is exactly `YYYY-MM-DD` in the Data Out tab. - [ ] **Contact Check**: Ensure the 'Find Contact' step successfully finds an existing supplier without creating a duplicate. - [ ] **Attachment Verification**: Log into Xero and open the created Bill; verify the paperclip icon shows the Dext receipt PDF. - [ ] **Task History**: Check Zapier Task History to ensure the Filter correctly 'Stopped' Zaps under $1,000.

Ready to Automate?

Build this automation with Zapier in minutes.