How to send invoices to a different email via customer metafields?

Topic summary

Goal: automate sending an invoice to an alternate address stored in a customer metafield (e.g., “accounts email”) when an order is placed.

Key context: Shopify Flow is the store automation tool; customer metafields hold custom data tied to the customer.

Suggested approaches:

  • General direction: Use Shopify Flow’s B2B-oriented flows, leveraging custom field/metafield tags alongside Flow.
  • Concrete setup:
    • Trigger: Order created.
    • Action: For Each over order.customer.metafields.
    • Condition: Match the metafield (namespace/key) for the “accounts email”.
    • If true: Send email action with recipient set to {{metafieldsForeachitem.value}}.

Notes/clarifications:

  • The example relies on Flow’s generic Send email action using the metafield’s value as the recipient.
  • Technical terms: “Metafield” = custom data field; “namespace/key” = identifiers for locating the correct metafield.

Status: Guidance and a step-by-step Flow outline were provided; no confirmation yet that the invoice email is successfully sent, so the thread appears open.

Summarized with AI on January 4. AI used: gpt-5.

I want to create a flow that will send an invoice to an email address that’s set in a customer metafield

Lets assume we have a customer metafield called ‘accounts email’

I want a flow set so that when a customer placed an order to check if this metafield exists on the customer

and if so, send an invoice email to the email address set within the metafield

really not sure where to start so would appreciate the help please!

Hello Leigh,
When it comes to triggering emails using specific metafields Shopify Flow’s B2B flows are probably the best place to start. A lot of our Customer Fields clients with B2B tagging needs use our custom field metafield tags and then couple them with the flexibility of Shopify Flow.
I hope this helps.

@LeighVSS Here is how you could do something similar:

  • order created trigger

  • use Foreach action and loop over each Item in order.customer.metafields

  • condition to check metafield Namespace is equal to your key

  • if true use the send email action with {{metafieldsForeachitem.value}} for the recepient email