ScaleXP Invoicing: HubSpot Deal Automation Workflows

Marjorie Jackson
2025-07-14T12:25:19Z

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

1. Go to Automation → Workflows

2. Create a Deal-based workflow (See the HubSpot Knowledge base for more info on adding Workflow actions.)

3. 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