WhatsApp میسجز کو Google Sheets میں لاگ کریں اور شیٹ سے بھیجیں
نمبر کی ویب ہک منزل n8n ورک فلو پر رکھیں، جس کا Google Sheets نوڈ ہر میسج پر ایک قطار شامل کرتا ہے: بھیجنے والا، نام، متن، میسج آئی ڈی اور وقت۔ شیٹ سے بھیجنے کے لیے Apps Script فنکشن قطاروں پر چل کر 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 میسج آئی ڈی، ٹائم اسٹیمپ اور وصول کرنے والی فون نمبر آئی ڈی۔
اگر آپ چاہتے ہیں کہ ری ٹرائی بے ضرر رہے تو سادہ Append کی جگہ میسج آئی ڈی پر مبنی Append or Update Row استعمال کریں۔ Meta جب سمجھتا ہے کہ ڈیلیوری ناکام ہوئی تو میسج دوبارہ بھیجتا ہے، اور آئی ڈی کو کلید بنانے سے دوسری ڈیلیوری اسی قطار کی اپڈیٹ بن جاتی ہے۔
Coexistence نمبر پر WhatsApp Business ایپ میں لکھے گئے جوابات اسی ویب ہک پر smb_message_echoes ایونٹس کی صورت میں آتے ہیں۔ انہیں direction کالم کے ساتھ لاگ کریں تو شیٹ میں دونوں طرف کی بات چیت ہوگی۔
Sheets کا کوٹا کہاں رکاوٹ بنتا ہے؟
فی صارف تحریروں پر۔ Sheets API فی منٹ فی پروجیکٹ 300 تحریری درخواستوں اور فی منٹ فی صارف فی پروجیکٹ 60 کی اجازت دیتا ہے، اور n8n کا ایک کریڈنشل ایک صارف شمار ہوتا ہے۔ اس لیے ہر میسج پر ایک قطار شامل کرنے والا ورک فلو مسلسل تقریباً ایک میسج فی سیکنڈ سنبھال سکتا ہے۔
زیادہ تر دکانوں کے نمبروں کے لیے یہ کافی ہے۔ براڈکاسٹ ٹیمپلیٹ کے بعد جب چند سو گاہک منٹوں میں جواب دیتے ہیں تو یہ کافی نہیں رہتا۔ تب API جواب میں 429 دیتی ہے اور ری ٹرائی کے بغیر قطاریں غائب ہو جاتی ہیں۔
دو حل ہیں، کوئی ایک کافی ہے۔ Google Sheets نوڈ پر ویٹ کے ساتھ ری ٹرائی آن کریں، جو Google کے اپنے مشورے یعنی بتدریج وقفہ بڑھانے کے مطابق ہے۔ یا بیچ کریں: n8n تیس سیکنڈ تک میسجز جمع کرے اور انہیں ایک درخواست میں شامل کرے، یوں کئی تحریریں ایک بن جاتی ہیں۔
شیٹ سے ٹیمپلیٹ کیسے بھیجے جاتے ہیں؟
Apps Script سے، شیٹ کے Extensions مینو میں۔ ایک فنکشن وہ قطاریں پڑھتا ہے جو ابھی نہیں بھیجی گئیں، ہر ایک کے لیے UrlFetchApp سے Cloud API کے messages اینڈ پوائنٹ کو کال کرتا ہے، اور واپس ملنے والی میسج آئی ڈی اور وقت قطار میں لکھ دیتا ہے۔ ٹائم ڈریون ٹرگر اسے ہر چند منٹ بعد چلا سکتا ہے، یا آپ اسے کسٹم مینو سے ہاتھ سے چلا سکتے ہیں۔
ایکسیس ٹوکن کو کوڈ میں لکھنے کے بجائے اسکرپٹ پراپرٹیز میں رکھیں، تاکہ اسکرپٹ دیکھنے والا ہر شخص اسے نہ دیکھ سکے۔
کوٹا ذہن میں رکھیں۔ عام 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());
}
}عام غلطیاں
- میسج آئی ڈی پر کلید کے بغیر Append کرنا۔ تب Meta کی ری ٹرائی ایک ہی میسج کو دو قطاروں میں لکھ دیتی ہے۔
- جوابات کی بھرمار کے دوران ایک ہی کریڈنشل سے ہر میسج پر ایک قطار لکھنا۔ فی صارف 60 تحریر فی منٹ کی حد 429 لوٹاتی ہے اور قطاریں ضائع ہو جاتی ہیں۔
- شیٹ سے ان لوگوں کو آزاد متن بھیجنا جنہوں نے 24 گھنٹوں میں کچھ نہیں لکھا۔ اس وقت کی کھڑکی سے باہر صرف منظور شدہ ٹیمپلیٹ پہنچتا ہے۔
نمبر کو easycoexistence.com پر جوڑیں، اس کی ویب ہک منزل n8n ورک فلو پر رکھیں، اور فون نمبر آئی ڈی اور ٹوکن اسکرپٹ میں کاپی کریں۔ قیمت US$ 9 فی کنیکٹڈ نمبر ماہانہ سے شروع ہو کر نمبر بڑھنے کے ساتھ US$ 1 تک آتی ہے، اور پہلے 3 دن مفت ہیں۔
اکثر پوچھے جانے والے سوالات
کیا میں n8n کی جگہ Make یا Zapier استعمال کر سکتا ہوں؟
جی ہاں۔ Make کا کسٹم ویب ہک یا Zapier کا catch hook میسج وصول کرتا ہے اور ان کا Google Sheets مرحلہ قطار شامل کر دیتا ہے۔
n8n کس Google اکاؤنٹ کے طور پر لکھتا ہے؟
اسی اکاؤنٹ کے طور پر جس نے n8n کے Google کریڈنشل کو اجازت دی ہو۔ اس اکاؤنٹ کو شیٹ کی ایڈٹ رسائی چاہیے، اور ورک فلو اسی کا فی صارف تحریری کوٹا خرچ کرتا ہے۔
کیا فون کا کالم درست فارمیٹ میں ہے؟
نمبروں کو سادہ متن میں رکھیں: ملکی کوڈ کے ساتھ ہندسے اور پلس کے بغیر، جیسا Meta بھیجتا ہے۔ ورنہ Sheets انہیں عدد سمجھ کر شروع کا پلس ہٹا دیتا ہے اور لمبی قدروں کی شکل بدل سکتا ہے۔
کیا EasyCoexistence میسجز کی کاپی رکھتا ہے؟
نہیں۔ Meta ہر ویب ہک آپ کے n8n URL پر پہنچاتا ہے، اور شیٹ ہی واحد کاپی ہے۔
مزید پڑھیں
شروع کرنے کے لیے تیار ہیں؟
WhatsApp Coexistence چند منٹ میں سیٹ اپ کریں، مہینوں میں نہیں۔ ایپ فون پر کام کرتی رہتی ہے۔
فری ٹرائل شروع کریںتصدیق شدہ تاریخ