How it works

Follow these 8 simple steps to start creating QuickBooks customers from Mantle app subscriptions automatically

Mantle logo icon

Customer Subscribed

App connector: Mantle • Time to complete: 0 minutes (Auto-configured)
Why this matters: This trigger captures new paying subscribers the moment they commit to your app, enabling immediate accounting system setup that ensures proper invoicing and financial tracking from day one.

When a merchant installs your Shopify app and subscribes (starts paying) through Mantle, this trigger activates the workflow and captures {{mantle.id}} (the Mantle customer ID). The workflow runs for every new subscription to your app.

Setup requirement: You must have Mantle configured for your Shopify app to receive subscription webhooks.

Retrieve Customer

App connector: Mantle • Time to complete: 0 minutes (Auto-configured)
Why this matters: Fetches complete merchant profile data from Mantle including business details, billing address, contact information, and app installation history needed to create comprehensive QuickBooks customer records

This step retrieves the full Mantle customer record using {{mantle.id}} from the trigger. It fetches:
{{mantle_1.customer.name}},
{{mantle_1.customer.email}},
{{mantle_1.customer.billingAddress}},
{{mantle_1.customer.contacts}},
{{mantle_1.customer.shopifyDomain}},
{{mantle_1.customer.notes}}, and
{{mantle_1.customer.appInstallations[]}} which contains installation details for each app. This comprehensive data ensures QuickBooks records include all relevant merchant information.

Loop

App connector: Loop • Time to complete: 0 minutes (Auto-configured)
Why this matters: Processes each app installation individually when merchants subscribe to multiple apps, ensuring proper customer record creation for each subscription relationship in your accounting system.

This loop step iterates through {{mantle_1.customer.appInstallations[]}} array which contains details about each app the merchant has installed. For every app installation, the loop executes the subsequent QuickBooks customer creation steps using {{loop.installedAt}} and other installation-specific data. This structure handles cases where merchants subscribe to multiple apps, though typically there's only one installation per customer.

Query Customer

App connector: QuickBooks • Time to complete: 0 minutes (Auto-configured)
Why this matters: Checks if a QuickBooks customer already exists with the merchant's email address, preventing duplicate customer records and maintaining clean accounting data when merchants resubscribe or were entered manually.

This step searches QuickBooks for an existing customer using the email from {{mantle_1.customer.email}}. It executes a SQL-like query "SELECT * FROM Customer WHERE PrimaryEmailAddr = '{{mantle_1.customer.email}}'" and returns the customer's QuickBooks ID as {{quickbooks.0.Id}} if a match is found, or returns empty if no match exists. This query result determines whether to create a new customer or update an existing one.

Path - No Existing Customer

App connector: Paths • Time to complete: 0 minutes (Auto-configured)
Why this matters: When no matching customer exists in QuickBooks, this path creates a new customer record from the Mantle subscription data, establishing proper accounting records for first-time subscribers.

This conditional path executes when {{quickbooks.0.Id}} is empty, meaning no matching customer was found in the QuickBooks query. The workflow evaluates this condition and proceeds to create a brand new customer record with the merchant's complete information. If this condition is true, the workflow creates rather than updates.

Create Customer (Path - No Existing)

App connector: QuickBooks • Time to complete: 0 minutes (Auto-configured)
Why this matters: Establishes a complete customer profile in QuickBooks with all merchant details, billing address, and app-specific notes, ensuring proper invoicing and financial tracking for new app subscribers.

This step creates a new QuickBooks customer using data from Mantle. It sets:
DisplayName to {{mantle_1.customer.name}},
PrimaryEmailAddr to {{mantle_1.customer.email}},
PrimaryPhone to {{mantle_1.customer.contacts[0].phone}}, and
Notes that include {{mantle_1.customer.notes}},
Shopify domain ({{mantle_1.customer.shopifyDomain}}), and installation date ({{loop.installedAt}}).

