ScaleXP Invoicing can automatically update HubSpot deal stages based on invoice events such as creation, payment, or overdue status.
For example:
- Move deals forward when payment is received
- Flag overdue customers automatically
- Separate “Won” from “Paid”
- Trigger Customer Success or onboarding processes only after payment
This article describes how to set this up.
Option 1: Create Simple Automations using the ScaleXP Invoicing Dashboard
Go to your ScaleXP Invoicing Dashboard, Automation: https://app.scalexp-invoicing.com/automation
Here you can select a single deal stage for each invoice-related action.
Image

Option 2: Create Other Automations using HubSpot Workflows
How to create a Workflow automation in HubSpot
- Go to Automation → Workflows
- Create a Deal-based workflow (See the HubSpot Knowledge base for more info on adding Workflow actions.)
- Choose invoice-related properties as your trigger, for example:
- Invoice Status changes to “First Paid”
- Overdue Invoice Count > 0
- Invoice Status becomes “All Paid”
You can set the trigger to any of the properties above, but the most common one is to trigger on "property value changed" - and watch for the Invoice Status property. You can find out more about HubSpot workflow triggers here.
Next, we recommend you use the "Branch" function as your action, branching on the property "Pipeline". This will give you a branch of your workflow for each pipeline that you choose.
Then, simply add an action to each branch of your workflow to update the "Deal pipeline and stage" to the relevant value.


Using invoice-related Properties
ScaleXP Invoicing continuously updates a number of standard invoice-related properties in HubSpot deals.
You can use these properties as workflow triggers to update deal stages automatically
These properties include:
| Deal Property | HubSpot Internal name | Description |
|---|---|---|
| Invoice Status (e.g. Synced, First Paid, All Paid) | is_invoice_status | The current status of invoices linked to this deal |
| Invoice Total ex. tax | is_invoice_total | Total value, excluding tax, of all invoices linked to this deal, excluding deleted and voided |
| Overdue Invoices | is_overdue | Shows true if any invoice linked to this deal has a due date before today and is not marked as paid, excludes deleted and voided. Updated every 5 minutes. |
| Number of Invoices | is_number_of_invoices | The number of invoices linked to this deal, excluding deleted and voided |
| Number of Invoices Paid | is_number_of_invoices_paid | The number of invoices linked to this deal that have been marked as paid |
| Next Invoice Date | is_next_invoice_date | The invoice date of the earliest unpaid invoice linked to this deal. Note that this could be in the past if invoices are overdue. |
| Next Invoice Due Date | is_next_invoice_due_date | The due date of the earliest unpaid invoice linked to this deal. Note that this could be in the past if invoices are overdue. |
| Invoice Numbers | is_invoicenumbers | Comma separated list of invoice numbers generated for the deal |
| Overdue Total | is_overduetotal | Value of invoices marked as overdue, ex. Tax |
| Paid Total | is_paidtotal | Value of invoices marked as paid, ex. Tax - note this excludes credits or part payments |
| Invoice Total in Base Currency | is_invoice_total_base | Total value in your Xero/QuickBooks base currency using the exchange rate generated by Xero/QuickBooks (excluding Tax). Total includes all invoices linked to this deal, excluding deleted and voided |
| Invoices Sent | is_allsent | Shows true if all invoices for this deal have been sent |
| Connection Name | is_connectionname | Name of the Xero or QuickBooks account used to sync invoices |
| MRR | is_mrr | Monthly Recurring Revenue from Repeating Invoices |
| ARR | is_arr | Annual Recurring Revenue from Repeating Invoices |
| Projected Total (ex. tax) | is_projected_total | Projected value, excluding tax, of all invoices and repeating invoices linked to this deal, calculated where an end date exists excluding deleted and voided |
| Contact ID | is_contact_id | The internal reference ID for the contact that has been invoiced from your accounting platform |
See HubSpot Invoicing: Adding invoice properties to HubSpot deals for more about what these are and how to find them. Here is an example:

For more advanced users, you can tailor the properties that ScaleXP Invoicing fills in. Contact support@scalexp.com for assistance with this.
Moving Deal Stage
Select the action “Set Deal Stage”
- Examples:
- When invoice is created → Move to “Invoice Sent”
- When first payment received → Move to “Active Customer”
- When invoice is fully paid → Move to “Customer”
- When invoice becomes overdue → Move to “Chasing Payment”
If you use multiple pipelines (e.g. New Business, Renewals, Enterprise), you can:
- Add an If/Then branch based on Pipeline
- Apply different stage updates depending on pipeline logic
For example:
- If Pipeline = New Business
→ Invoice Paid → Move to “Customer Onboarding” - If Pipeline = Renewals
→ Invoice Paid → Move to “Renewed”
This keeps each pipeline structured correctly while still automating billing-related movement.
Best Practices
- Separate “Closed Won” from “Paid” stages
- Use invoice status properties as your single source of truth
See also these articles:
- ScaleXP Invoicing: HubSpot Set Up - Step 2 of 2 - Invoicing Setup and Data Mapping.
- HubSpot Invoicing: Adding invoice properties to HubSpot deals.
- ScaleXP Invoicing: Automating Invoice Creation with HubSpot Workflows