Giriş yapınÜcretsiz denemeyi başlatın
Meta Tech Provider

WhatsApp mesajlarını Airtable'a kaydedin, bir base'den gönderim yapın

Airtable'ın gelen webhook tetikleyicisi yalnızca POST isteklerini kabul eder. Bu yüzden Meta'nın doğrulama GET isteğine yanıt veremez ve bir numaranın webhook hedefi olamaz. Hedefi, her mesajı bir tabloya ekleyen bir n8n iş akışına yöneltin. Gönderim Airtable içinden yapılır: bir Run a script otomasyonu Cloud API'yi fetch ile çağırabilir; numaranın token'ı da secret olarak saklanır.

POST only

Airtable'ın When webhook received tetikleyicisi başka yöntem kabul etmez, bu yüzden doğrulama GET isteğine yanıt veremez.

5 per second

Airtable'ın gelen webhook tetikleyicisindeki istek sınırı. Payload üst sınırı 100 KB.

50 fetches

Tek bir Airtable Run a script eyleminin yapabildiği istek sayısı. Her biri 30 saniye sonra zaman aşımına uğrar.

Airtable neden WhatsApp webhook'larını doğrudan alamaz?

Çünkü Meta, herhangi bir şey iletmeden önce hedefi kontrol eder. İçinde bir challenge değeri taşıyan bir GET isteği gönderir ve aynı değerin yanıt gövdesinde dönmesini bekler. Airtable'ın When webhook received tetikleyicisi yalnızca POST isteklerini kabul eder ve kendi sabit JSON'uyla yanıt verir. Kontrol geçemez ve Meta iletime hiç başlamaz.

Çözüm araya bir adım koymaktır. n8n Webhook düğümü doğrulamayı yapar ve her mesajı alır, n8n'in Airtable düğümü de bir satır ekler: gönderen, profil adı, metin, mesaj kimliği, zaman damgası ve mesajı alan numaranın kimliği (phone_number_id). Aynı yapı Make veya Zapier'de de çalışır.

Araya konan adımın ikinci bir yararı var. Airtable'ın webhook tetikleyicisi saniyede beş isteğe izin verir. Bir iş akışı aracı ise aksi halde reddedilecek ani bir yoğunluğu kuyruğa alabilir.

Bir Airtable base'inden WhatsApp şablonu nasıl gönderilir?

Eylemi Run a script olan bir otomasyonla. Tetikleyici, bir kaydın bir görünüme girmesi, bir alanın değişmesi ya da bir düğmeye tıklanması olabilir. Script, kaydın telefon ve diğer alanlarını input.config() ile okur ve Cloud API'nin messages uç noktasını fetch ile çağırır. Airtable otomasyon scriptleri sunucu tarafında çalışır, yani önünüzde tarayıcı kısıtı yoktur.

Erişim token'ını kodun içine değil, script düzenleyicisinde secret olarak saklayın. Airtable, secret değerlerini konsol çıktısından gizler ve bir script'i yalnızca tüm secret'lerine erişimi olan kişilerin düzenlemesine izin verir.

Müşterinin son 24 saatte yazmadığı her durum için şablon kullanın, çünkü serbest metin yalnızca bu pencerede iletilir. Script, dönen mesaj kimliğini kayda geri yazabilir. Böylece gönderim ilgili satıra bağlanır.

Run a script action: send an approved template
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());

Mesajlar tablosu nasıl görünmeli?

Mesaj başına bir satır olsun ve birincil alan WhatsApp mesaj kimliği olsun. Meta, başarısız saydığı iletimleri yeniden dener. Eklemeden önce kimliği arayan bir iş akışı aynı mesajı iki kez yazmaz.

inbound ve outbound değerlerini taşıyan bir yön alanı tutun. Bir Coexistence numarasında, ekibin WhatsApp Business uygulamasında yazdığı yanıtlar aynı webhook'a smb_message_echoes olayları olarak gelir. Bunları outbound satırlar olarak kaydetmek, base'e konuşmanın yalnızca bir tarafını değil tamamını verir.

Her mesajı, Meta'nın gönderdiği biçim olan yalnızca rakamlardan oluşan telefon numarasıyla anahtarlanmış bir Kişiler tablosuna bağlayın. Bir rollup de kişi başına son gelen mesaj zamanını gösterir. Bir otomasyonun serbest metin ile şablon arasında karar vermesi için gereken tek alan budur.

Yaygın hatalar

  • Bir Airtable webhook URL'sini numaranın hedefi olarak ayarlamak. Yalnızca POST kabul eder, Meta'nın doğrulama GET isteği başarısız olur ve hiçbir şey iletilmez.
  • Erişim token'ını script gövdesine yapıştırmak. Kodun ve logların dışında kalması için script secret'ı olarak saklayın.
  • 24 saattir yazmamış birine kayıt otomasyonundan serbest metin göndermek. Yalnızca onaylı bir şablon iletilir.
Bunu EasyCoexistence'la yapmak

Numarayı easycoexistence.com'da bağlayın, webhook hedefini Airtable'a yazan n8n iş akışına yöneltin, phone_number_id değerini ve token'ı panelden okuyun. Bağlı numara başına ayda US$ 9'dan başlar, numara sayısı arttıkça US$ 1'e düşer. İlk 3 gün ücretsizdir.

Sık sorulan sorular

Run a script, Airtable'ın ücretsiz planında var mı?

Airtable bu eylemi tüm plan türlerinde, değişen sınırlamalarla listeler. Team planı denemesinde kullanılamadığını da belirtir.

n8n yerine Make veya Zapier kullanabilir miyim?

Evet. Üçü de webhook'u alabilir, doğrulamayı yanıtlayabilir ve satırı ekleyebilir. Hedef olamayan tek parça Airtable'ın kendisidir.

Bir Airtable düğmesi WhatsApp mesajı gönderebilir mi?

Evet. Cloud API'yi çağıran bir Run a script eylemiyle When a button is clicked tetikleyicisini kullanın. Şablonu satırın verileri doldurur.

EasyCoexistence mesajları saklıyor mu?

Hayır. Meta her webhook'u sizin n8n URL'nize iletir. Tek kopya, iş akışınızın Airtable'a yazdığıdır.

Okumaya devam edin

Başlamaya hazır mısınız?

WhatsApp Coexistence'ı aylar değil, dakikalar içinde kurun. Uygulama telefonda çalışmaya devam eder.

Ücretsiz denemeyi başlatın

Doğrulama tarihi

WhatsApp ve Airtable: Cloud API ile entegrasyon