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:
Review and adjust permissions for all users involved.
Create a custom field for invoice status.
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:
Finalize invoices
Copy invoices to the Accounting system
Send invoices
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:
Click + Add new custom field
Select Single-select as the field type
Name it Invoice Status
Add the three status options listed above
Optionally, assign colors to each status for easier visual identification
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







