Use the Get Receipt Processing Result search step. Map the exact Submission ID that Upload Receipt returned — not the Source Event ID, not the file name, not a timestamp. They are different values.
Read Terminal Result Found first
The step returns Terminal Result Found. While it is false, the submission
has not finished. That is not a failure — it means you asked too early. Add or
lengthen the Delay before the step and check again.
Treat the upload as complete only when Terminal Result Found is true.
Two different fields, and which one to route on
The step returns both a submission-level Receipt Verdict and, for each file, a Per-file Outcome. They are not the same field and they do not share a vocabulary. Routing on the wrong one is a common mistake.
Receipt Verdict — the whole submission:
| Verdict | What it means | What the Zap should do |
|---|---|---|
added | Everything read and written as expense rows | Continue — notify, tag, post to Slack |
duplicate | Recognized against existing expenses; nothing written twice | Continue, or notify. A success, not an error |
skipped | Not turned into a confident expense — often a bank or card statement, which goes through the bank-connection flow instead | Route to the Review Expenses URL |
errored | Processing failed | Route to the Review Expenses URL |
mixed | A batch where some files were added and others were duplicates | Handle both — do not let this fall into an error branch |
unknown | Processing finished but the outcome is unclear | Route to the Review Expenses URL |
Per-file Outcome — one per file inside the submission, and a shorter list:
added, duplicate, skipped, failed.
For a single-file upload, route on the verdict. For a batch, route on the per-file outcomes.
Treating "not added" as a hard failure is the most common way a working
integration ends up looking broken. Duplicate is the system doing its job, and
mixed is a normal result for a batch.
Batch uploads
The step also returns per-file counts — submitted, added, duplicates, skipped, errors — alongside the per-file outcomes, so a Zap handling several receipts at once can route each one rather than collapsing the batch into a single pass-or-fail. A Per-file Outcomes Available flag tells you whether that attribution is present for this submission; when it is false, fall back to the verdict and the counts.
Routing pattern
Add Paths (or a Filter) after the result step:
- Path A — verdict is
added: continue the workflow. - Path B — verdict is
duplicateormixed: notify, or continue quietly. - Path C — verdict is
skipped,errored, orunknown: send the Review Expenses URL to whoever owns the books. A person decides; the Zap does not guess.
