← Docs

Email notifications: get an email when a form is submitted

Switch it on and every new response arrives in your inbox, each answer labelled by the question that was asked. Replying goes to the person who filled the form in, not to us.

Email notifications need Basic or Advanced

The mail goes out on your provider account, so the quota and the sending domain are yours. Webhooks and Telegram delivery are free on every plan and reach the same responses — see plans.

Turning them on

  1. In your provider — Resend, SendGrid, Postmark or Mailgun — verify the domain you want mail to come from, and create an API key with permission to send.
  2. Open the form, then Settings → Storage, and add the Email destination.
  3. Choose the provider, paste the key, and give a From address on that verified domain.
  4. Under Who gets it, tick whether the email goes to you, to the person who filled the form in, or both.
  5. Press Send test email — a real message, sent immediately, reporting exactly what came back.
  6. Save.

The From domain is the thing that goes wrong

Every provider refuses to send from a domain you have not verified with them, and none of them says so in those words: SendGrid talks about a “Sender Identity”, Mailgun about “authorized recipients”, Resend about the domain. All three read like a broken API key.

Verify the domain first, then use a From on it — Forms <forms@yourdomain.com>. The test button names this cause before it names any other.

Who gets the email

Two switches, and they are independent. Tick either, or both.

You

Email me each response sends the notification to the address in the box beneath it. Leave that box blank and we use your account address, filled in when you save — so the destination always names the mailbox it actually writes to. Any other address works too, including a shared inbox: the mail goes out on your own provider account, so it is your provider deciding who you may write to.

The person who filled it in

Send the person who filled it in a copy of their answers is the confirmation email — a receipt for their own records, sent the moment they submit. This is the feature Google Forms only offers through a script or an add-on.

It requires Collect email addresses in the Advanced tab, and the form refuses to save without it: with no email question, the form never learns an address and the copy has nowhere to go. A respondent who somehow submits without one simply gets no copy — their answer is still stored.

Their copy is never rate-limited. The cap below exists so one inbox is not buried under fifty notifications; a receipt is one email to one person, and it is the only one they get.

The two messages are deliberately different. Yours links to your dashboard and can mention how many responses arrived while the cap was in force. Theirs does neither — a link they cannot open and a count of somebody else’s responses are not things to send a stranger. And each is addressed back to the other: replying to your notification reaches the respondent, and replying to their receipt reaches you.

How many emails will a busy form send?

At most 3 per form per hour. Fifty responses in an hour produce 3 emails, not fifty.

Nothing is lost in the process. Responses that arrive while the cap is reached are counted, and the next email that goes out opens by saying how many there were — “41 further responses arrived since the last email” — with a link to read them. The subject line counts them too, so an inbox scan shows the real number without opening anything.

The third email of each hour says that the cap has been reached. That is deliberate: a rate limit you discover from silence reads as lost mail, and one you are told about before the silence reads as a feature.

The backlog waits for the next response

The count rides on the next email that gets through, which means it arrives with the next response — not on a timer. A form that takes fifty responses in an hour and then goes quiet leaves the last few unannounced until somebody submits again.

The alternative is a job that wakes hourly and scans every form on the platform, which is a second moving part to run, monitor and debug for a message that says “nothing has happened lately”. Your dashboard is always current; only the email waits.

What the email contains

  • The form’s name in the subject, so an inbox rule can match it.
  • Every answer, labelled with the question that was asked rather than its storage key.
  • Unanswered optional questions shown as , because a skipped question is a fact worth seeing.
  • A link to the response in your dashboard.
  • Reply-To set to the respondent, when the form collects an email address — replying writes to them, not to us.

File answers are named rather than attached: an upload lives inside the response as base64 and belongs in the dashboard, not in your inbox. See field types.

Everything above is sent by your provider, from your verified domain — so it appears in your own sending logs, and its reputation is yours rather than shared with every other form on the platform.

Why is the notification not arriving?

