Răspuns automat la formular
Când cineva trimite un Google Form, primește un răspuns și rândul este marcat Replied.
Cum arată foaia
| Timestamp | Name | Message | Status | |
|---|---|---|---|---|
| 2026-10-25 09:00 | Ana Pop | ana@example.com | I need a booking page | Replied |
Instalare, cam 5 minute
- Leagă formularul de o foaie. Formularul trebuie să ceară adresa de email, sau să aibă o întrebare numită Email.
- Deschide Extensions > Apps Script și lipește codul.
- Adaugă un trigger instalabil: On form submit, funcția onFormSubmit.
- Autorizează Gmail la prima rulare.
- Trimite un răspuns de test. În foaie apare Status = Replied.
Apps Script
/**
* Form submit -> branded auto-reply -> Status column.
* Use an installable trigger: Forms -> On form submit -> onFormSubmit.
* The form must collect email addresses, or have a column named Email or Email Address.
*/
function onFormSubmit(e) {
if (!e || !e.range) throw new Error('Run this from the form submit trigger.');
var sheet = e.range.getSheet();
var width = Math.max(sheet.getLastColumn(), e.range.getNumColumns());
var headers = sheet.getRange(1, 1, 1, width).getValues()[0].map(function (h) { return String(h).trim(); });
var values = sheet.getRange(e.range.getRow(), 1, 1, width).getValues()[0];
var status = ensureStatus_(sheet, headers);
headers = status.headers;
var email = emailFrom_(headers, values);
if (!email) throw new Error('No email on this response.');
var name = named_(headers, values, ['Name', 'Nume']) || 'there';
var lines = [];
for (var i = 0; i < headers.length; i++) {
if (!headers[i] || headers[i] === 'Status') continue;
lines.push(headers[i] + ': ' + values[i]);
}
MailApp.sendEmail({
to: email,
subject: 'We received your message',
body: 'Hello ' + name + ',\n\nWe received your message.\n\n' + lines.join('\n') + '\n'
});
sheet.getRange(e.range.getRow(), status.index + 1).setValue('Replied');
}
function ensureStatus_(sheet, headers) {
for (var i = 0; i < headers.length; i++) {
if (headers[i].toLowerCase() === 'status') return { headers: headers, index: i };
}
sheet.getRange(1, headers.length + 1).setValue('Status');
headers.push('Status');
return { headers: headers, index: headers.length - 1 };
}
function emailFrom_(headers, values) {
var names = ['email', 'email address', 'e-mail'];
for (var i = 0; i < headers.length; i++) {
if (names.indexOf(headers[i].toLowerCase()) >= 0) return String(values[i] || '').trim();
}
return '';
}
function named_(headers, values, names) {
for (var i = 0; i < headers.length; i++) {
for (var n = 0; n < names.length; n++) {
if (headers[i].toLowerCase() === names[n].toLowerCase()) return String(values[i] || '').trim();
}
}
return '';
}