Formulário de feedback de clientes
Pergunte aos clientes como correu: uma avaliação, o que funcionou e o que corrigir.
Usa a Tilda? Cole num bloco T123 (plano pago) ou use o webhook sem código.
Para que serve este formulário
Os formulários de feedback funcionam quando são curtos e quando as pessoas acreditam que alguém os lê. Uma avaliação dá-lhe um número para acompanhar. Duas perguntas abertas dizem-lhe porquê.
O modelo não obriga ninguém a dar o nome. Os campos de contacto só aparecem quando o cliente aceita ser contactado, para que as pessoas possam ser sinceras sem serem perseguidas.
Os campos que importam
- Avaliação
- Cinco níveis, de excelente a muito fraca. Fácil de responder e de comparar mês a mês.
- O que gostou?
- Diz-lhe o que manter e dá-lhe palavras para o seu site.
- O que devemos melhorar?
- O campo mais útil do formulário. Mantenha-o opcional para que continue sincero.
- Podemos contactá-lo sobre o seu feedback?
- O nome e o e-mail só aparecem depois de um sim, por isso o feedback pode ficar anónimo.
Pré-visualização
Código do formulário
<!doctype html>
<html lang="pt">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Formulário de feedback de clientes</title>
<style>
body { font-family: "Segoe UI", sans-serif; color: #12263a; margin: 0; background: #fff; }
main { max-width: 640px; margin: 0 auto; padding: 32px 20px 64px; }
h1 { font-size: 28px; font-weight: 650; letter-spacing: -0.02em; line-height: 1.2; }
h2 { font-size: 18px; margin: 18px 0 0; }
p { line-height: 1.5; }
form { display: grid; gap: 14px; position: relative; }
.field { display: grid; gap: 6px; }
label span, .check span { font-size: 14px; }
input, select, textarea { font: inherit; color: inherit; padding: 10px 12px; border: 1px solid #b4bdce; border-radius: 8px; width: 100%; box-sizing: border-box; background: #fff; }
textarea { min-height: 96px; }
.check { display: flex; gap: 8px; align-items: flex-start; }
.check input { width: auto; margin-top: 4px; }
button { background: #3c4ad8; color: #fff; border: 0; border-radius: 8px; padding: 12px 18px; font: inherit; cursor: pointer; }
.note { background: #fff6eb; padding: 12px 14px; border-radius: 8px; }
form [data-show-if] { display: none; }
form:has(select[name="may_contact"] option[value="yes"]:checked) [data-show-if="may_contact"][data-show-equals="yes"] { display: grid; }
</style>
</head>
<body>
<main>
<h1 data-i18n="title">Formulário de feedback de clientes</h1>
<p data-i18n="lede">Pergunte aos clientes como correu: uma avaliação, o que funcionou e o que corrigir.</p>
<form id="fg-form" action="https://formgong.com/submit" method="POST" enctype="multipart/form-data" data-sitekey="" data-lang="pt">
<input type="hidden" name="access_key" value="fk_your_access_key">
<input type="hidden" name="_lang" value="pt">
<div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)"><label>Leave this field empty<input name="botcheck" tabindex="-1" autocomplete="off"></label></div>
<section><h2 data-i18n="section.feedback">Feedback</h2>
<div class="field"><label for="fg-rating"><span data-i18n="rating">How would you rate your experience?</span></label><select id="fg-rating" name="rating" required><option value="">—</option><option value="5" data-i18n="rating.5">Excellent</option><option value="4" data-i18n="rating.4">Good</option><option value="3" data-i18n="rating.3">Okay</option><option value="2" data-i18n="rating.2">Poor</option><option value="1" data-i18n="rating.1">Very poor</option></select></div>
<div class="field"><label for="fg-liked"><span data-i18n="liked">What did you like?</span></label><textarea id="fg-liked" name="liked" maxlength="1000"></textarea></div>
<div class="field"><label for="fg-improve"><span data-i18n="improve">What should we improve?</span></label><textarea id="fg-improve" name="improve" maxlength="1000"></textarea></div>
<div class="field"><label for="fg-recommend"><span data-i18n="recommend">Would you recommend us to a friend?</span></label><select id="fg-recommend" name="recommend"><option value="">—</option><option value="yes" data-i18n="recommend.yes">Yes</option><option value="no" data-i18n="recommend.no">No</option><option value="not_sure" data-i18n="recommend.not_sure">Not sure</option></select></div>
<div class="field"><label for="fg-may_contact"><span data-i18n="may_contact">May we contact you about your feedback?</span></label><select id="fg-may_contact" name="may_contact"><option value="">—</option><option value="yes" data-i18n="may_contact.yes">Yes</option><option value="no" data-i18n="may_contact.no">No</option></select></div>
<div class="field" data-show-if="may_contact" data-show-equals="yes"><label for="fg-name"><span data-i18n="name">Name</span></label><input id="fg-name" name="name" type="text" maxlength="80" autocomplete="name"></div>
<div class="field" data-show-if="may_contact" data-show-equals="yes"><label for="fg-email"><span data-i18n="email">Email</span></label><input id="fg-email" name="email" type="email" maxlength="120" autocomplete="email"></div></section>
<!-- Set data-sitekey on this form to YOUR_TURNSTILE_SITE_KEY. Required for attachments. -->
<div data-turnstile></div>
<button type="submit" data-i18n="submit">Enviar</button>
<p data-status role="status"></p>
</form>
</main>
<script type="application/json" id="fg-labels">{"uk":{"title":"Форма відгуку клієнта","lede":"Запитайте клієнтів, як усе пройшло: оцінка, що сподобалося і що виправити.","submit":"Надіслати","thanks":"Надіслано. Дякуємо.","file_too_big":"До 3 файлів, по 5 MiB, разом до 10 MiB.","error":"Не вдалося надіслати. Спробуйте ще раз.","section.feedback":"Відгук","rating":"Як ви оцінюєте свій досвід?","rating.5":"Чудово","rating.4":"Добре","rating.3":"Нормально","rating.2":"Погано","rating.1":"Дуже погано","liked":"Що вам сподобалося?","improve":"Що нам варто покращити?","recommend":"Ви порадили б нас другові?","recommend.yes":"Так","recommend.no":"Ні","recommend.not_sure":"Ще не знаю","may_contact":"Чи можемо ми зв’язатися з вами щодо відгуку?","may_contact.yes":"Так","may_contact.no":"Ні","name":"Ім'я","email":"Електронна пошта"},"en":{"title":"Customer feedback form","lede":"Ask customers how it went: a rating, what worked and what to fix.","submit":"Send","thanks":"Sent. Thank you.","file_too_big":"Up to 3 files, 5 MiB each and 10 MiB combined.","error":"Could not send. Please try again.","section.feedback":"Feedback","rating":"How would you rate your experience?","rating.5":"Excellent","rating.4":"Good","rating.3":"Okay","rating.2":"Poor","rating.1":"Very poor","liked":"What did you like?","improve":"What should we improve?","recommend":"Would you recommend us to a friend?","recommend.yes":"Yes","recommend.no":"No","recommend.not_sure":"Not sure","may_contact":"May we contact you about your feedback?","may_contact.yes":"Yes","may_contact.no":"No","name":"Name","email":"Email"},"pl":{"title":"Formularz opinii klienta","lede":"Zapytaj klientów, jak poszło: ocena, co się udało i co poprawić.","submit":"Wyślij","thanks":"Wysłano. Dziękujemy.","file_too_big":"Do 3 plików, po 5 MiB, łącznie 10 MiB.","error":"Nie udało się wysłać. Spróbuj ponownie.","section.feedback":"Opinia","rating":"Jak oceniasz swoje doświadczenie?","rating.5":"Świetnie","rating.4":"Dobrze","rating.3":"W porządku","rating.2":"Słabo","rating.1":"Bardzo słabo","liked":"Co Ci się podobało?","improve":"Co powinniśmy poprawić?","recommend":"Czy polecisz nas znajomemu?","recommend.yes":"Tak","recommend.no":"Nie","recommend.not_sure":"Nie wiem","may_contact":"Czy możemy się z Tobą skontaktować w sprawie opinii?","may_contact.yes":"Tak","may_contact.no":"Nie","name":"Imię","email":"E-mail"},"tr":{"title":"Müşteri geri bildirim formu","lede":"Müşterilere nasıl geçtiğini sorun: bir puan, neyin iyi gittiği ve neyin düzeltilmesi gerektiği.","submit":"Gönder","thanks":"Gönderildi. Teşekkürler.","file_too_big":"En fazla 3 dosya, dosya başına 5 MiB, toplam 10 MiB.","error":"Gönderilemedi. Lütfen tekrar deneyin.","section.feedback":"Geri bildirim","rating":"Deneyiminizi nasıl değerlendirirsiniz?","rating.5":"Mükemmel","rating.4":"İyi","rating.3":"Fena değil","rating.2":"Kötü","rating.1":"Çok kötü","liked":"Neyi beğendiniz?","improve":"Neyi geliştirmeliyiz?","recommend":"Bizi bir arkadaşınıza önerir misiniz?","recommend.yes":"Evet","recommend.no":"Hayır","recommend.not_sure":"Emin değilim","may_contact":"Geri bildiriminiz hakkında sizinle iletişime geçebilir miyiz?","may_contact.yes":"Evet","may_contact.no":"Hayır","name":"Ad","email":"E-posta"},"ar":{"title":"نموذج آراء العملاء","lede":"اسأل العملاء عن تجربتهم: تقييم، وما الذي نجح، وما الذي يجب إصلاحه.","submit":"إرسال","thanks":"تم الإرسال. شكرًا لك.","file_too_big":"حتى 3 ملفات، 5 MiB لكل ملف و10 MiB إجمالًا.","error":"تعذّر الإرسال. يُرجى المحاولة مرة أخرى.","section.feedback":"الرأي","rating":"كيف تقيّم تجربتك؟","rating.5":"ممتاز","rating.4":"جيد","rating.3":"مقبول","rating.2":"سيئ","rating.1":"سيئ جدًا","liked":"ما الذي أعجبك؟","improve":"ما الذي يجب أن نحسّنه؟","recommend":"هل توصي بنا لصديق؟","recommend.yes":"نعم","recommend.no":"لا","recommend.not_sure":"لست متأكدًا","may_contact":"هل يمكننا التواصل معك بشأن رأيك؟","may_contact.yes":"نعم","may_contact.no":"لا","name":"الاسم","email":"البريد الإلكتروني"},"he":{"title":"טופס משוב לקוחות","lede":"שאלו את הלקוחות איך היה: דירוג, מה עבד ומה צריך לתקן.","submit":"שליחה","thanks":"נשלח. תודה.","file_too_big":"עד 3 קבצים, 5 MiB לכל קובץ ו-10 MiB בסך הכול.","error":"השליחה נכשלה. נסו שוב.","section.feedback":"משוב","rating":"איך הייתם מדרגים את החוויה?","rating.5":"מצוין","rating.4":"טוב","rating.3":"סביר","rating.2":"גרוע","rating.1":"גרוע מאוד","liked":"מה אהבתם?","improve":"מה כדאי לנו לשפר?","recommend":"הייתם ממליצים עלינו לחבר?","recommend.yes":"כן","recommend.no":"לא","recommend.not_sure":"עוד לא יודע/ת","may_contact":"אפשר ליצור איתכם קשר לגבי המשוב?","may_contact.yes":"כן","may_contact.no":"לא","name":"שם","email":"אימייל"},"es":{"title":"Formulario de opinión de clientes","lede":"Pregunta a tus clientes cómo les fue: una valoración, qué funcionó y qué mejorar.","submit":"Enviar","thanks":"Enviado. Gracias.","file_too_big":"Hasta 3 archivos, 5 MiB cada uno y 10 MiB en total.","error":"No se pudo enviar. Inténtalo de nuevo.","section.feedback":"Opinión","rating":"¿Cómo valorarías tu experiencia?","rating.5":"Excelente","rating.4":"Buena","rating.3":"Normal","rating.2":"Mala","rating.1":"Muy mala","liked":"¿Qué te gustó?","improve":"¿Qué deberíamos mejorar?","recommend":"¿Nos recomendarías a un amigo?","recommend.yes":"Sí","recommend.no":"No","recommend.not_sure":"No lo sé","may_contact":"¿Podemos contactarte sobre tu opinión?","may_contact.yes":"Sí","may_contact.no":"No","name":"Nombre","email":"Correo electrónico"},"fr":{"title":"Formulaire d’avis client","lede":"Demandez à vos clients comment ça s’est passé : une note, ce qui a plu et ce qu’il faut corriger.","submit":"Envoyer","thanks":"Envoyé. Merci.","file_too_big":"Jusqu’à 3 fichiers, 5 Mio chacun et 10 Mio au total.","error":"Envoi impossible. Veuillez réessayer.","section.feedback":"Avis","rating":"Comment évaluez-vous votre expérience ?","rating.5":"Excellent","rating.4":"Bien","rating.3":"Correct","rating.2":"Médiocre","rating.1":"Très mauvais","liked":"Qu’avez-vous apprécié ?","improve":"Que devrions-nous améliorer ?","recommend":"Nous recommanderiez-vous à un ami ?","recommend.yes":"Oui","recommend.no":"Non","recommend.not_sure":"Je ne sais pas encore","may_contact":"Pouvons-nous vous contacter au sujet de votre avis ?","may_contact.yes":"Oui","may_contact.no":"Non","name":"Nom","email":"E-mail"},"pt":{"title":"Formulário de feedback de clientes","lede":"Pergunte aos clientes como correu: uma avaliação, o que funcionou e o que corrigir.","submit":"Enviar","thanks":"Enviado. Obrigado.","file_too_big":"Até 3 ficheiros, 5 MiB cada e 10 MiB no total.","error":"Não foi possível enviar. Tente novamente.","section.feedback":"Feedback","rating":"Como avalia a sua experiência?","rating.5":"Excelente","rating.4":"Boa","rating.3":"Razoável","rating.2":"Fraca","rating.1":"Muito fraca","liked":"O que gostou?","improve":"O que devemos melhorar?","recommend":"Recomendaria-nos a um amigo?","recommend.yes":"Sim","recommend.no":"Não","recommend.not_sure":"Ainda não sei","may_contact":"Podemos contactá-lo sobre o seu feedback?","may_contact.yes":"Sim","may_contact.no":"Não","name":"Nome","email":"Email"},"hi":{"title":"ग्राहक फ़ीडबैक फ़ॉर्म","lede":"ग्राहकों से पूछें कि अनुभव कैसा रहा: रेटिंग, क्या अच्छा लगा और क्या सुधारना है।","submit":"भेजें","thanks":"भेज दिया गया। धन्यवाद।","file_too_big":"अधिकतम 3 फ़ाइलें, हर फ़ाइल 5 MiB तक और कुल 10 MiB।","error":"भेजा नहीं जा सका। कृपया फिर से कोशिश करें।","section.feedback":"फ़ीडबैक","rating":"आप अपने अनुभव को कैसे रेट करेंगे?","rating.5":"बेहतरीन","rating.4":"अच्छा","rating.3":"ठीक-ठाक","rating.2":"ख़राब","rating.1":"बहुत ख़राब","liked":"आपको क्या अच्छा लगा?","improve":"हमें क्या सुधारना चाहिए?","recommend":"क्या आप हमें किसी दोस्त को सुझाएँगे?","recommend.yes":"हाँ","recommend.no":"नहीं","recommend.not_sure":"पता नहीं","may_contact":"क्या हम आपके फ़ीडबैक के बारे में आपसे संपर्क कर सकते हैं?","may_contact.yes":"हाँ","may_contact.no":"नहीं","name":"नाम","email":"ईमेल"},"ja":{"title":"お客様アンケート(感想)フォーム","lede":"お客様にご感想を伺います。評価、良かった点、改善点。","submit":"送信","thanks":"送信しました。ありがとうございます。","file_too_big":"ファイルは3つまで、1つ5 MiB、合計10 MiBまでです。","error":"送信できませんでした。もう一度お試しください。","section.feedback":"ご感想","rating":"全体の満足度はいかがでしたか?","rating.5":"とても良い","rating.4":"良い","rating.3":"普通","rating.2":"悪い","rating.1":"とても悪い","liked":"良かった点を教えてください","improve":"改善すべき点を教えてください","recommend":"ご友人に勧めたいと思いますか?","recommend.yes":"はい","recommend.no":"いいえ","recommend.not_sure":"未定","may_contact":"ご感想についてご連絡してもよろしいですか?","may_contact.yes":"はい","may_contact.no":"いいえ","name":"お名前","email":"メールアドレス"},"de":{"title":"Kundenfeedback-Formular","lede":"Fragen Sie Ihre Kunden, wie es war: eine Bewertung, was gut lief und was besser werden muss.","submit":"Senden","thanks":"Gesendet. Vielen Dank.","file_too_big":"Bis zu 3 Dateien, je 5 MiB und insgesamt 10 MiB.","error":"Senden fehlgeschlagen. Bitte versuchen Sie es erneut.","section.feedback":"Feedback","rating":"Wie bewerten Sie Ihre Erfahrung?","rating.5":"Ausgezeichnet","rating.4":"Gut","rating.3":"In Ordnung","rating.2":"Schlecht","rating.1":"Sehr schlecht","liked":"Was hat Ihnen gefallen?","improve":"Was sollten wir verbessern?","recommend":"Würden Sie uns einem Freund empfehlen?","recommend.yes":"Ja","recommend.no":"Nein","recommend.not_sure":"Noch unklar","may_contact":"Dürfen wir Sie zu Ihrem Feedback kontaktieren?","may_contact.yes":"Ja","may_contact.no":"Nein","name":"Name","email":"E-Mail"}}</script>
<script>
function mountCaptcha(node, siteKey) {
if (!node || !siteKey) return () => {};
let disposed = false;
let widget;
function render() {
if (disposed || !window.turnstile) return;
window.turnstile.ready(() => {
if (disposed) return;
widget = window.turnstile.render(node, { sitekey: siteKey, language: node.dataset.language || document.documentElement.lang || "auto" });
node.dataset.widgetId = widget;
});
}
if (window.turnstile) render();
else {
let script = document.querySelector('script[src^="https://challenges.cloudflare.com/turnstile/v0/api.js"]');
if (!script) {
script = document.createElement("script");
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
script.async = true;
document.head.appendChild(script);
}
script.addEventListener("load", render, { once: true });
}
return () => { disposed = true; if (widget !== undefined) window.turnstile?.remove(widget); };
}
function resetCaptcha(form) {
const widget = form.querySelector("[data-turnstile]")?.dataset.widgetId;
if (widget !== undefined) window.turnstile?.reset(widget);
}
(function () {
var MAX = 5242880;
var form = document.getElementById("fg-form");
var packNode = document.getElementById("fg-labels");
if (!form || !packNode) return;
var pack = JSON.parse(packNode.textContent);
function code() {
var q = new URLSearchParams(location.search).get("lang") || "";
// ?lang= preview override, then the form language chosen when copying, then the page and browser.
var raw = (q || form.getAttribute("data-lang") || document.documentElement.lang || (navigator.language || "en")).slice(0, 2).toLowerCase();
return pack[raw] ? raw : "en";
}
function apply() {
var dict = pack[code()];
document.querySelectorAll("[data-i18n]").forEach(function (node) {
var key = node.getAttribute("data-i18n");
if (key && typeof dict[key] === "string") node.textContent = dict[key];
});
}
apply();
var status = form.querySelector("[data-status]");
form.addEventListener("submit", function (event) {
event.preventDefault();
var dict = pack[code()];
var body = new FormData(form);
var files = Array.from(body.values()).filter(function (value) { return value instanceof File && value.size; });
if (files.length > 3 || files.some(function (file) { return file.size > MAX; }) || files.reduce(function (sum,file) { return sum + file.size; },0) > 10 * 1024 * 1024) {
if (status) status.textContent = dict.file_too_big;
return;
}
var button = form.querySelector("button[type=submit]");
if (button) button.disabled = true;
fetch(form.action, { method: "POST", headers: { Accept: "application/json" }, body: body })
.then(function (response) { return response.json(); }).then(function (result) {
if (status) status.textContent = result && result.success ? dict.thanks : ((result && result.message) || dict.error);
}).catch(function () { if (status) status.textContent = dict.error; })
.finally(function () { if (button) button.disabled = false; resetCaptcha(form); });
});
mountCaptcha(form.querySelector("[data-turnstile]"), form.dataset.sitekey);
})();
</script>
</body>
</html>
Código para outros frameworks
Como receber mais pedidos
- Pergunte logo a seguir ao serviço, enquanto a experiência está fresca.
- Responda, no prazo de um dia, a todas as avaliações fracas em que o cliente deixou um e-mail.
- Diga aos clientes o que mudou por causa do feedback deles.
Responda a todos os pedidos
Envie as avaliações fracas para o Telegram para reagir no próprio dia. Os estados mostram qual o feedback que alguém já tratou. Com o script de análise opcional, o Formgong conta também quantas pessoas escolheram cada avaliação.
Perguntas e respostas
O feedback pode ser anónimo?
Sim. O nome e o e-mail são opcionais e só aparecem quando o cliente aceita ser contactado.
Posso mostrar o bom feedback no meu site?
Pergunte primeiro ao cliente. Para avaliações públicas com estrelas, use a funcionalidade de avaliações, em que aprova cada avaliação antes de ficar visível.
Onde ficam guardadas as respostas?
No armazenamento do Formgong na UE, e são entregues ao seu e-mail e Telegram. No plano gratuito ficam guardadas durante 30 dias.