WhatsApp म्यासेज Google Sheets मा लग गर्नुहोस् र सिटबाट पठाउनुहोस्
नम्बरको वेबहुक गन्तव्यलाई n8n वर्कफ्लोतर्फ देखाउनुहोस्, जसको Google Sheets node ले प्रत्येक म्यासेजको एक पङ्क्ति थप्छ: पठाउने, नाम, टेक्स्ट, म्यासेज id र समय। सिटबाट पठाउन, Apps Script को एउटा function ले पङ्क्तिहरू पढेर नम्बरको 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 node हो, जसले Meta को प्रमाणीकरण अनुरोधको पनि प्रतिक्रिया दिन्छ। अर्को node Google Sheets हो, जसमा Append Row operation छ र पेलोडका फिल्डहरू स्तम्भमा मिलाइन्छ: पठाउनेको नम्बर, प्रोफाइल नाम, टेक्स्ट, 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 को एउटा credential एक प्रयोगकर्ता हो। त्यसैले प्रत्येक म्यासेजको एक पङ्क्ति थप्ने वर्कफ्लोले निरन्तर रूपमा सेकेन्डमा करिब एक म्यासेज थाम्न सक्छ।
धेरैजसो पसलका नम्बरका लागि यो पर्याप्त छ। तर ब्रोडकास्ट टेम्प्लेटपछि, जब केही सय ग्राहकले केही मिनेटभित्र जवाफ दिन्छन्, यो पुग्दैन। त्यतिबेला API ले 429 Too Many Requests फर्काउँछ र पुनः प्रयास नभए पङ्क्तिहरू हराउँछन्।
दुईमध्ये जुनसुकै उपाय पर्याप्त छ। Google Sheets node मा पुनः प्रयास र प्रतीक्षा खोल्नुहोस्, जुन Google को आफ्नै exponential back off को सल्लाहसँग मिल्छ। अथवा समूहमा पठाउनुहोस्: n8n ले 30 सेकेन्डसम्म म्यासेज जम्मा गरेर एउटै अनुरोधमा थप्छ, जसले धेरै लेखनलाई एउटामा बदल्छ।
सिटबाट टेम्प्लेट कसरी पठाउने?
Apps Script मार्फत, सिटको Extensions मेनुबाट। एउटा function ले नपठाइएका पङ्क्तिहरू पढ्छ, प्रत्येकका लागि UrlFetchApp ले Cloud API को messages एन्डपोइन्टलाई कल गर्छ, र फर्केको म्यासेज id र समय पङ्क्तिमा लेख्छ। time-driven trigger ले यसलाई हरेक केही मिनेटमा चलाउन सक्छ, वा तपाईं custom मेनुबाट हातैले चलाउन सक्नुहुन्छ।
एक्सेस टोकन कोडमा होइन, स्क्रिप्टको properties मा राख्नुहोस्, ताकि स्क्रिप्ट हेर्न पाउने जोकोहीले त्यो देख्न नपाओस्।
कोटा याद राख्नुहोस्। साधारण Google खातालाई दिनमा 20,000 URL Fetch कल र Workspace खातालाई 100,000 मिल्छ, र प्रत्येक कार्यान्वयन 6 मिनेटपछि रोकिन्छ। पङ्क्तिहरूलाई टुक्रा टुक्रा गरेर प्रशोधन गर्नुहोस् र अगाडि बढ्नुअघि प्रत्येकलाई पठाइसकेको चिन्ह लगाउनुहोस्, ताकि रोकिएको रन दोहोर्याएर पठाउनुको सट्टा जहाँबाट रोकिएको थियो त्यहीँबाट फेरि सुरु होस्।
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 मा कुञ्जी नराखी थप्नु। त्यसपछि Meta को पुनः प्रयासले उही म्यासेज दुई पङ्क्तिमा लेख्छ।
- जवाफको भीडमा एउटै credential मार्फत प्रत्येक म्यासेजको एक पङ्क्ति लेख्नु। प्रति प्रयोगकर्ता प्रति मिनेट 60 लेखनको सीमाले 429 फर्काउँछ र पङ्क्तिहरू हराउँछन्।
- 24 घण्टा भित्र नलेखेका मानिसलाई सिटबाट स्वतन्त्र टेक्स्ट पठाउनु। त्यो अवधिबाहिर स्वीकृत टेम्प्लेटले मात्र डेलिभर हुन्छ।
easycoexistence.com मा नम्बर जडान गर्नुहोस्, यसको वेबहुक गन्तव्यलाई n8n वर्कफ्लोतर्फ देखाउनुहोस्, र phone_number_id तथा टोकन स्क्रिप्टमा कपी गर्नुहोस्। प्रति नम्बर प्रति महिना US$ 9 देखि सुरु हुन्छ, नम्बर थप्दै जाँदा US$ 1 सम्म घट्दै जान्छ, र पहिलो 3 दिन निःशुल्क छ।
बारम्बार सोधिने प्रश्नहरू
n8n को सट्टा Make वा Zapier प्रयोग गर्न सकिन्छ?
सकिन्छ। Make को custom वेबहुक वा Zapier को catch hook ले म्यासेज प्राप्त गर्छ र तिनको Google Sheets चरणले पङ्क्ति थप्छ।
n8n ले कुन Google खाताका रूपमा लेख्छ?
n8n को Google credential लाई अधिकृत गर्ने खाताका रूपमा। त्यस खातालाई सिटमा सम्पादन पहुँच चाहिन्छ, र वर्कफ्लोले खर्च गर्ने लेखन कोटा त्यही खाताको प्रति प्रयोगकर्ता कोटा हो।
फोन स्तम्भको फर्म्याट ठीक छ?
नम्बरहरू साधारण टेक्स्टका रूपमा राख्नुहोस्: देशको कोडसहित अङ्कहरू, प्लस चिन्ह बिना, जुन फर्म्याटमा Meta ले पठाउँछ। अन्यथा Sheets ले तिनलाई सङ्ख्या ठान्छ, जसले सुरुको प्लस हटाउँछ र लामा मान पनि बदलिन सक्छन्।
के EasyCoexistence ले म्यासेजको प्रतिलिपि राख्छ?
राख्दैन। Meta ले हरेक वेबहुक तपाईंको n8n URL मा डेलिभर गर्छ, र सिट नै एक मात्र प्रतिलिपि हो।
पढ्दै जानुहोस्
सुरु गर्न तयार हुनुहुन्छ?
महिनौं होइन, केही मिनेटमै WhatsApp Coexistence सेट अप गर्नुहोस्। एप फोनमा चलिरहन्छ।
निःशुल्क ट्रायल सुरु गर्नुहोस्प्रमाणीकरण गरिएको