Catat mesej WhatsApp ke Airtable dan hantar dari base
Pencetus webhook masuk Airtable hanya menerima permintaan POST, jadi ia tidak dapat menjawab GET pengesahan Meta dan tidak boleh menjadi destinasi webhook sesuatu nombor. Halakan destinasi ke aliran kerja n8n yang menambah setiap mesej ke jadual. Penghantaran boleh dibuat dari dalam Airtable: automasi Run a script boleh memanggil Cloud API dengan fetch dan token nombor itu disimpan sebagai rahsia.
Pencetus When webhook received Airtable tidak menerima kaedah lain, jadi ia tidak dapat menjawab GET pengesahan.
Had permintaan pada pencetus webhook masuk Airtable, dengan had payload 100 KB.
Permintaan yang boleh dibuat oleh satu tindakan Run a script Airtable, setiap satu tamat masa selepas 30 saat.
Mengapakah Airtable tidak dapat menerima webhook WhatsApp secara terus?
Kerana Meta menyemak destinasi sebelum menghantar apa-apa. Ia menghantar permintaan GET yang membawa nilai cabaran dan mengharapkan nilai yang sama dikembalikan sebagai badan respons. Pencetus When webhook received Airtable hanya menerima permintaan POST dan menjawab dengan JSON tetapnya sendiri, jadi semakan itu tidak dapat lulus dan Meta tidak pernah mula menghantar.
Penyelesaiannya ialah satu langkah di antara. Nod Webhook n8n mengendalikan pengesahan dan menerima setiap mesej, kemudian nod Airtable n8n menambah satu baris: penghantar, nama profil, teks, id mesej, cap masa dan id nombor telefon penerima. Bentuk yang sama berfungsi dalam Make atau Zapier.
Langkah di antara ini mempunyai manfaat kedua. Pencetus webhook Airtable membenarkan lima permintaan sesaat, dan alat aliran kerja boleh menyusun giliran lonjakan yang jika tidak akan ditolak.
Bagaimanakah cara menghantar template WhatsApp dari base Airtable?
Gunakan automasi yang tindakannya ialah Run a script. Pencetusnya boleh berupa rekod yang memasuki paparan, medan yang berubah atau butang yang diklik. Skrip membaca nombor telefon dan medan rekod melalui input.config() dan memanggil endpoint mesej Cloud API dengan fetch. Skrip automasi Airtable berjalan di pihak pelayan, jadi tiada sekatan pelayar yang menghalang.
Simpan access token sebagai rahsia dalam editor skrip dan bukan dalam kod. Airtable menyembunyikan rahsia daripada output konsol dan hanya membenarkan orang yang mempunyai akses kepada semua rahsia sesuatu skrip untuk menyuntingnya.
Gunakan template untuk apa-apa yang tidak dicetuskan oleh pelanggan dalam tempoh 24 jam lepas, kerana teks bebas hanya sampai dalam tetingkap itu. Skrip boleh menulis id mesej yang dikembalikan semula ke rekod, yang mengaitkan penghantaran dengan baris tersebut.
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());Bagaimanakah rupa jadual mesej yang baik?
Satu baris bagi setiap mesej, dengan id mesej WhatsApp sebagai medan utama. Meta mencuba semula penghantaran yang disangka gagal, dan aliran kerja yang mencari id itu dahulu sebelum menambah tidak akan menulis mesej yang sama dua kali.
Simpan medan arah dengan nilai inbound dan outbound. Pada nombor Coexistence, balasan yang ditaip oleh pasukan dalam aplikasi WhatsApp Business sampai ke webhook yang sama sebagai peristiwa smb_message_echoes, dan merekodkannya sebagai baris outbound memberi base keseluruhan perbualan, bukan satu pihak sahaja.
Pautkan setiap mesej ke jadual Contacts yang berkunci pada nombor telefon digit sahaja, iaitu bentuk yang dihantar oleh Meta. Rollup kemudian menunjukkan masa inbound terakhir bagi setiap kenalan, dan medan tunggal itulah yang diperlukan automasi untuk memilih antara teks bebas dan template.
Kesilapan biasa
- Menetapkan URL webhook Airtable sebagai destinasi nombor. Ia hanya menerima POST, GET pengesahan Meta gagal, dan tiada apa-apa pun dihantar.
- Menampal access token ke dalam badan skrip. Simpan sebagai rahsia skrip supaya ia tidak berada dalam kod dan log.
- Menghantar teks bebas daripada automasi rekod kepada orang yang tidak menulis dalam tempoh 24 jam. Hanya template yang diluluskan akan sampai.
Sambungkan nombor anda di easycoexistence.com, halakan destinasi webhooknya ke aliran kerja n8n yang menulis ke Airtable, dan baca id nombor telefon serta token daripada dashboard. Daripada US$ 9 sebulan bagi setiap nombor, jatuh kepada US$ 1 apabila nombor ditambah, dengan 3 hari pertama percuma.
Soalan lazim
Adakah Run a script tersedia pada pelan percuma Airtable?
Airtable menyenaraikan tindakan ini pada semua jenis pelan dengan had yang berbeza-beza, dan menyatakan ia tidak tersedia pada percubaan pelan Team.
Bolehkah saya tidak menggunakan n8n dan guna Make atau Zapier?
Boleh. Mana-mana daripada ketiga-tiganya dapat menerima webhook, menjawab pengesahan dan menambah baris. Airtable sendiri ialah satu-satunya bahagian yang tidak boleh menjadi destinasi.
Bolehkah butang Airtable menghantar mesej WhatsApp?
Boleh. Gunakan pencetus When a button is clicked dengan tindakan Run a script yang memanggil Cloud API, dan data baris mengisi template.
Adakah EasyCoexistence menyimpan mesej?
Tidak. Meta menghantar setiap webhook ke URL n8n anda, dan satu-satunya salinan ialah yang ditulis oleh aliran kerja anda ke Airtable.
Teruskan membaca
Sedia untuk bermula?
Sediakan WhatsApp Coexistence dalam beberapa minit, bukan berbulan-bulan. Aplikasi terus berfungsi pada telefon.
Mulakan Percubaan PercumaDisahkan pada