Short Answer
Users achieve a touchless workflow where low-value bills sync instantly, while high-value items are routed for approval and automatically tagged with the correct Xero Tracking Categories based on the supplier detected.
The Problem
Generic native integrations often lack the granularity to handle high-value approvals or complex tracking category assignments. Without an automated intermediary, finance teams must manually monitor Dext for large expenses and manually assign project codes in Xero to ensure reporting accuracy.
The Outcome
Users achieve a touchless workflow where low-value bills sync instantly, while high-value items are routed for approval and automatically tagged with the correct Xero Tracking Categories based on the supplier detected.
Step-by-Step Guide
1. **Authenticate Source**: Log into Zapier and create a new Zap. Select **Dext** as the Trigger app and choose the event **Item Ready (Purchases)**. Connect your Dext account using your API credentials.
2. **Configure Trigger**: Select your Dext account and profile. Ensure the 'Status' filter is set to 'Ready' to avoid pulling in incomplete extractions.
3. **Sanitize Data (Formatter)**: Add a **Formatter by Zapier** step (Numbers -> Currency). Map the 'Total Amount' from Dext to ensure Zapier reads it as a standard decimal for the next filtering step.
4. **Add Conditional Logic (Filter)**: Drag in a **Filter by Zapier** step. Set it to 'Only continue if [Step 3 Number] is greater than 1000'. This isolates high-value invoices.
5. **Dynamic Project Mapping (Storage/Lookup)**: Add a **Formatter by Zapier** (Utilities -> Lookup Table). Map the 'Supplier Name' from Dext. In the table, enter common suppliers on the left and their corresponding **Xero Tracking Category IDs** on the right.
6. **Create Approval Step (Optional)**: Add a **Mail by Zapier** or Slack step to notify a manager. Use a 'Filter' or 'Paths' if you only want this to run for specific departments.
7. **Connect Xero**: Add the **Xero** app with the action **Create Purchase Bill**. Authenticate your Xero Organization.
8. **Map Required Fields**: Map 'Supplier' to 'Contact Name', 'Date' to 'Date', and 'Total Amount' to 'Line Amount'. Use the output from Step 5 to populate the Xero Tracking Categories.
9. **Attach Source Document**: Scroll to the bottom of the Xero action and map the 'Image URL' from Dext into the 'File Attachment' field to ensure the audit trail is preserved.
10. **Enable Duplicate Protection**: In the Xero 'Reference' field, map the Dext 'Invoice Reference' or 'Dext Item ID'. Xero will use this to prevent creating the same bill twice.
Data Mapping
| Dext Source Field | Zapier Transformation | Xero Destination Field | Requirement |
| :--- | :--- | :--- | :--- |
| **Supplier Name** | Lookup Table (ID Mapping) | Contact | Required |
| **Total Amount** | Formatter (Numbers) | Line Amount | Required |
| **Invoice Reference** | None | Reference (Used for Dedupe) | Required |
| **Item Image URL** | None | File Attachment | Optional |
| **Description** | Default: 'Dext Import' | Line Description | Optional |
| **Tax Amount** | Formatter (Numbers) | Tax Amount | Required |
| **Due Date** | Formatter (Date/Time) | Due Date | Optional |
Gotchas & Failure Modes
• **Task Usage**: Every step in a Zap (Filter, Formatter, Xero) counts as a task. Multi-step Zaps can consume monthly quotas quickly; use 'Paths' sparingly.
• **Date Formats**: Dext may provide various date formats. Always use **Formatter by Zapier (Date/Time)** to convert to `YYYY-MM-DD` to prevent Xero 'Validation Error' crashes.
• **Polling Delay**: Depending on your Zapier plan (Starter vs Pro), it may take 2-15 minutes for a 'Ready' document in Dext to trigger the Zap.
• **Contact Matching**: If a Supplier Name in Dext has a trailing space (e.g., 'Apple '), Xero might create a duplicate contact instead of matching the existing 'Apple'. Use Formatter (Text -> Trim) on the Supplier name.
• **API Rate Limits**: Xero limits Zaps to 60 calls per minute. If bulk-publishing 100+ items from Dext at once, some Zap runs may throttle.
Verification Checklist
- [ ] **Test Trigger**: Run the 'Test Trigger' in Zapier and ensure the 'Total Amount' is pulled as a number.
- [ ] **Validate Loopup**: Ensure the Formatter Lookup Table correctly outputs a Xero GUID when a known supplier is passed through.
- [ ] **Check Xero Drafts**: Run a test action and verify the bill appears in Xero under 'Purchases' -> 'Draft' (never test directly to 'Awaiting Payment').
- [ ] **Deduplication Check**: Try to run the same test twice; verify that Zapier/Xero throws a 'Reference must be unique' error or prevents the second create.
- [ ] **Attachment Check**: Open the draft bill in Xero and verify the side-panel image preview is visible.
Ready to Automate?
Build this automation with Zapier in minutes.