---
title: "Send internal email when form submitted - Workflow Forms template"
description: "A ready-made Shopify Flow workflow: every stored Workflow Forms submission is emailed to your team with the form, the visitor's email, the language, the consent and all answers."
canonical: "https://docs.workflow-forms.app/template-internal-email-form-submitted"
---

# Send internal email when form submitted

A ready-made Shopify Flow workflow. When a visitor sends any Workflow Forms form on your store, your team gets an email with the form, the submission ID, the visitor's email, the language, the marketing consent and every answer. Nobody has to watch the inbox.

| | |
| --- | --- |
| **Trigger** | Form submitted (Workflow Forms) |
| **Steps** | Send internal email (Shopify Flow) |
| **Needs** | Workflow Forms installed and at least one form; an email address for the notification |
| **Built and tested** | 2026-10-22 in our demo store |

## Add it to your store

**From Shopify Flow's template library.** Open **Flow**, select **Browse templates**, search for `Workflow Forms` and pick this template. Templates appear there once Shopify has reviewed them; if you cannot find it yet, use the file below.

**From the file.** Download the `.flow` file attached at the bottom of this page. In Shopify Flow select **Import**, choose the file, and the workflow opens in the editor.

## After adding it

1. Open the **Send internal email** step and enter the address that should receive the notifications in **To**. Shopify's action takes a fixed address, so the template leaves it empty.
2. Optionally change the subject and the message. The variables are those of the [Shopify Flow triggers](https://docs.workflow-forms.app/shopify-flow-triggers.md): `formTitle`, `formHandle`, `submissionId`, `email`, `locale`, `marketingConsent`, `customerId` and `data` (all answers as JSON, keyed by field handle).
3. Select **Turn on workflow**.

Every stored submission of every form now sends one email. To limit it to one form, add a condition after the trigger: **formHandle** equals the handle of that form.

## What the email says

```text
Subject: New form submission: {{ formTitle }}

A visitor sent the form "{{formTitle}}" ({{formHandle}}) on your store.

Submission ID: {{submissionId}}
Email: {{email}}
Language: {{locale}}
Marketing consent: {{marketingConsent}}
Customer ID: {{customerId}}

Answers (JSON, keyed by field handle):
{{data}}

Open Workflow Forms > Submissions in your Shopify admin to read, mark or archive it.
```

## Variations

- **Pretty answers instead of JSON**: add a **Run code** step (Shopify Flow) or a Workflow Functions step that turns `data` into lines, or read one answer with the Liquid `json` filter.
- **Email the visitor instead**: see [Send a confirmation email when a form is submitted](https://docs.workflow-forms.app/send-a-confirmation-email-when-a-form-is-submitted.md), which sends a branded email with Workflow Transactional Email.
- **Only spam and errors**: see [Send internal email when form submission rejected](https://docs.workflow-forms.app/template-internal-email-form-rejected.md).
