← Use cases

Contact forms

Accept contact emails (and optional name) from a marketing site without a form backend or server-side mailer.

The problem

A “contact us” form still needs somewhere safe to land submissions.

How Simple Signups fits

Treat each inbox flow as a campaign. Capture email + name, keep metadata small, export or wire webhooks later.

Working example

Swap in your public campaign id (pub_...) and add your site domain to the campaign allow-list. Full field reference is in the developer docs.

HTML contact form
<p>Have a question or want to say hello? Leave your details and we will get back to you.</p>
<form action="https://simple-signups.com/api/subscribe" method="POST">
<input type="hidden" name="campaignId" value="pub_your_campaign_id" />
<input type="text" name="firstName" placeholder="First name" />
<input type="text" name="lastName" placeholder="Last name" />
<input type="email" name="email" required placeholder="you@example.com" />
<input type="text" name="hp" tabindex="-1" autocomplete="off"
style="position:absolute;left:-9999px" aria-hidden="true" />
<button type="submit">Send message</button>
</form>
fetch (JSON)
await fetch('https://simple-signups.com/api/subscribe', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
"campaignId": "pub_your_campaign_id",
"email": "jane@example.com",
"firstName": "Jane",
"lastName": "Doe"
}),
});

Next step

Create a campaign in the dashboard, copy the public id, and paste the form above onto your site.