WhatsApp मेसेज Google Sheets मध्ये नोंदवा आणि शीटमधून पाठवा
नंबरचे वेबहुक डेस्टिनेशन एका n8n वर्कफ्लोकडे वळवा, ज्यातील Google Sheets नोड प्रत्येक मेसेजसाठी एक ओळ जोडतो: पाठवणारा, नाव, मजकूर, मेसेज id आणि वेळ. शीटमधून पाठवण्यासाठी Apps Script फंक्शन ओळींवर फिरून नंबरचा `phone_number_id` आणि टोकन वापरून UrlFetchApp ने Cloud API ला कॉल करू शकते. टीम WhatsApp Business ॲपमधूनच उत्तरे देत राहते.
Google Sheets API ला प्रति मिनिट, प्रति वापरकर्ता, प्रति प्रोजेक्ट परवानगी असलेल्या लेखन विनंत्या; प्रति प्रोजेक्ट 300.
सामान्य Google खात्यासाठी Apps Script URL Fetch कॉल; Workspace खात्यांना 100,000 मिळतात.
एका Apps Script एक्झिक्युशनला थांबवण्यापूर्वी जास्तीत जास्त किती वेळ चालण्याची मुभा आहे.
प्रत्येक WhatsApp मेसेजची ओळ कशी तयार होते?
नंबरवरील प्रत्येक मेसेज Meta तुम्ही ठरवलेल्या वेबहुक डेस्टिनेशनवर पोस्ट करते. इथे ते n8n चे Webhook नोड आहे, जे Meta च्या पडताळणी विनंतीलाही प्रतिसाद देते. पुढचा नोड Google Sheets आहे, ज्यात Append Row ऑपरेशन पेलोडमधील फील्ड स्तंभांमध्ये भरते: पाठवणाऱ्याचा नंबर, प्रोफाइल नाव, मजकूर, WhatsApp मेसेज id, टाइमस्टॅम्प आणि मेसेज स्वीकारणाऱ्या फोनचा `phone_number_id`.
रीट्राय निरुपद्रवी ठेवायचे असतील तर साध्या append ऐवजी मेसेज id वर आधारित Append or Update Row वापरा. डिलिव्हरी अयशस्वी झाली असे वाटल्यास Meta मेसेज पुन्हा पाठवते, आणि id ची किल्ली असल्यास दुसरी डिलिव्हरी त्याच ओळीचे अपडेट बनते.
Coexistence नंबरवर WhatsApp Business ॲपमधून टाइप केलेली उत्तरे त्याच वेबहुकवर smb_message_echoes इव्हेंट म्हणून येतात. त्यांना direction स्तंभासह नोंदवा, म्हणजे शीटमध्ये दोन्ही बाजू दिसतात.
Sheets ची मर्यादा कुठे अडचण करते?
प्रति वापरकर्ता लेखनावर. Sheets API प्रति प्रोजेक्ट प्रति मिनिट 300 लेखन विनंत्या आणि प्रति प्रोजेक्ट प्रति वापरकर्ता प्रति मिनिट 60 विनंत्यांना परवानगी देते, आणि n8n चे एक क्रेडेन्शियल म्हणजे एक वापरकर्ता. त्यामुळे प्रत्येक मेसेजला एक ओळ जोडणारा वर्कफ्लो सातत्याने साधारण सेकंदाला एक मेसेज हाताळू शकतो.
बहुतेक दुकानांच्या नंबरसाठी हे पुरेसे आहे. पण ब्रॉडकास्ट टेम्प्लेटनंतर काही मिनिटांत शेकडो ग्राहक उत्तर देतात, तेव्हा ते अपुरे ठरते. तेव्हा API 429 Too Many Requests देते आणि रीट्राय नसतील तर ओळी हरवतात.
दोनपैकी कोणताही एक उपाय पुरेसा आहे. Google Sheets नोडवर प्रतीक्षेसह रीट्राय चालू करा, जे Google च्या स्वतःच्या exponential back off सल्ल्याशी जुळते. किंवा बॅच करा: n8n ने तीस सेकंद मेसेज गोळा करून ते एकाच विनंतीत जोडावेत, ज्यामुळे अनेक लेखने एक होतात.
शीटमधून टेम्प्लेट कसे पाठवायचे?
Apps Script ने, शीटच्या Extensions मेनूमधून. एक फंक्शन न पाठवलेल्या ओळी वाचते, प्रत्येकासाठी UrlFetchApp ने Cloud API च्या messages एंडपॉइंटला कॉल करते, आणि मिळालेला मेसेज id व वेळ त्या ओळीत लिहिते. टाइम-ड्रिव्हन ट्रिगर ते दर काही मिनिटांनी चालवू शकतो, किंवा तुम्ही कस्टम मेनूमधून हाताने चालवू शकता.
ॲक्सेस टोकन कोडमध्ये न ठेवता स्क्रिप्ट प्रॉपर्टीजमध्ये साठवा, म्हणजे स्क्रिप्ट पाहू शकणाऱ्या कोणालाही ते दिसणार नाही.
मर्यादा लक्षात ठेवा. सामान्य Google खात्याला दिवसाला 20,000 URL Fetch कॉल मिळतात आणि Workspace खात्याला 100,000, तसेच प्रत्येक एक्झिक्युशन सहा मिनिटांनी थांबते. ओळी तुकड्यांमध्ये प्रक्रिया करा आणि पुढे जाण्यापूर्वी प्रत्येक ओळ पाठवलेली म्हणून चिन्हांकित करा, म्हणजे थांबलेला रन दोनदा न पाठवता जिथे थांबला तिथून पुन्हा सुरू होईल.
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());
}
}सामान्य चुका
- मेसेज id वर किल्ली न ठेवता append करणे. मग Meta चे रीट्राय तोच मेसेज दोन ओळींत लिहितात.
- उत्तरांच्या लाटेत एकाच क्रेडेन्शियलने प्रत्येक मेसेजसाठी एक ओळ लिहिणे. प्रति वापरकर्ता प्रति मिनिट 60 लेखनांची मर्यादा 429 देते आणि ओळी हरवतात.
- 24 तासांत ज्यांनी मेसेज केलेला नाही अशा लोकांना शीटमधून मुक्त मजकूर पाठवणे. त्या कालावधीबाहेर फक्त मंजूर टेम्प्लेट पोहोचते.
easycoexistence.com वर नंबर कनेक्ट करा, त्याचे वेबहुक डेस्टिनेशन n8n वर्कफ्लोकडे वळवा आणि `phone_number_id` व टोकन स्क्रिप्टमध्ये कॉपी करा. प्रति नंबर प्रति महिना US$ 9 पासून, नंबर जोडत जाल तसे US$ 1 पर्यंत, आणि पहिले 3 दिवस मोफत.
वारंवार विचारले जाणारे प्रश्न
n8n ऐवजी Make किंवा Zapier वापरता येईल का?
होय. Make चे custom webhook किंवा Zapier चे catch hook मेसेज स्वीकारते आणि त्यांचा Google Sheets स्टेप ओळ जोडतो.
n8n कोणत्या Google खात्याने लिहिते?
n8n चे Google क्रेडेन्शियल ज्या खात्याने अधिकृत केले, त्याने. त्या खात्याला शीटवर संपादनाचा ॲक्सेस हवा, आणि वर्कफ्लो त्याच खात्याची प्रति वापरकर्ता लेखन मर्यादा वापरतो.
फोन स्तंभाचे फॉरमॅट बरोबर आहे का?
नंबर साध्या मजकूर म्हणून साठवा: देशाच्या कोडसह अंक, प्लस चिन्हाशिवाय, कारण Meta असेच पाठवते. नाहीतर Sheets त्यांना संख्या समजते, ज्यामुळे सुरुवातीचा प्लस जातो आणि लांब मूल्यांचे फॉरमॅट बदलू शकते.
EasyCoexistence मेसेजची प्रत ठेवते का?
नाही. Meta प्रत्येक वेबहुक तुमच्या n8n यूआरएलवर पोहोचवते, आणि शीट हीच एकमेव प्रत आहे.
पुढे वाचा
सुरुवात करण्यासाठी तयार आहात?
WhatsApp Coexistence काही मिनिटांत सेट करा, काही महिन्यांत नाही. ॲप फोनवर काम करत राहते.
मोफत ट्रायल सुरू करापडताळले: