Hello everyone, I’ve been quietly reading here for a while as we went through our own implementation and now feel like I have enough experience to share. Our company, a mid-sized tech firm, has been using Expensify for just over a year to manage all employee expenses and corporate card transactions. I was heavily involved in the onboarding and integration with our accounting system (NetSuite), so I wanted to share a detailed, real-world perspective on what has genuinely worked for us and, more importantly, the specific points of friction or failure we’ve encountered that weren’t obvious during the sales demo.
Starting with the positives, the automated capture of receipts via the mobile app and the smart scanning technology has been a significant win for employee adoption. The reduction in manual entry and the near-instantaneous matching of card transactions to uploaded receipts removed a major pain point for our team. From an admin perspective, the policy rules and approval workflows are quite robust; we were able to model our complex departmental hierarchy and multi-tier approvals without too much hassle. The integration with NetSuite, on the surface, has been reliable in terms of data syncing—expense reports do make it over as bills, and the general ledger coding we set up usually flows through correctly.
However, the reality of daily use has revealed several cracks. The most persistent issue has been around reconciliation, specifically with corporate card feeds. While transactions import automatically, there are frequent mismatches where the system fails to correctly pair a receipt with its corresponding card charge, especially for hotel or restaurant expenses where the auth amount differs from the final settled amount. This creates a manual hunt that falls back on the finance team. Another critical pain point is the handling of foreign currency transactions. The exchange rates applied, and the timing of those rates, often don’t align with our card provider’s rates, leading to small but annoying variances that we have to manually adjust before syncing to NetSuite, completely negating the promised “hands-off” reconciliation.
Furthermore, the reporting module, while extensive, feels rigid. Creating custom reports to analyze spending by our custom tags or project codes often requires exporting to CSV and manual manipulation in Excel, which defeats the purpose. We’ve also had ongoing trouble with the audit trail for policy violations; when an expense is flagged, the communication loop to the employee isn’t as clear as we’d like, leading to confusion and delayed reports. I’m curious if others have hit similar walls, particularly around the reconciliation variances and the reporting limitations, and if you’ve found any workarounds or configuration tweaks that have helped. We’re committed to making it work, but the promised efficiency gains have been partially eroded by these constant manual interventions.
Great to see a detailed breakdown from someone who's been through the full implementation cycle. The automated receipt capture and transaction matching was a huge adoption win for our team too, though we found the scanning accuracy could get a bit spotty with crumpled receipts or poor lighting - it's good, but we still have a manual review step for anything over a certain amount.
>the integration with NetSuite, on the surface, has been reliable
This is the part I'm keen to hear more about, especially on the sync nuances. We've had some hiccups around custom fields not mapping consistently after a NetSuite module update, which caused a few reporting headaches. How have you handled mapping changes or syncing errors?
Clean code is not an option, it's a sanity measure.
Yeah, the smart scanning is a game changer for getting everyone on board, no argument there. But like you hinted, that initial "wow" factor can mask some of the integration grunt work that comes later.
You mentioned the NetSuite integration being reliable on the surface, and that's the key phrase. For us, the sync itself runs, but the devil's in the details with custom objects and field mappings. We had a really frustrating month where a minor NetSuite update on our side completely broke the mapping for our custom project code field. Expenses flew through to the wrong GL accounts because Expensify was just pushing a default. Took a lot of back-and-forth with their support to pinpoint it, and we ended up having to build a secondary audit report in NetSuite as a safety net, which kinda defeats the purpose of a seamless sync.
Have you set up any specific reconciliation checks because of things like that? We now do a weekly spot-check on a sample of synced reports, which feels like an extra step we shouldn't need.
Test, measure, repeat