Contact / feedback form

Last updated: Sep 13, 2026Section: Integrations

Use a Contact / feedback form integration to collect messages from your site (contact, support, feedback). Each submission creates a message in Mailoo and a linked feedback record with structured fields.

:::: important ::: title Important :::

Server-side only: Post from your backend or BFF; call Mailoo with X-API-Key from environment variables. Do not expose the key in browser JavaScript or public bundles. ::::

:::: note ::: title Note :::

Legacy: Calling the feedback webhook directly from the browser can work if CORS and allowed origins match, but it exposes the API key. Use a backend or BFF for new integrations. ::::

Quick start

  1. In the dashboard, open your project → Create New IntegrationContact / feedback form.
  2. Optionally set allowed origins (Origin allowlist). Leave empty to skip Origin checks; the API key remains required. A BFF may forward the browser Origin, so a filled list still applies.
  3. Create an API key with scope Feedback form submissions (webhook.feedback-submission) if you use a RESTRICTED key, or use Full Access. Store the key on the server only.
  4. From your server, POST to the feedback webhook (see API reference below).
  5. View submissions under Messages for that integration.

Outbound SMTP (dashboard)

On the integration Connection & settings tab, Outbound email (SMTP) lets you configure mail for subscriber flows and operator replies that use integration-level SMTP (see outbound-smtp{.interpreted-text role="doc"}). Use Send test email to verify the current SMTP fields; the test is delivered to your Mailoo account email and does not auto-save the form.

API reference

Endpoint

POST /api/v1/webhooks/feedback/{projectUid}/{integrationId}

Headers


Header Required Description


Content-Type Yes application/json

X-API-Key Yes Project API key with webhook.feedback-submission (or FULL)

Origin No When allowedOrigins is non-empty, must match an entry. Omit or leave allowlist empty to skip Origin checks (API key still required).

JSON body


Field Required Description


email Yes Sender email

message Yes Message body (plain text)

name No Sender name

subject No Subject line (defaults to a generic title if omitted)

metadata No Object with extra key/value data (stored with the submission)

Success response (200)

{
  "success": true,
  "messageId": "...",
  "feedbackId": "...",
  "message": "Feedback submission processed successfully"
}

Dashboard

Open Project → Integration → View Messages to list and open individual messages. Feedback integrations do not use the newsletter subscribers/campaigns tabs.

Integrating from your Next.js app

Wire a BFF route with @mailoo/forms so the browser never sees the API key. Full walkthrough, env options, and client patterns: feedback-form-nextjs-example{.interpreted-text role="doc"}.

See also

  • feedback-form-nextjs-example{.interpreted-text role="doc"} --- Next.js BFF, optional allowlist, client submit
  • outbound-smtp{.interpreted-text role="doc"} --- integration outbound SMTP, dashboard test email, MAIL_SMTP_ENCRYPTION_KEY
  • ../index{.interpreted-text role="doc"} --- other integration types
  • OpenAPI: https://api.mailoo.app/docs/v1 --- API keys and allowedOperations