Prijavite seZapočnite besplatni probni period
Meta Tech Provider

Beležite WhatsApp poruke u Google Sheets i šaljite iz tabele

Usmerite odredište webhooka broja na n8n tok čiji Google Sheets čvor dodaje red za svaku poruku: pošiljalac, ime, tekst, ID poruke i vreme. Za slanje iz tabele, Apps Script funkcija može da prođe kroz redove i pozove Cloud API preko UrlFetchApp, koristeći ID telefonskog broja i token tog broja. Tim i dalje odgovara iz aplikacije WhatsApp Business.

60 / min

Dozvoljeni zahtevi za upis Google Sheets API-ja u minuti po korisniku po projektu; 300 po projektu.

20,000 / day

Apps Script URL Fetch pozivi za običan Google nalog; Workspace nalozi dobijaju 100.000.

6 min

Najduže vreme koje jedno izvršavanje Apps Scripta sme da traje pre nego što bude zaustavljeno.

Kako svaka WhatsApp poruka postaje red?

Meta šalje svaku poruku sa broja na odredište webhooka koje ste podesili, ovde je to n8n Webhook čvor koji takođe odgovara na Metin zahtev za verifikaciju. Sledeći čvor je Google Sheets sa operacijom Append Row, koji polja iz payloada mapira u kolone: broj pošiljaoca, ime profila, tekst, WhatsApp ID poruke, vremensku oznaku i ID telefonskog broja koji je primio poruku.

Koristite Append or Update Row sa ključem na ID-ju poruke umesto običnog dodavanja ako želite da ponovni pokušaji budu bezopasni. Meta ponovo isporučuje poruku kada misli da isporuka nije uspela, a ključ na ID-ju pretvara drugu isporuku u izmenu istog reda.

Na Coexistence broju, odgovori otkucani u aplikaciji WhatsApp Business stižu na isti webhook kao smb_message_echoes događaji. Beležite ih sa kolonom smera i tabela sadrži obe strane razgovora.

Gde kvota za Sheets počinje da smeta?

Na upisima po korisniku. Sheets API dozvoljava 300 zahteva za upis u minuti po projektu i 60 u minuti po korisniku po projektu, a n8n kredencijal je jedan korisnik. Tok koji dodaje jedan red po poruci stoga može da podnese oko jedne poruke u sekundi, trajno.

To je dovoljno za većinu brojeva male prodavnice. Prestaje da bude dovoljno posle masovnog slanja šablona, kada nekoliko stotina kupaca odgovori u roku od nekoliko minuta. API tada odgovara sa 429 Too Many Requests i, bez ponovnih pokušaja, redovi nedostaju.

Postoje dva rešenja, a dovoljno je bilo koje. Uključite ponovne pokušaje sa čekanjem na Google Sheets čvoru, što odgovara Googleovom savetu o eksponencijalnom odlaganju. Ili grupišite: neka n8n prikuplja poruke trideset sekundi i doda ih jednim zahtevom, čime se mnogo upisa pretvara u jedan.

Kako se šalju šabloni iz tabele?

Pomoću Apps Scripta, iz menija Extensions tabele. Funkcija čita redove koji još nisu poslati, za svaki poziva messages endpoint Cloud API-ja preko UrlFetchApp i upisuje vraćeni ID poruke i vreme u red. Okidač po vremenu može da je pokreće na svakih nekoliko minuta, ili je možete pokrenuti ručno iz prilagođenog menija.

Čuvajte pristupni token u svojstvima skripte, a ne u kodu, da ga ne vidi svako ko može da pregleda skriptu.

Imajte na umu kvote. Običan Google nalog dobija 20.000 URL Fetch poziva dnevno, a Workspace nalog 100.000, i svako izvršavanje se zaustavlja posle šest minuta. Obrađujte redove u delovima i označite svaki kao poslat pre nego što nastavite, da zaustavljeno izvršavanje nastavi odatle gde je stalo, umesto da šalje dvaput.

Apps Script: send one approved template per unsent row
function sendPending() {
  const token = PropertiesService.getScriptProperties().getProperty("WHATSAPP_TOKEN");
  const sheet = SpreadsheetApp.getActive().getSheetByName("Send");
  const rows = sheet.getDataRange().getValues();
  for (let i = 1; i < rows.length; i++) {
    const [phone, name, sentAt] = rows[i];
    if (sentAt) continue;
    const res = UrlFetchApp.fetch("https://graph.facebook.com/v23.0/<PHONE_NUMBER_ID>/messages", {
      method: "post",
      contentType: "application/json",
      headers: { Authorization: "Bearer " + token },
      payload: JSON.stringify({
        messaging_product: "whatsapp", to: String(phone), type: "template",
        template: { name: "order_ready", language: { code: "en" },
          components: [{ type: "body", parameters: [{ type: "text", text: name }] }] },
      }),
    });
    sheet.getRange(i + 1, 3).setValue(new Date());
  }
}

Česte greške

  • Dodavanje bez ključa na ID-ju poruke. Metini ponovni pokušaji tada upisuju istu poruku u dva reda.
  • Upis jednog reda po poruci kroz jedan kredencijal tokom talasa odgovora. Ograničenje od 60 upisa u minuti po korisniku vraća 429 i redovi se gube.
  • Slanje slobodnog teksta iz tabele osobama koje se nisu javile u poslednja 24 sata. Van tog prozora isporučuje se samo odobren šablon.
Ovo radite uz EasyCoexistence

Povežite broj na easycoexistence.com, usmerite njegovo odredište webhooka na n8n tok i kopirajte ID telefonskog broja i token u skriptu. Od US$ 9 po broju mesečno, do US$ 1 kako dodajete brojeve, uz prva 3 dana besplatno.

Često postavljana pitanja

Mogu li da koristim Make ili Zapier umesto n8n-a?

Da. Make prilagođeni webhook ili Zapier catch hook prima poruku, a njihov Google Sheets korak dodaje red.

Kao koji Google nalog n8n piše u tabelu?

Kao onaj koji je autorizovao n8n Google kredencijal. Taj nalog mora da ima pravo izmene tabele, a njegova kvota upisa po korisniku je ona koju tok troši.

Da li je kolona sa telefonom pravilno formatirana?

Čuvajte brojeve kao običan tekst, cifre sa pozivnim brojem države i bez znaka plus, što je oblik koji Meta šalje. Inače ih Sheets tretira kao brojeve, što uklanja početni plus i može da promeni format dugih vrednosti.

Da li EasyCoexistence čuva kopiju poruka?

Ne. Meta isporučuje svaki webhook na vaš n8n URL, a tabela je jedina kopija.

Nastavite sa čitanjem

Spremni da počnete?

Podesite WhatsApp Coexistence za nekoliko minuta, a ne meseci. Aplikacija nastavlja da radi na telefonu.

Započnite besplatni probni period

Provereno na

WhatsApp i Google Sheets preko Cloud API-ja