WhatsApp म्यासेज Airtable मा लग गर्नुहोस् र base बाट पठाउनुहोस्
Airtable को incoming वेबहुक ट्रिगरले POST अनुरोध मात्र स्वीकार गर्छ, त्यसैले यसले Meta को प्रमाणीकरण GET को उत्तर दिन सक्दैन र कुनै नम्बरको वेबहुक गन्तव्य बन्न सक्दैन। गन्तव्यलाई n8n workflow मा देखाउनुहोस्, जसले हरेक म्यासेज तालिकामा थप्छ। पठाउने काम Airtable भित्रैबाट हुन्छ: Run a script automation ले fetch र गोप्य रूपमा राखिएको नम्बरको टोकन प्रयोग गरेर Cloud API लाई कल गर्न सक्छ।
Airtable को When webhook received ट्रिगरले अन्य कुनै method स्वीकार गर्दैन, त्यसैले यसले प्रमाणीकरणको GET लाई उत्तर दिन सक्दैन।
Airtable को incoming वेबहुक ट्रिगरको अनुरोध सीमा, जसमा 100 KB को पेलोड सीमा पनि छ।
एउटा Airtable Run a script action ले गर्न सक्ने अनुरोध संख्या, जसमध्ये हरेक 30 सेकेन्डमा समय सकिन्छ।
Airtable ले WhatsApp वेबहुक सिधै किन प्राप्त गर्न सक्दैन?
किनभने Meta ले केही पठाउनुअघि गन्तव्य जाँच गर्छ। यसले challenge मान सहितको GET अनुरोध पठाउँछ र प्रतिक्रियाको body मा त्यही मान फिर्ता आउने अपेक्षा गर्छ। Airtable को When webhook received ट्रिगरले POST अनुरोध मात्र स्वीकार गर्छ र आफ्नै तोकिएको JSON ले जवाफ दिन्छ, त्यसैले जाँच पास हुँदैन र Meta ले पठाउन सुरु नै गर्दैन।
समाधान बीचमा एउटा चरण राख्नु हो। n8n को Webhook node ले प्रमाणीकरण सम्हाल्छ र हरेक म्यासेज प्राप्त गर्छ, अनि n8n को Airtable node ले row थप्छ: पठाउने व्यक्ति, प्रोफाइल नाम, टेक्स्ट, म्यासेज id, समय र प्राप्त गर्ने phone_number_id। Make वा Zapier मा पनि यही ढाँचा चल्छ।
बीचको यो चरणको अर्को फाइदा पनि छ। Airtable को वेबहुक ट्रिगरले प्रति सेकेन्ड पाँच अनुरोध मात्र दिन्छ, जबकि workflow टुलले एकैचोटि आएको भीडलाई लाइनमा राख्न सक्छ, अन्यथा त्यो अस्वीकार हुने थियो।
Airtable base बाट WhatsApp टेम्प्लेट कसरी पठाउने?
Run a script भन्ने action भएको automation प्रयोग गरेर। ट्रिगर कुनै record view मा आउनु, कुनै field परिवर्तन हुनु वा बटन थिचिनु हुन सक्छ। स्क्रिप्टले input.config() मार्फत record को फोन र field पढ्छ र fetch ले Cloud API को म्यासेज एन्डपोइन्टलाई कल गर्छ। Airtable automation का स्क्रिप्ट सर्भरमा चल्छन्, त्यसैले ब्राउजरको कुनै बाधा हुँदैन।
एक्सेस टोकनलाई कोडमा नराखी स्क्रिप्ट एडिटरमा secret को रूपमा राख्नुहोस्। Airtable ले console output बाट secret हटाउँछ र स्क्रिप्टका सबै secret मा पहुँच भएका व्यक्तिलाई मात्र सम्पादन गर्न दिन्छ।
ग्राहकले पछिल्लो 24 घण्टामा सम्पर्क नगरेको भए टेम्प्लेट प्रयोग गर्नुहोस्, किनभने स्वतन्त्र टेक्स्ट त्यो अवधिभित्र मात्र पुग्छ। स्क्रिप्टले फिर्ता आएको म्यासेज id लाई record मा लेख्न सक्छ, जसले पठाइएको म्यासेजलाई row सँग जोड्छ।
const { phone, name } = input.config();
const token = input.secret("WHATSAPP_TOKEN");
const res = await fetch(
"https://graph.facebook.com/v23.0/<PHONE_NUMBER_ID>/messages",
{
method: "POST",
headers: { Authorization: "Bearer " + token, "Content-Type": "application/json" },
body: JSON.stringify({
messaging_product: "whatsapp",
to: phone,
type: "template",
template: {
name: "order_ready",
language: { code: "en" },
components: [{ type: "body", parameters: [{ type: "text", text: name }] }],
},
}),
},
);
output.set("result", await res.json());म्यासेज तालिका कस्तो हुनुपर्छ?
हरेक म्यासेजको एउटा row, र WhatsApp म्यासेज id लाई primary field बनाउनुहोस्। Meta ले असफल भएको ठान्ने डेलिभरी फेरि पठाउँछ, र append गर्नुअघि id खोज्ने workflow ले एउटै म्यासेज दुई पटक लेख्दैन।
inbound र outbound भएको direction field राख्नुहोस्। Coexistence नम्बरमा टिमले WhatsApp Business एपमा टाइप गरेका जवाफहरू smb_message_echoes events को रूपमा त्यही वेबहुकमा आउँछन्, र तिनलाई outbound row मा लग गर्दा base मा कुराकानीको एकतर्फी होइन, पूरा रूप हुन्छ।
हरेक म्यासेजलाई Contacts तालिकासँग जोड्नुहोस्, जसको key अंक मात्र भएको फोन नम्बर हो, किनकि Meta ले त्यही रूप पठाउँछ। त्यसपछि rollup ले प्रत्येक सम्पर्कको पछिल्लो inbound समय देखाउँछ, र स्वतन्त्र टेक्स्ट वा टेम्प्लेटमध्ये छान्न automation लाई त्यही एउटा field चाहिन्छ।
सामान्य गल्तीहरू
- Airtable को वेबहुक URL लाई नम्बरको गन्तव्य बनाउनु। यसले POST मात्र स्वीकार गर्छ, Meta को प्रमाणीकरण GET असफल हुन्छ, र केही पनि डेलिभर हुँदैन।
- एक्सेस टोकनलाई स्क्रिप्टको body मा टाँस्नु। यसलाई स्क्रिप्ट secret मा राख्नुहोस्, ताकि यो कोड र लगबाट बाहिर रहोस्।
- 24 घण्टामा नलेखेको व्यक्तिलाई record automation बाट स्वतन्त्र टेक्स्ट पठाउनु। स्वीकृत टेम्प्लेट मात्र पुग्छ।
easycoexistence.com मा नम्बर जडान गर्नुहोस्, त्यसको वेबहुक गन्तव्यलाई Airtable मा लेख्ने n8n workflow मा देखाउनुहोस्, र phone_number_id तथा टोकन ड्यासबोर्डबाट पढ्नुहोस्। प्रति नम्बर प्रति महिना US$ 9 बाट सुरु, नम्बर थप्दै जाँदा US$ 1 सम्म घट्छ, र पहिलो 3 दिन निःशुल्क।
बारम्बार सोधिने प्रश्नहरू
के Airtable को निःशुल्क योजनामा Run a script छ?
Airtable ले यो action सबै प्रकारका योजनामा विभिन्न सीमासहित सूचीबद्ध गरेको छ, र Team योजनाको ट्रायलमा उपलब्ध नहुने उल्लेख गरेको छ।
के म n8n छोडेर Make वा Zapier प्रयोग गर्न सक्छु?
सक्नुहुन्छ। तीनमध्ये कुनैले पनि वेबहुक प्राप्त गर्न, प्रमाणीकरणको उत्तर दिन र row थप्न सक्छ। गन्तव्य बन्न नसक्ने एउटै भाग Airtable आफैँ हो।
के Airtable को बटनले WhatsApp म्यासेज पठाउन सक्छ?
सक्छ। When a button is clicked ट्रिगर र Cloud API लाई कल गर्ने Run a script action प्रयोग गर्नुहोस्, र row को डेटाले टेम्प्लेट भर्छ।
के EasyCoexistence ले म्यासेज भण्डारण गर्छ?
गर्दैन। Meta ले हरेक वेबहुक तपाईंको n8n URL मा पठाउँछ, र एकमात्र प्रति तपाईंको workflow ले Airtable मा लेखेको हो।
पढ्दै जानुहोस्
सुरु गर्न तयार हुनुहुन्छ?
महिनौं होइन, केही मिनेटमै WhatsApp Coexistence सेट अप गर्नुहोस्। एप फोनमा चलिरहन्छ।
निःशुल्क ट्रायल सुरु गर्नुहोस्प्रमाणीकरण गरिएको