The BillAddr includes:
{{mantle_1.customer.billingAddress.address1}},
{{mantle_1.customer.billingAddress.address2}},
{{mantle_1.customer.billingAddress.city}},
{{mantle_1.customer.billingAddress.country}},
{{mantle_1.customer.billingAddress.countryCodeV2}}, and
{{mantle_1.customer.billingAddress.zip}}.

This creates a complete customer record ready for invoicing and financial management.

Path - Has Existing Customer

App connector: Paths • Time to complete: 0 minutes (Auto-configured)
Why this matters: When a matching customer exists in QuickBooks, this path updates their record with current Mantle data, ensuring customer information stays synchronized even if merchants update their billing details or business information.

This conditional path executes when {{quickbooks.0.Id}} is not empty, meaning a matching customer was found in the QuickBooks query. The workflow evaluates this condition and proceeds to update the existing customer record with fresh information from Mantle. If this condition is true, the workflow updates rather than creates.

quickbooks logo icon

Update Customer (Path - Has Existing)

App connector: QuickBooks • Time to complete: 0 minutes (Auto-configured)
Why this matters: Refreshes the existing QuickBooks customer record with current merchant information from Mantle, maintaining data accuracy for customers who have changed their billing details or contact information.

This step updates an existing QuickBooks customer using {{quickbooks.0.Id}} as the customer identifier and {{quickbooks.0.SyncToken}} for version control (QuickBooks requirement). The sparse parameter is set to true, which means only provided fields are updated while others remain unchanged. It updates DisplayName, email, phone, billing address, and notes with current Mantle data using the same field mappings as the create step. The BillAddr.Id is also included ({{quickbooks.0.BillAddr.Id}}) which is required for updating existing address records in QuickBooks.

Make it your own

Customize this workflow even further:

Add subscription plan details to notes
Enhance the notes field to include the specific subscription plan tier, monthly cost, and billing cycle from Mantle, giving your accounting team complete visibility into the customer's subscription level.
Create different customer classes by plan tier
Add conditional logic that sets QuickBooks customer class or category based on the Mantle subscription plan (like "Basic," "Pro," "Enterprise"), enabling segmented financial reporting by customer tier.
Send notifications for high-value customers
Add a filter after customer creation that checks the subscription amount and sends Slack or email notifications to your finance team when enterprise-level customers subscribe.
Sync to multiple accounting systems
Duplicate the QuickBooks steps and replace them with Xero, FreshBooks, or other accounting platform steps to maintain customer records across multiple financial systems simultaneously.

Frequently asked questions

What happens if a merchant's email changes?
The workflow searches by email, so if a merchant changes their email in Mantle, the workflow will create a new QuickBooks customer instead of updating the existing one. Consider adding logic to search by Shopify domain or Mantle customer ID instead if email changes are common for your merchants.
Can I customize which fields sync to QuickBooks?
Yes, edit the "Create Customer" and "Update Customer" steps to add or remove fields from the body. You can include additional Mantle customer fields or remove fields that aren't relevant to your accounting needs. Just ensure required QuickBooks fields (DisplayName, PrimaryEmailAddr) remain populated.
Will this sync historical customers or only new subscribers?
This workflow only triggers for new subscriptions after you activate it. To sync existing customers, you'll need to create a separate one-time workflow that retrieves all Mantle customers and processes them in batch, or manually export/import them to QuickBooks.
What is a template?
Templates are pre-made workflows by our team of experts. Instead of building a workflow from scratch, these have all the steps needed to complete the task.
Can I personalize a template?
Yes! Every step can be customized to meet your exact requirements. Additionally, you can even add more steps and make it more sophisticated.
Are templates free?
Yes! Our entire library containing hundreds of templates are free to use and customize to your exact needs.

Ready to start creating QuickBooks customers from Mantle app subscriptions automatically?

Join thousands who've automated their work and saved an average of 3.5 hours every week.

Start with this template — It's free
7-day free trial • 8 min setup • Cancel anytime