Skip to main content

Building Invoice Approval Flow

Build an invoice approval flow with custom fields and automations. Ensure invoices are reviewed before being sent to clients.

Updated this week

This article explains how to build a simple two-step invoice approval flow using custom fields and automations. The flow ensures that invoices are reviewed by appropriate stakeholders before being finalized and sent.

This scenario requires a Professional or Ultimate plan as it relies on using invoice custom fields and automations in its workflow.

This approval workflow typically includes two roles:

  • Project Manager (PM) – Creates the invoice draft and initiates the approval process.

  • Approver – Performs final review, then finalizes and sends the invoice.

To implement this flow, you'll need to:

  1. Review and adjust permissions for all users involved.

  2. Create a custom field for invoice status.

  3. Set up automations to notify approvers via email or Slack.

πŸ“Œ Note: This flow demonstrates a 1-person approval process, but you can adapt it for 2, 3, or more approvers by adding additional statuses in the invoice custom field and building more notification automations.

Flow Breakdown

Here's how the imagined approval process works step by step:

Step 1: PM Creates the Draft

The Project Manager drafts the invoice at the appropriate time in the project's lifecycle. Once ready for review, they change the Invoice Status custom field to Pending Approval.

  • This triggers the first Automation, which sends a notification to the Approver.

Step 2: Approver Reviews

The approver reviews the invoice. They can take one of two actions:

If approved:

  • Change status to Approved.

  • Approver can now finalize the invoice and send it to the client.

If not approved:

  • Change status to Not Approved.

  • This triggers the second Automation, notifying the PM that their invoice is rejected.

  • It's recommended (though not mandatory) to leave a comment explaining the reason.

Required Permissions

All users involved in the approval flow need the following permissions:

  • View budgets where a user is a member

  • View invoices and payments where a user is a member on a budget

The Project Manager (or whoever drafts the invoice) also needs:

  • Add, edit, and delete draft invoices

The last person in this approval flow is expected to finalize, send, or copy the invoice to your accounting integration. For this, they need the following permissions:

If you don't use custom permission sets, all listed permissions are included in the following default permission sets:

  • Manager

  • Manager (with restricted access)

  • Profitability Manager

  • Profitability Manager (with restricted access)

  • Admin

πŸ“Œ Note: For a detailed breakdown of what each invoicing permission controls, see Custom Invoicing Permissions.

Custom Field Setup

The invoice status field is crucial for tracking the invoice through the approval process and triggering automations.

To create a new custom field, go to Settings > Custom Fields. Find the Invoices section, and select + Add new custom field.

Field type: Single-select
​Field name: Invoice Status
​Options:

  • Pending Approval

  • Approved

  • Not Approved

Setup steps:

  1. Click + Add new custom field

  2. Select Single-select as the field type

  3. Name it Invoice Status

  4. Add the three status options listed above

  5. Optionally, assign colors to each status for easier visual identification

  6. Click Create field

Building the Automations

You'll need to create two automations to handle notifications at each stage of the approval process.

To create an automation, go to Settings > Automations and click + New Automation.

πŸ“Œ Note: For a more detailed guide on how to build automations, see the article Automations: General Overview.

Automation 1: Pending Approval Notification

This automation will notify the approver when a new invoice needs review.

When (Trigger):

  • Select Invoice updated

Check if (Condition):

  • If Invoice Status is Pending Approval

Then (Action):

  • Send email (or Send Slack message if preferred)

  • To: Specify a static email address or select a specific person for the approver

  • Subject: Invoice Ready for Review

  • Body: Include relevant invoice details such as invoice number, client name, amount, and a link to the invoice

πŸ“Œ Note: You can use dynamic fields in your email or Slack message body to automatically populate invoice details.

Automation 2: Not Approved Notification

This automation will notify the PM when the invoice is rejected by the Approver.

When (Trigger):

  • Select Invoice updated

Check if (Condition):

  • If Invoice Status equals Not Approved

Then (Action):

  • Send email (or Send Slack message)

  • To: Use the dynamic field Creator to send the notification to the person who originally drafted the invoice

  • Subject: Invoice Not Approved

  • Body: Include a message and invoice details, same as in the first automation

Did this answer your question?