Feature Request: Assignable “Receiving Party” Role for True PO 3-Way Match in Construction Use Case

We’ve been actively using the Procurement module and appreciate the structure it brings to our process. However, we’ve identified a key limitation that affects internal controls — particularly in our construction environment where procurement, accounting, and field receiving are handled by separate teams.

Currently, only the PO submitter, AP Clerks, or Admins can complete the “Receive” step. This limits our ability to fully implement a true 3-way match process. (from what help side shows I believe I’m correct here) In an ideal workflow:

  1. Procurement (typically the PM or office team) creates and submits the PO
  2. Accounting verifies the invoice matches the PO and processes the bill
  3. Receiving (usually the construction site or field team) confirms materials were received in full and in good condition
    Final: Upon all above matching, payment released.

The problem is that if the submitter marks the items as received, it breaks the third layer of control — we lose the independence of having someone else in the field validate that the delivery actually occurred and matched the PO. And if your construction team is separate from your procurement team, there’s currently no way to allow them to perform that final check in ramp without giving them broader permissions.

We’d love to see a feature that allows assignment of a specific “Receiving Party” during PO creation. This would allow field personnel to confirm receipt, while still keeping procurement and accounting functions separate — a critical control for larger or more regulated operations.

Is this enhancement currently being considered? Would love to hear thoughts from other teams handling field-heavy workflows if they have found work arounds that suffice.

2 Likes

Thanks for the thoughtful request, James! I shared it with our Procurement team, and they really appreciate the feedback.

Let me know if you / others have additional thoughts on this! :point_down: