Замените 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=Пример значения'
В Vue форма размещается внутри template обычного компонента. Для нативной отправки не нужны ref, v-model или запрос из script: браузер соберёт именованные поля сам.
Включите компонент в проект
Сохраните пример в ContactForm.vue и импортируйте его на страницу. Подставьте access_key из кабинета в скрытое поле. Стили можно перенести из существующей формы.
Сохраните один обработчик
Для обычного POST не добавляйте @submit.prevent: он остановит отправку браузера. Если используете собственный обработчик, собирайте FormData из form и отправляйте её на тот же общий endpoint.
Проверьте результат
Пустой email и неверный формат должны остановить отправку. В корректном запросе должны присутствовать access_key и пользовательские поля. Затем найдите заявку в кабинете.
Источники и дата проверки
Редакционная сверка: 2026-10-27. Учитывайте версию инструментов в своём проекте.