Press Send test email first. It sends a real message and reports what came back, which separates “never sent” from “sent and filtered” — two problems with completely different fixes.

What you seeWhat to do
Test says accepted, nothing arrivesCheck spam, then your provider’s activity log — “accepted” means queued, never delivered, and the log is where a later bounce shows up.
“Sender identity”, “domain not verified”, 403The From domain is not verified with your provider. Verify it there, then use a From address on it.
401 with a key you just createdThe key has no send permission — a read-only or metrics key fails exactly this way. Make one that may send mail.
Mailgun 404The sending domain is wrong. It is its own field here, because Mailgun puts it in the URL rather than the key.
Fewer emails than responsesThe cap. Check the last email you did receive: it counts what came after the previous one.
No emails at all after a plan changeNotifications stop on a free plan. The responses are still collected and still exportable.

Delivery failure alerts

A different, separate email from the one above. When a storage destination on your form fails to accept a response, the form owner gets an email about it. It is on by default.

It covers the destinations your plan actually delivers to. A webhook, Telegram and Amazon S3 are attempted on every plan. Slack, Discord, Teams, Google Chat, Google Sheets, Airtable and Notion are attempted only on a paid plan — on the free plan they are skipped rather than failed, and a skipped destination raises no alert, because nothing was tried.

That includes your Email destination. It sends on your own provider account — your SendGrid, Resend, Postmark or Mailgun key — while this alert comes from us, so a provider that has stopped accepting your mail does not stop the alert about it arriving. It is the one most worth telling you about: a domain verification lapsing or a key being rotated stops your notifications with no error you would ever see.

It is sent from us, never from the broken destination or your own notification provider, and that is deliberate: if a destination is failing because the service behind it is down or misconfigured, a message that had to travel through that same service might never arrive either.

Where it is sent

To the address in your Email destination’s Email me each response box, if you have one configured and that switch is on. Otherwise it goes to your account address, same as the notification above. On a form owned by an organization, both the address and the rate limit below follow whichever member created the form, not an org admin.

At most three alerts per problem

You get at most three alerts per problem, however many responses arrive while it is broken. The count is kept on the form itself, so it holds however many servers are handling your traffic, and a destination that has been failing for a week costs you nothing further — the fourth response does not produce a fourth email.

The count starts again as soon as a delivery to that form succeeds. So three alerts is per episode, not per day: if a destination breaks, is fixed, and breaks again next month, you hear about the second breakage too.

There is no “it’s working again” email

A recovery is noticed — that is what resets your three alerts — but it is never announced. So silence means one of two things: the destination is working again, or it is still broken and you have already had all three. Those look identical from your inbox, which is why silence is not an “all clear”. Check the destination directly, or use Send test message in Settings → Storage.

The Email destination is the one exception: a failure there does not trigger its own alert, because reporting a broken email channel by email would not reach you either. That failure is logged on our server instead.

Turning it off

In Settings → Storage, uncheck “Email me when a destination stops receiving responses”. It defaults to on, because a destination failing silently is the exact problem this exists to catch.

Coming from Google Forms?

Google Forms will email you on submission — through Responses → “Get email notifications for new responses”, or an add-on for anything more. What arrives is a nudge with a link back to the form.

Here the answers are in the email, labelled by question, and replying reaches the respondent — sent from your own domain, through your own provider. The trade is honest: Google’s version is free and this one is on a paid plan. If you want a free way to know, a webhook or Telegram both work on every plan — see the full comparison.

Common questions

