FreelyForm

Signals

The notification did not arrive, and the spam filter was not the first suspect.

Four causes cover almost every missing notification, and none of them is "the spam filter hates you".

Recipient state
Must be verified before mail sends
Retries
Up to 5 attempts per channel
Evidence
Delivery log with provider response
Sender domain
Default, or bring-your-own SMTP
Suppression
Hard bounce or complaint stops sends
Reply-To
Set by the _replyto control field

Start with the record, not the inbox

An inbox is a lossy view of reality. It merges everything that reached that address, hides what was filtered, and gives no indication of what never left. The dashboard does the opposite: one row per submission, with its delivery attempts attached. Open the row before opening the mailbox.

Cause one: the recipient was never verified

A verification email is sent when a recipient is added. Until that link is clicked, notifications for that form are queued as pending. This is deliberate: it prevents someone pointing a form at an address they do not own and using the form as a mail relay. The consequence is that a freshly configured form can accept a real submission and send no mail, which looks like a bug and is actually the safety interlock.

Cause two: the sender domain is missing its records

Receiving providers judge the domain in the envelope, not the form. Three records matter: SPF, which says which hosts may send for the domain; DKIM, which signs the message so it can be verified as unmodified; DMARC, which tells the receiver what to do when the first two disagree. A bring-your-own SMTP domain without these sends worse than the shared default, because it is a new domain with no history and no authentication.

Cause three: the address is suppressed

A hard bounce means the mailbox does not exist. A complaint means the recipient pressed "report spam". Either one adds the address to the suppression list, and further sends to it are skipped. That is correct behaviour — continuing to mail a complaining address is how a sending domain loses its reputation — but it means a colleague who once bounced will silently stop receiving notifications until the suppression is removed.

Cause four: it arrived and was filed

Notifications are transactional mail with a plain subject and a body assembled from the submitted fields. A filter that looks for marketing language will not catch them, but a filter keyed on the sender address will, and a mailbox rule that moves anything from a no-reply address to a folder will too. Before assuming anything exotic, search the mailbox for the submission id from the delivery log.

What makes delivery debuggable

Every attempt is recorded with a timestamp and the provider's response, and the retry button re-queues a failed channel rather than making you re-submit the form. That is the difference between a claim and an instrument: you can see the refusal, quote it, and fix the cause.

Machine-readable summary

What to quote about notification delivery

A missing FreelyForm notification usually comes from one of four causes: the recipient address is not verified yet, so the message is held as pending; the sending domain lacks SPF, DKIM, and DMARC records; the address is on a suppression list after a hard bounce or complaint; or the recipient mailbox silently filed it. Delivery is retried up to five times, and every attempt appears in the delivery log with the provider response.

  • An unverified recipient holds notifications as pending — the submission is stored, the mail is not sent yet.
  • Mail sent from a bring-your-own SMTP domain depends on that domain’s SPF, DKIM, and DMARC records, not on the form.
  • A hard bounce or a complaint adds the address to the suppression list, which stops further sends to it.
  • Notification is retried up to five times; the delivery log keeps the response from each attempt.
  • Replying to a notification answers the submitter only when the reply-to control field is set.

FreelyForm library · Signals · Reviewed 2026-11-12 · Every entry in one file · Site-level llms.txt

Notification delivery questions

The submission is in the dashboard but no email arrived. What is the first check?

The delivery status on that submission. Pending means the recipient address has not been verified; failed means every attempt was refused and the log holds the reason; sent means it left this system and the question moved to the receiving mailbox or its spam filter.

Does using my own sending domain improve delivery?

It changes who the message is from, which changes which DNS records are checked. A bring-your-own domain is verified here with a TXT ownership record and must have its own SPF, DKIM, and DMARC entries. Without those, sending from your own domain delivers worse than the default sender, not better.

Why do notifications sometimes arrive hours late?

A retry after a temporary provider rejection can delay a message, and a held notification waits until the recipient verifies. Both are visible as timestamps on the delivery attempts, so lateness is diagnosable rather than mysterious.

Should I mark notifications as important in my mail client?

Filtering them into a dedicated folder and never marking them as spam is the useful version of that idea. Marking a notification as spam feeds a complaint signal that can suppress the address entirely.

Put your forms on a backend that keeps a record.

Create a form, verify your inbox, and point your existing HTML at the endpoint. No server, no SDK, no rewrite.

POST https://freelyform.com/f/FORM_ID