Newsletter
A step that puts each Submission's email address into a Resend audience, optionally only after the person confirms it. The confirmation is machine read, never Status.
Switch it on on a Form's Integrations → Newsletter. Paste the Workspace's own Resend API key and the audience's id, and pick the email Field that holds the address. After each Submission is stored, whichever door it came through, the address goes into the audience.
The audience is in the Workspace's own Resend account, and Noonmark reaches it with the Workspace's key. The key is stored on the Form's Newsletter and never shown again. Leave the field empty on a later save to keep it. Noonmark's own Resend account never holds anyone's contacts, so one Workspace can never write into another's list.
An address that came in through a CSV import joins only by confirming. It was collected somewhere else, under consent Noonmark cannot see.
Resend's current API files contacts under segments. The id you paste is the segment's,
and Noonmark creates the contact with POST /contacts and segments: [<id>]. An address
already in the audience counts as done.
Confirmation
With Ask them to confirm first on, the Submission arrives with its confirmation
set to pending, and the person gets an email with a link. The link opens a page with a
button. It is a button and not the link itself because mail scanners open every link in a
message. Clicking it sets confirmation to confirmed, and only then does the address go
into the audience.
The confirmation email is Noonmark's own, sent from EMAIL_FROM. Its subject is always
"Confirm your subscription", and the Form's name appears only in the body, clipped. Because
anyone can post to a public Form, Noonmark sends at most one confirmation per address per
Form per day, and at most 200 per Form per day. A send that is skipped or fails is recorded
on the Timeline. A failed send is tried again by the daily schedule.
The confirmation is part of the Submission's machine read, in its own column beside
category and the Gate's result. It never becomes Status, and moving Status never
changes it. Both the confirmation and the sync appear on the Timeline under
Newsletter.
When a sync fails
A failed sync is recorded on the Timeline. Once a day the schedule tries every failed sync from the last seven days again. It never touches a Submission that was not meant to be synced: one stored before the Newsletter was switched on, or one still waiting on its person.
Set up
| Variable | What it does |
|---|---|
RESEND_API_KEY | Sends the confirmation email. The contacts use the Workspace's own key, set on the Form. |
EMAIL_FROM | The confirmation's sender, as for invitations. |
NEWSLETTER_CONFIRM_SECRET | Signs the confirmation links. Needed only with confirmation on. |
CRON_SECRET | Lets the daily schedule run the retries. |
What did you think of this content?
Auto classify
Noonmark's first AI feature. After ingest, the model picks a category and writes it on the Submission. It decides no acceptance and sends no webhook.
Recipe: data deletion requests
A privacy-page form your product is legally bound to answer — the hosted page takes the request, a signed webhook hands it to your backend, and your backend confirms before deleting.