How do I get an email when my form is submitted?
Open the form, go to Settings → Storage and add the Email destination. Choose your provider — Resend, SendGrid, Postmark or Mailgun — paste its API key, give a From address on a domain you have verified there, and the address to notify. Press "Send test email" to see exactly what arrives, including whether it lands in spam, then save.
How many emails will I get from a busy form?
At most 3 per form per hour. Responses that arrive after that are counted rather than mailed, and the next email says how many there were — so fifty responses in an hour is 3 emails, not fifty, and you still learn the true number. The third email of an hour tells you the cap has been reached, so silence afterwards is explained before it happens rather than after.
Can a form send a confirmation email to the person who submitted it?
Yes. Tick "Send the person who filled it in a copy of their answers" on the Email destination, and each respondent gets their own copy of what they sent — no add-on, no script. It needs "Collect email addresses" turned on in the Advanced tab, because otherwise the form never asks for an address and there is nowhere to send it. Their copy is never rate-limited: it is one email per submission, each to a different person.
Who is the email sent to?
Whoever you tick. "Email me each response" goes to the address in the box beneath it — leave that blank and we use your account address. "Send the person who filled it in a copy" goes to the address that respondent gave. Both can be on at once, and they are two different messages: yours lists the answers and links to your dashboard, theirs is a receipt for their own records with no dashboard link.
Can I send notifications to a shared inbox or a colleague?
Yes — any address you like. The mail goes out on your own provider account, so it is your provider deciding who you may write to, not us; that is a direct consequence of using your key rather than ours. For several people, use a distribution address such as support@yourdomain.com, or add a mail rule that forwards.
Why do I need my own Resend or SendGrid account?
Because the mail then comes from your domain rather than ours, which is better for deliverability and lets you see every message in your provider’s own logs. It also means the sending quota is yours: a form that goes viral spends your allowance, not a shared one, and nothing here can throttle you for someone else’s traffic. All four have a free tier that covers an ordinary form.
Which provider should I choose?
Any of the four works identically here. Resend is the quickest to set up; Postmark has the strongest reputation for transactional mail; SendGrid and Mailgun are the ones people already have. Mailgun is the only one that needs a second field — its sending domain goes in the request URL rather than the key, so there is nowhere to infer it from.
Can I reply to the person who filled in the form?
Yes. When the form collects an email address, the notification is sent with Reply-To set to the respondent, so hitting reply in your mail client writes to them rather than to us. On a form that collects no address there is nobody to reply to, and the notification is one-way.
Why is the notification not arriving?
Nine times in ten it is the From address: every provider refuses to send from a domain you have not verified with them, and each phrases that refusal differently enough that it reads like a bad key. Press "Send test email" — it names the real cause. After that, check spam, and check your provider’s own activity log, which shows what happened after we handed the message over. You should also have had a delivery failure alert from us: those cover the Email destination too, because they come from our account rather than through the provider that is refusing you.
Is a response lost if the email fails?
No, and this is the important part: the response is saved before any email is attempted, and a failed send can never fail a submission. Every response is in your dashboard and in the CSV export regardless. The email is a notification, not the record.
What happens if a destination stops accepting responses?
Your responses are never at risk — every submission is saved to your dashboard no matter what any destination does. On top of that, you get an email from us (not from the destination itself, and not through your own provider) naming which one failed and why, throttled so a destination that fails on every response cannot fill your inbox. It is on by default — turn it off in Settings → Storage. Alerts cover the destinations your plan actually delivers to: Slack, Discord, Teams, Google Chat, Google Sheets, Airtable and Notion are only attempted on a paid plan, so on the free plan they are skipped rather than failed, and skipping is not something you are alerted about.
Will I get an email when a destination starts working again?
No. A recovery is noticed — it is what resets your three alerts — but it is never announced, so silence means either that the destination is working again or that it is still broken and you have already had all three. Those look the same from your inbox. Check the destination directly, or use "Send test message" in Settings → Storage.
Are email notifications free?
No. They are on Basic at $20 a month and above, even though the mail goes out on your own provider account. Webhooks and Telegram are free, and a free form still stores every response and still exports to CSV.
How is this different from Google Forms notifications?
Google Forms can email you on submission through its own Responses settings or an add-on, and the answers arrive as a link back to the form. Here the answers are in the email itself, labelled by question, with the reply address set to the respondent — and the rate limit means a form that goes viral does not fill your inbox. What Google Forms gives you free, this charges for; what it does not give you is the reply-to, the cap, or the same email content.

Keep reading