Zapisivanje WhatsApp poruka u Google Sheets i slanje iz tablice
Usmjerite odredište webhooka broja na n8n tijek rada čiji Google Sheets čvor dodaje redak za svaku poruku: pošiljatelj, ime, tekst, ID poruke i vrijeme. Za slanje iz tablice Apps Script funkcija može proći kroz retke i pozvati Cloud API preko UrlFetchApp, uz phone number id i token broja. Tim i dalje odgovara iz aplikacije WhatsApp Business.
Zahtjeva za pisanje Google Sheets API-ja dopušteno je u minuti po korisniku po projektu; 300 po projektu.
Apps Script URL Fetch poziva za potrošački Google račun; Workspace računi imaju 100.000.
Najdulje trajanje jednog izvršavanja Apps Scripta prije nego što se zaustavi.
Kako svaka WhatsApp poruka postaje redak?
Meta šalje svaku poruku s broja na odredište webhooka koje ste postavili, ovdje je to n8n Webhook čvor koji ujedno odgovara na Metin zahtjev za provjeru. Sljedeći čvor je Google Sheets s operacijom Append Row, koji polja iz payloada preslikava u stupce: broj pošiljatelja, ime profila, tekst, ID WhatsApp poruke, vremensku oznaku i phone number id primatelja.
Ako želite da ponovni pokušaji budu bezopasni, umjesto običnog dodavanja koristite Append or Update Row s ključem na ID-ju poruke. Meta ponovno isporučuje poruku kad smatra da isporuka nije uspjela, a ključ na ID-ju drugu isporuku pretvara u ažuriranje istog retka.
Na Coexistence broju odgovori upisani u aplikaciji WhatsApp Business stižu na isti webhook kao događaji smb_message_echoes. Zabilježite ih sa stupcem smjera i tablica će sadržavati obje strane razgovora.
Gdje kvota za Sheets postaje problem?
Kod pisanja po korisniku. Sheets API dopušta 300 zahtjeva za pisanje u minuti po projektu i 60 u minuti po korisniku po projektu, a n8n vjerodajnica jedan je korisnik. Tijek rada koji dodaje jedan redak po poruci stoga može podnijeti otprilike jednu poruku u sekundi, kontinuirano.
Za većinu brojeva trgovina to je dovoljno. Prestaje biti dovoljno nakon masovnog slanja predloška, kad nekoliko stotina kupaca odgovori u roku od nekoliko minuta. API tada odgovara s 429 Too Many Requests i, bez ponovnih pokušaja, reci se gube.
Dva rješenja, svako je dovoljno. Uključite ponovne pokušaje s čekanjem na Google Sheets čvoru, što odgovara Googleovu savjetu o eksponencijalnom povlačenju. Ili grupirajte: neka n8n prikuplja poruke trideset sekundi i doda ih jednim zahtjevom, čime se mnogo pisanja pretvara u jedno.
Kako poslati predloške iz tablice?
Pomoću Apps Scripta, iz izbornika Extensions u tablici. Funkcija čita retke koji još nisu poslani, za svaki poziva messages endpoint Cloud API-ja preko UrlFetchApp te u redak upisuje vraćeni ID poruke i vrijeme. Okidač vođen vremenom može je pokretati svakih nekoliko minuta, a možete je pokrenuti i ručno iz prilagođenog izbornika.
Pristupni token spremite u svojstva skripte, a ne u kôd, kako ga ne bi vidjeli svi koji mogu pregledati skriptu.
Imajte na umu kvote. Potrošački Google račun ima 20.000 URL Fetch poziva dnevno, a Workspace račun 100.000, a svako izvršavanje staje nakon šest minuta. Retke obrađujte u dijelovima i svaki označite kao poslan prije nastavka, kako bi prekinuto izvršavanje nastavilo gdje je stalo, umjesto da pošalje dvaput.
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());
}
}Uobičajene pogreške
- Dodavanje bez ključa na ID-ju poruke. Metini ponovni pokušaji tada upisuju istu poruku u dva retka.
- Pisanje jednog retka po poruci kroz jednu vjerodajnicu tijekom navale odgovora. Ograničenje od 60 upisa u minuti po korisniku vraća 429 i reci se gube.
- Slanje slobodnog teksta iz tablice osobama koje nisu pisale u zadnja 24 sata. Izvan tog razdoblja isporučuje samo odobreni predložak.
Povežite broj na easycoexistence.com, usmjerite njegovo odredište webhooka na n8n tijek rada te kopirajte phone number id i token u skriptu. Od US$ 9 po broju mjesečno, do US$ 1 kako dodajete brojeve, a prva 3 dana su besplatna.
Često postavljana pitanja
Mogu li umjesto n8n-a koristiti Make ili Zapier?
Da. Make custom webhook ili Zapier catch hook prima poruku, a njihov Google Sheets korak dodaje redak.
Kao koji Google račun n8n piše u tablicu?
Kao onaj koji je autorizirao n8n Google vjerodajnicu. Taj račun treba pravo uređivanja tablice, a njegova kvota pisanja po korisniku ona je koju tijek rada troši.
Je li stupac s brojem telefona ispravno formatiran?
Brojeve spremajte kao običan tekst, znamenke s pozivnim brojem države i bez znaka plus, što je oblik koji šalje Meta. Inače Sheets brojeve tretira kao brojčane vrijednosti, što uklanja početni plus i može preoblikovati dugačke vrijednosti.
Čuva li EasyCoexistence kopiju poruka?
Ne. Meta svaki webhook isporučuje na vaš n8n URL, a tablica je jedina kopija.
Nastavite čitati
Spremni za početak?
Postavite WhatsApp Coexistence u nekoliko minuta, a ne mjeseci. Aplikacija i dalje radi na telefonu.
Započnite besplatno probno razdobljeProvjereno na