Sari la conținut

Toate automatizările gratuite

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

TimestampNameEmailMessageStatus
2026-10-25 09:00Ana Popana@example.comI need a booking pageReplied

Instalare, cam 5 minute

  1. Leagă formularul de o foaie. Formularul trebuie să ceară adresa de email, sau să aibă o întrebare numită Email.
  2. Deschide Extensions > Apps Script și lipește codul.
  3. Adaugă un trigger instalabil: On form submit, funcția onFormSubmit.
  4. Autorizează Gmail la prima rulare.
  5. 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 '';
}

Ghid: cum folosești template-urile gratuite