- Home
- Resources
- Integrations
- Expensify
Expensify Zapier integrationAutomate Expensify with Zapier.
The Expensify Zapier integration gives you 1 trigger, 4 actions and 1 search. Enough to catch every new expense report, file a PDF copy, log a single expense from another tool, and look a report up by its number. It sits on paid plans only.
Premium app Zapier reserves this app to its paid plans.
Verified Trustpilot reviews · AI, automation & growth agency
What the Expensify Zapier integration actually does
The Expensify Zapier integration links your Expensify account to Zapier, so that a new report or a new expense in one place sets off work in another without you copying anything by hand. Expensify is a premium app on Zapier: you need a paid plan or a free trial before the first Zap will run.
Three results come up again and again. A PDF archive of every report: New Report starts the Zap, Export Report to PDF builds the document, receipts included if you ask. Expenses that log themselves: Create Single Expense writes one line, merchant, date and amount, for an employee, from whatever tool first captured the spend. Reports opened for you: Create Expense Report prepares an empty report under the right policy, so a trip or a project starts with its own container.
Now the honest part. There is no trigger for a new single expense, only for a new report. Nothing in the list approves, submits or deletes a report. And the only trigger is a polling one, so a report shows up in your Zap after Zapier's next check, never the second it is created. To weigh other tools before you commit, the Expensify Make integration covers the same app on Make, and there is also our Make vs Zapier comparison.
Zapier vocabulary in one minute
Seven words come back on every line of this page. Here they are in plain English.
- Zap
- The automation you build on Zapier: one trigger, then one or more actions that run each time the trigger event happens.
- Trigger
- The event in an app that starts the Zap. Once the Zap is switched on, Zapier sits and waits for it.
- Action
- What the Zap does once it has started: the step that writes, sends or moves something on your behalf.
- Task
- The unit Zapier bills you for: one action your Zap completes successfully. The number on your plan counts those.
- Polling vs instant
- A polling trigger is checked on a timer, Zapier asks the app for new items. An instant one is reported by the app the moment it happens.
- Filter
- A step that lets the Zap carry on only when what arrived meets your condition, and stops it quietly otherwise.
- Search step
- A step that looks up something already stored in an app, so the steps after it can reuse what it found.
What an Expensify Zap really costs
Zapier bills tasks, and the trigger is free. Checking Expensify for new reports costs nothing, however often Zapier looks.
- Trigger checkFree, never billed
- Successful action1 task each
- Failed actionNot counted
- Plan neededPaid plan or free trial (premium app)
Each action that succeeds counts as one task, so a Zap with a filter and two actions can eat two tasks per report. A failed action is not counted. The catch here: Expensify is a premium app, so the free plan (100 tasks a month, two-step Zaps, checks every 15 minutes) cannot run it at all. A filter or a search also makes a Zap multi-step, another paid-plan feature.
Put simply: budget one task per report for a one-action Zap, and size the paid plan on how many reports your team files in a month.
Connect Expensify to Zapier in 3 steps
- 01
Open your Zapier apps
In Zapier, go to the Apps page of your account and click + Add connection. A connection is your Expensify account linked once to Zapier, then reused by every Zap that touches it.
- 02
Pick Expensify
Type Expensify in the search box of the dialog, select it, then click Add connection. You need an Expensify account first, plus access to any report or policy you do not own and want the Zap to touch.
- 03
Sign in and allow access
A new tab opens on Expensify. Sign in with the account the Zaps should act for, then grant Zapier access. From then on, every Expensify step in any Zap can pick this connection.
Your first Zap: every new report filed as a PDF
GoalA finance lead at a small US consulting firm wants a PDF of each expense report whose title names a client, ready for rebilling, without logging in to Expensify.
- 01
Build: pick the trigger
Start a new Zap, choose Expensify as the app and New Report as the event, then select the connection you just made. This is the event that wakes the Zap up.
- 02
Test the trigger
Run the test. Zapier brings back the three most recent reports of the connected account, so you map the next steps on a real one instead of guessing.
- 03
Add a filter
From the plus icon, add Filter, then fill the three boxes: the report title, a text rule such as contains, and the client name. A number rule on a title never passes.
- 04
Add the PDF action
Add Expensify again, event Export Report to PDF. Map the Report ID from the trigger into the Report ID field and decide whether full-page receipts go into the file.
- 05
Test, then Publish
Test the action and open the PDF it produced. If it looks right, click Publish. The Zap only handles reports created after that moment, not the ones already in Expensify.
The Expensify trigger
1 event starts a Zap when something happens in Expensify. Zapier checks for them at the interval your plan allows.
New Report
Polling triggerIn Zapier“Triggered when a new report is created.”
Each time a new expense report appears in the connected Expensify account, this trigger hands it to your Zap, and everything after it runs once for that report. It is the only Expensify trigger, so most automations on this page start here.
Expensify actions, grouped by what they do
Expensify gives you 4 actions. For each one: what it does for you, when to reach for it, and what to watch out for.
Operations index
Create Expense Report
ActionIn Zapier“Only for Expensify Premium users! Creates a new expense report.”
Opens a fresh, named report in Expensify for an employee, so the expenses of a trip or a project have somewhere to land.
Create Single Expense
ActionIn Zapier“Creates a single expense item.”
Writes one expense line for an employee: who spent, at which merchant, on what date and for how much.
Export Report to PDF
ActionIn Zapier“Given a Report ID (from a trigger), export that report to a PDF document.”
Turns an existing report into a PDF document, with the option of adding full-page receipts to the file.
API Request (Beta)
ActionIn Zapier“This is an advanced action which makes a raw HTTP request that includes this integration's authentication.”
The escape hatch: a raw request to Expensify that reuses the connection you already set up, for anything the ready-made actions skip.
The Expensify search
1 search step looks for data that already exists in Expensify, so a later step can use it.
A search step finds a report that already exists and passes it on. In the editor, searches sit at the bottom of the Action event list, under the SEARCH heading. Three settings decide what happens when the result is not the one you expected.
Find Report
SearchIn Zapier“Retrieves a specific expense report, using the report's number.”
Fetches one specific expense report from its number, so later steps can read it or export it.
The three settings every search exposes
- Successful if no search results are found?Left as it is, a search that finds nothing stops the Zap there and skips the steps that needed it. Switched on, the Zap goes on empty-handed.
- Create X if it doesn't exist yet?This box turns a search into find-or-create. Expensify offers no such variant on Find Report, so you will not see it here.
- If multiple search results are found?Three ways out: keep the first match (the default), stop the Zap, or pass every match on at once.
When an Expensify Zap breaks
Zapier links no help article to Expensify, so the traps below are the ones every Zap runs into.
Four cases cover most of the surprises. None of them shows up while you build, which is exactly why they are worth reading now. If one has already bitten, our Zapier troubleshooting page walks through the fixes.
Old reports are ignored
A Zap only reacts to what happens after you publish it. Reports already sitting in Expensify are never picked up; moving that backlog is a separate job.A Zap that feeds itself
If a Zap creates reports in the same account its New Report trigger watches, it sets itself off again and again and drains your tasks fast.A bulk import held back
After a migration or a mass import, the trigger may suddenly return a huge batch. Zapier's flood protection can hold that batch instead of running it.Duplicates are not your fault
Zapier remembers which reports it has already seen on this polling trigger, so the same report never starts the Zap twice.
Need help automating Expensify with Zapier?
A person reads every message.



