Замените YOUR_ACCESS_KEY ключом своей формы. Для всех вариантов используется один адрес отправки.
Промпт
Задание вашему ИИ агенту
Подключи форму на моём сайте к Субмито.
Отправляй поля методом POST на https://app.submito.ru/v1/submit.
Добавь скрытое поле access_key со значением YOUR_ACCESS_KEY.
Поля формы: email (обязательно), message (обязательно).
Сохрани дизайн, компоненты и подписи полей.
Используй обычную HTML отправку без SDK и своей базы данных.
Проверь обязательные поля, email и работу на мобильном экране.
// Передайте поля формы и сохраните idempotencyKey для повтора тех же данных.
// Для новой заявки создайте новый crypto.randomUUID().
export async function submitForm(payload, idempotencyKey) {
const response = await fetch("https://app.submito.ru/v1/submit", {
method: "POST",
credentials: "omit",
headers: { "Content-Type": "application/json", "Idempotency-Key": idempotencyKey },
body: JSON.stringify({ ...payload, access_key: "YOUR_ACCESS_KEY" })
});
const result = await response.json();
if (!response.ok || result.success !== true || result.status !== "accepted" || !result.submission_id) {
throw new Error("Сохранение не подтверждено. Сохраните ввод и повторите с тем же ключом идемпотентности.");
}
// Заявка сохранена. Доставка уведомлений проверяется отдельно.
return result;
}
// Поля payload: email (обязательно), message (обязательно)
cURL
Терминал / HTTP клиент
# Сохраните один Idempotency-Key для повторов этой отправки.
# Для новой заявки используйте новый UUID.
curl 'https://app.submito.ru/v1/submit' \
-H 'Accept: application/json' \
-H 'Idempotency-Key: REPLACE_WITH_UUID' \
--data-urlencode 'access_key=YOUR_ACCESS_KEY' \
--data-urlencode 'email=synthetic@example.test' \
--data-urlencode 'message=Пример значения'
В Next.js обычный form может отправлять POST на внешний адрес Субмито. Для такого подключения не нужны Server Action, Route Handler или почтовый SDK.
Добавьте компонент на страницу
Сохраните пример в компоненте проекта и импортируйте его в страницу контактов. В action указан общий адрес приёма, а в hidden input — ваш access_key. Нативная разметка не требует директивы use client.
Сохраните границу сервера
Публичный access_key можно передавать в браузер. Пароли, session и management token в поля формы не добавляются. Не создавайте серверный proxy, если форма отправляется прямо на общий endpoint.
Когда нужен клиентский обработчик
Если хотите оставить посетителя на той же странице, используйте клиентский компонент и fetch. Сначала проверьте поля, затем отправьте FormData с access_key и обработайте HTTP ответ. Обычный POST и fetch должны быть альтернативами, а не двумя параллельными отправками.
Источники и дата проверки
Редакционная сверка: 2026-10-27. Учитывайте версию инструментов в своём проекте.