I-log ang mga mensahe sa WhatsApp sa Airtable at magpadala mula sa isang base
POST request lamang ang tinatanggap ng incoming webhook trigger ng Airtable, kaya hindi nito masasagot ang verification GET ng Meta at hindi ito maaaring maging webhook destination ng numero. Ituro po ninyo ang destination sa isang n8n workflow na nag-a-append ng bawat mensahe sa isang table. Sa loob mismo ng Airtable gumagana ang pagpapadala: ang Run a script automation ay maaaring tumawag sa Cloud API gamit ang fetch, at ang token ng numero ay nakaimbak bilang secret.
Walang ibang method na tinatanggap ang When webhook received trigger ng Airtable, kaya hindi nito masasagot ang verification GET.
Limitasyon ng request sa incoming webhook trigger ng Airtable, na may 100 KB na payload cap.
Mga request na magagawa ng isang Run a script action ng Airtable, na bawat isa ay nagti-time out pagkatapos ng 30 segundo.
Bakit hindi direktang matanggap ng Airtable ang mga webhook ng WhatsApp?
Dahil sinusuri muna ng Meta ang isang destination bago ito maghatid ng anuman. Nagpapadala ito ng GET request na may challenge value at inaasahang ibabalik ang parehong value bilang response body. POST request lamang ang tinatanggap ng When webhook received trigger ng Airtable at sumasagot ito ng sarili nitong nakapirming JSON, kaya hindi papasa ang pagsusuri at hindi kailanman magsisimulang maghatid ang Meta.
Ang solusyon ay isang hakbang sa pagitan. Ang n8n Webhook node ang humahawak ng verification at tumatanggap ng bawat mensahe, at ang Airtable node ng n8n ang nag-a-append ng row: nagpadala, pangalan sa profile, teksto, ID ng mensahe, timestamp at ang phone number id ng tumanggap na numero. Ganito rin ang hugis sa Make o Zapier.
May ikalawang benepisyo ang hakbang na ito. Limang request kada segundo ang pinapayagan ng webhook trigger ng Airtable, at kayang i-queue ng isang workflow tool ang biglaang dami na kung hindi ay tatanggihan.
Paano magpadala ng WhatsApp template mula sa isang Airtable base?
Gumamit po ng automation na ang action ay Run a script. Ang trigger ay maaaring isang record na pumapasok sa isang view, isang field na nagbago o isang button na na-click. Binabasa ng script ang telepono at mga field ng record sa pamamagitan ng input.config() at tinatawag ang messages endpoint ng Cloud API gamit ang fetch. Server-side tumatakbo ang mga automation script ng Airtable, kaya walang restriksyon ng browser na hahadlang.
Iimbak ang access token bilang secret sa script editor sa halip na sa code. Inaalis ng Airtable ang mga secret sa console output at tanging ang mga taong may access sa lahat ng secret ng isang script ang makakapag-edit nito.
Gumamit ng template para sa anumang hindi pinasimulan ng customer sa nakalipas na 24 oras, dahil sa loob lamang ng window na iyon naihahatid ang free-form text. Maaaring isulat ng script pabalik sa record ang ibinalik na ID ng mensahe, na nag-uugnay sa pagpapadala sa 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());Ano ang dapat na hitsura ng messages table?
Isang row kada mensahe, na ang ID ng mensahe sa WhatsApp ang primary field. Inuulit ng Meta ang mga paghahatid na inaakala nitong nabigo, at ang workflow na sinusuri muna ang ID bago mag-append ay hindi kailanman magsusulat ng parehong mensahe nang dalawang beses.
Magkaroon ng direction field na may inbound at outbound. Sa isang Coexistence number, ang mga sagot na tina-type ng team sa WhatsApp Business app ay dumarating sa parehong webhook bilang mga smb_message_echoes event, at ang pag-log sa mga ito bilang outbound row ay nagbibigay sa base ng buong usapan sa halip na isang panig lamang.
I-link ang bawat mensahe sa isang Contacts table na naka-key sa numero ng telepono na digit lamang, ang anyong ipinapadala ng Meta. Ipinapakita ng isang rollup ang huling oras ng inbound kada contact, at ang nag-iisang field na iyon ang kailangan ng automation upang pumili sa pagitan ng free-form text at template.
Mga karaniwang pagkakamali
- Paglalagay ng Airtable webhook URL bilang destination ng numero. POST lamang ang tinatanggap nito, pumapalya ang verification GET ng Meta, at walang kailanman maihahatid.
- Pag-paste ng access token sa mismong script. Iimbak ito bilang script secret upang manatili ito sa labas ng code at ng mga log.
- Pagpapadala ng free-form text mula sa isang record automation sa taong hindi sumulat sa loob ng 24 oras. Tanging ang aprubadong template ang naihahatid.
I-connect po ninyo ang numero sa easycoexistence.com, ituro ang webhook destination nito sa n8n workflow na sumusulat sa Airtable, at kunin ang phone number id at token mula sa dashboard. Mula US$ 9 kada naka-connect na numero kada buwan, bumababa hanggang US$ 1 habang nadaragdagan ang mga numero, at libre ang unang 3 araw.
Mga madalas itanong
Available ba ang Run a script sa free plan ng Airtable?
Nakalista ng Airtable ang action na ito sa lahat ng uri ng plan na may iba't ibang limitasyon, at binabanggit nitong hindi ito available sa Team plan trial.
Maaari ko bang laktawan ang n8n at gumamit ng Make o Zapier?
Opo. Alinman sa tatlo ay maaaring tumanggap ng webhook, sumagot sa verification at mag-append ng row. Ang Airtable mismo ang tanging bahagi na hindi maaaring maging destination.
Maaari bang magpadala ng mensahe sa WhatsApp ang isang button ng Airtable?
Opo. Gamitin ang When a button is clicked trigger na may Run a script action na tumatawag sa Cloud API, at ang data ng row ang pupuno sa template.
Iniimbak ba ng EasyCoexistence ang mga mensahe?
Hindi po. Inihahatid ng Meta ang bawat webhook sa inyong n8n URL, at ang tanging kopya ay ang isinusulat ng inyong workflow sa Airtable.
Magpatuloy sa pagbabasa
Handa na po ba kayong magsimula?
I-set up ang WhatsApp Coexistence sa loob ng ilang minuto, hindi buwan. Patuloy na gumagana ang app sa telepono.
Magsimula ng Libreng TrialNa-verify noong