Contact form

Send customer messages to the merchant with spam protection and merchant notifications.

POST /contact
{% form 'contact_submit' %}

Stores the message for the merchant (admin inbox + notification email + contact.submitted webhook). Honeypot + rate limits apply.

Form fields

name Optional

Sender name.

email Required

Sender email (reply-to).

phone Optional

Sender phone.

subject Optional

Message subject.

body Required

The message.

website Optional

Honeypot — must stay empty; bots that fill it are dropped.

_format Optional

Set to json when submitting with fetch; omit for the normal browser redirect.

Validation

Valid email and non-empty body; CSRF and honeypot enforced. The message row, merchant notification, and contact webhook are committed in one transaction.

Limits

Name 100 runes; subject 200; body 5000; phone retained up to 40 runes. A submission is rejected when 60 messages already exist for the store in the preceding hour.

Response

{
  success:true,
  response,
  message_id
}

honeypot success has an empty message_id.