Finance & Ops · n8n

Automatically Tag Mailchimp Contacts When QuickBooks Invoice Is Paid

When a QuickBooks invoice is marked as paid, this workflow instantly adds a tag to the matching contact in Mailchimp. Accountants save time and marketing stays perfectly in sync with billing status.

difficulty Intermediatesetup 45 minresult Every time a QuickBooks invoice is paid, the customer's Mailchimp contact is automatically tagged with 'Invoice Paid' so your marketing team can trigger follow-up campaigns without any manual work.
  1. 1

    Poll QuickBooks for newly paid invoices

    Add an n8n-nodes-base.quickbooks node set to the Invoice resource and Get All operation. In Filters, set Status to Paid. Enable the Poll option and set the schedule to every 15 minutes. Connect your QuickBooks OAuth2 credential in the node's Credential field. This node returns all invoices whose status changed to Paid since the last poll.

  2. 2

    Extract the customer email from the invoice

    Add an n8n-nodes-base.set node named Extract Email. Create one field: set email to the expression {{ $json.BillEmail.Address }}. This isolates the payer's email so the next node can look up the correct Mailchimp contact.

  3. 3

    Check whether the invoice is truly paid

    Add an n8n-nodes-base.if node named Is Paid?. Set the condition: {{ $json.Balance }} (Number) equals 0. Connect the TRUE branch to the next step and leave the FALSE branch unconnected. This guards against processing partial payments or open invoices that slipped through the filter.

  4. 4

    Find the subscriber in Mailchimp by email

    Add an n8n-nodes-base.mailchimp node named Get Mailchimp Member. Set Resource to Member, Operation to Get, List ID to your Mailchimp audience ID, and Email to {{ $json.email }}. Connect your Mailchimp API credential. This retrieves the subscriber record so n8n can add a tag.

  5. 5

    Add the Invoice Paid tag in Mailchimp

    Add a second n8n-nodes-base.mailchimp node named Tag Contact. Set Resource to Member Tag, Operation to Add, List ID to your Mailchimp audience ID, Email to {{ $('Extract Email').item.json.email }}, and Tags to Invoice Paid. This applies the tag immediately, making the contact available for any Mailchimp automation triggered by that tag.

Frequently asked questions

What if the customer's email in QuickBooks does not exist in Mailchimp?

The 'Get Mailchimp Member' node will return an error for unknown emails. You can handle this by enabling the node's 'Continue on Fail' toggle so the workflow skips missing contacts gracefully without stopping entirely.

How often does the workflow check for new paid invoices?

By default the QuickBooks poll node is set to every 15 minutes. You can change the schedule in the node's trigger interval setting to match your business needs, such as every 5 minutes or once per hour.

Can I add more than one tag, for example including the invoice amount tier?

Yes. In the 'Tag Contact' node you can add multiple values to the `Tags` field separated by commas, or you can use an expression like `{{ 'Invoice Paid, ' + ($json.TotalAmt > 1000 ? 'High Value' : 'Standard') }}` to dynamically build the tag list based on invoice data.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.