How it works

Follow these 10 simple steps to start syncing Shopify customer addresses to Recharge automatically

schedule icon

Schedule

App connector: Schedule • Time to complete: 1 minute
Why this matters: This trigger runs address synchronization on a consistent daily schedule, ensuring subscription addresses stay current with customer updates and preventing fulfillment errors from outdated shipping information.

This scheduled trigger runs once per day at midnight. The timing provides complete coverage of the previous day's customer updates and processes them before subscription charges run.

Customization: You can adjust the schedule to run more frequently if address synchronization needs to be more immediate, or less frequently if you prefer batch processing.

Loop: Get list of customers updated within the past 24 hours

App connector: Loop • Time to complete: 0 minutes (Auto-configured)
Why this matters: Retrieves only customers who actually modified their information recently, creating an efficient sync process that focuses on changes rather than processing your entire customer database daily.

This step fetches Shopify customers using time-based filtering. The query includes updated_at_min set to 24 hours ago (calculated using date math that subtracts 1 day from current time) and limit of 250 customers. This returns customers who updated any information in the past day, which may include address changes, email updates, or other profile modifications. The 250 limit is Shopify's maximum per request—if you have more than 250 updates daily, you'd need pagination logic.

What triggers "updated": Shopify updates the updated_at timestamp when customers modify their profile, when admins edit customer records, when apps update customer data, or when orders associate with customers for the first time.

Filter: Stop the automation if no customers were found

App connector: Filter • Time to complete: 0 minutes (Auto-configured)
Why this matters: Prevents unnecessary processing when no customers were updated, conserving workflow execution credits and avoiding errors from empty data arrays in subsequent steps.

This filter checks if the customer array is not empty. If true (customers exist), the workflow proceeds. If false (no customers updated), the workflow stops here. This is especially useful for days with low customer activity where running the full workflow would be wasteful.

Loop over each customer

App connector: Loop • Time to complete: 0 minutes (Auto-configured)
Why this matters: Processes each updated customer individually through Recharge lookup and address comparison, enabling per-customer address synchronization rather than batch operations that might fail partially.

This loop iterates through each customer in the array from step 2. For every customer, the loop executes the subsequent Recharge lookup, address retrieval, comparison, and update steps. This per-customer processing ensures one customer's sync failure doesn't prevent other customers from updating.

Filter: Check if the customer has an email address

App connector: Filter • Time to complete: 0 minutes (Auto-configured)
Why this matters: Ensures the customer has an email before attempting Recharge lookup, preventing failures since Recharge customer searches require email addresses for matching.

This filter checks if the customer's email field does not equal "null". If true (email exists), the workflow proceeds to Recharge lookup. If false (no email), this customer is skipped. Some customers created through certain channels or bulk imports might lack email addresses.

List Customers

App connector: Recharge • Time to complete: 1 minute
Why this matters: Searches Recharge for the customer account using email address, establishing the connection needed to retrieve and update their subscription shipping address.

This step queries Recharge's customer database using the email address as the search parameter. It returns matching Recharge customer records with the Recharge customer ID needed for address retrieval. The first result (index 0) contains the customer's Recharge data including customer ID, subscription status, and account details.

Email matching: Recharge uses email as the primary identifier for customer lookups. Customers must use the same email in both Shopify and Recharge for this workflow to link accounts correctly.

Filter: Stop the automation if no customers were retrieved

App connector: Filter • Time to complete: 0 minutes (Auto-configured)
Why this matters: Filters out Shopify customers who don't have Recharge subscription accounts, preventing errors when trying to update addresses for non-subscribers.

This filter checks if the Recharge customer array is not empty. If true (Recharge account exists), the workflow proceeds. If false (no Recharge account), this customer is skipped. Many Shopify customers don't have subscriptions, so this filtering is essential to focus only on actual subscription customers.

List Addresses

App connector: Recharge • Time to complete: 0 minutes (Auto-configured)
Why this matters: Retrieves the customer's current address information stored in Recharge, providing the baseline data needed for comparison with Shopify's current address to detect changes.

This step queries Recharge for addresses belonging to the Recharge customer ID. It returns address records including address1, address2, city, province, zip, country_code, phone, and name fields. The first address (index 0) is used for comparison—this is typically the customer's primary subscription shipping address.

Multiple addresses: Customers can have multiple addresses in Recharge (different subscription shipping addresses). This workflow updates only the first address. To sync all addresses, you'd need additional loop logic.

Filter: Compare the recent Shopify information to Recharge information

App connector: Filter • Time to complete: 0 minutes (Auto-configured)
Why this matters: Detects actual address differences between Shopify and Recharge, ensuring updates only occur when changes exist rather than updating every customer record unnecessarily.

This filter implements comprehensive address comparison using OR logic. The workflow proceeds if ANY of these fields differ between Recharge and Shopify:

  1. address1: Primary address line (street address, P.O. box)
  2. address2: Secondary address line (apartment, suite, unit)
  3. city: City name
  4. province: State/province
  5. zip: Postal code
  6. country_code: Country code (like US, CA, GB)

OR logic reasoning: If even one field differs, the address needs updating. The OR operator ensures any discrepancy triggers synchronization, not just complete address mismatches.

recharge logo icon

Update Address

App connector: Recharge • Time to complete: 0 minutes (Auto-configured)
Why this matters: Synchronizes the Recharge address with current Shopify data, ensuring subscription orders ship to the customer's correct current address and preventing costly shipping errors or customer service issues.

This step updates the Recharge address using the Recharge address ID. The update includes:

  1. address1: Primary address line from Shopify default address
  2. address2: Secondary address line from Shopify default address
  3. city: City from Shopify default address
  4. country: Country code from Shopify default address
  5. customer_id: Shopify customer ID
  6. first_name: Customer's first name
  7. last_name: Customer's last name
  8. phone: Customer's phone from default address (or "No phone number provided" if missing)
  9. zip: Postal code from Shopify default address
  10. province: State/province from Shopify default address

Phone number handling: The workflow includes conditional logic that provides a fallback message if no phone number exists, preventing Recharge API errors from missing required phone fields.

The update ensures Recharge has complete, current address information for accurate subscription fulfillment.

Make it your own

Customize this workflow even further:

Add address change notifications
Insert email or Slack notification steps after the address update that alert your fulfillment team to address changes, enabling proactive verification for high-value subscriptions or international orders.
Sync all customer addresses
Add loop logic after step 8 that iterates through all Recharge addresses (not just the first) and updates each one, maintaining synchronization across multiple shipping addresses for customers with multiple subscriptions.
Log sync activity
Add a Google Sheets or database step that records each address update with timestamp, customer name, old address, and new address for audit trails and address change analytics.
Add validation rules
Insert filters that check address format validity (like zip code patterns, state/country combinations) and flag suspicious changes for manual review, adding fraud prevention to address synchronization.

Frequently asked questions

What happens if a customer has multiple addresses in Recharge?
This workflow updates only the first address (index 0) returned from Recharge. If customers have multiple subscription addresses, consider modifying step 8 to loop through all addresses and update each one based on Shopify's default address.
How does the workflow handle customers who update email addresses?
If a customer changes their email in Shopify, step 6's Recharge lookup will fail to find the account (since it searches by the new email). The workflow will skip that customer. To handle email changes, you'd need additional logic that searches by Shopify customer ID or previous email.
Can I run this more frequently than daily?
Yes, change the schedule trigger from Daily to a more frequent schedule like Hourly or Every 6 hours. Be aware this increases workflow execution usage, though it provides more real-time address synchronization.
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 syncing Shopify customer addresses to Recharge 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 • 10 min setup • Cancel anytime