Conectați-văÎncepeți perioada de probă gratuită
Meta Tech Provider

Salvați mesajele WhatsApp în Airtable și trimiteți dintr-un base

Trigger-ul de webhook primit din Airtable acceptă doar cereri POST, deci nu poate răspunde la cererea GET de verificare de la Meta și nu poate fi el însuși destinația webhook-ului unui număr. Indicați ca destinație un workflow n8n care adaugă fiecare mesaj într-un tabel. Trimiterea funcționează chiar din Airtable: o automatizare Run a script poate apela Cloud API cu fetch, iar token-ul numărului stă salvat ca secret.

POST only

Trigger-ul „When webhook received” din Airtable nu acceptă altă metodă, deci nu poate răspunde la o cerere GET de verificare.

5 per second

Limita de cereri a trigger-ului de webhook primit din Airtable, cu un plafon de 100 KB pentru payload.

50 fetches

Cererile pe care le poate face o acțiune Run a script din Airtable, fiecare expirând după 30 de secunde.

De ce nu poate Airtable să primească direct webhook-urile WhatsApp?

Pentru că Meta verifică destinația înainte să livreze orice. Trimite o cerere GET cu o valoare de tip challenge și așteaptă aceeași valoare înapoi, în corpul răspunsului. Trigger-ul „When webhook received” din Airtable acceptă doar cereri POST și răspunde cu propriul JSON fix, așa că verificarea nu poate trece, iar Meta nu începe niciodată livrarea.

Soluția este un pas intermediar. Un nod Webhook din n8n se ocupă de verificare și primește fiecare mesaj, iar nodul Airtable din n8n adaugă un rând: expeditorul, numele de profil, textul, ID-ul mesajului, momentul trimiterii și ID-ul numărului de telefon care a primit mesajul. Aceeași structură funcționează în Make sau Zapier.

Pasul intermediar are și un al doilea avantaj. Trigger-ul de webhook din Airtable permite cinci cereri pe secundă, iar un instrument de workflow poate pune în coadă un val de mesaje care altfel ar fi refuzat.

Cum trimiteți un template WhatsApp dintr-un base Airtable?

Printr-o automatizare a cărei acțiune este Run a script. Trigger-ul poate fi un rând care intră într-un view, un câmp care se schimbă sau un buton apăsat. Scriptul citește telefonul și câmpurile rândului cu input.config() și apelează endpoint-ul de mesaje din Cloud API cu fetch. Scripturile de automatizare din Airtable rulează pe server, deci nu apare nicio restricție de browser.

Salvați token-ul de acces ca secret în editorul de scripturi, nu în cod. Airtable ascunde secretele din ieșirea consolei și permite editarea scriptului doar persoanelor care au acces la toate secretele lui.

Folosiți un template pentru tot ce nu a fost provocat de client în ultimele 24 de ore, deoarece textul liber se livrează doar în interiorul acelei ferestre. Scriptul poate scrie înapoi în rând ID-ul mesajului returnat, ceea ce leagă trimiterea de rândul respectiv.

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());

Cum ar trebui să arate tabelul de mesaje?

Un rând pentru fiecare mesaj, cu ID-ul mesajului WhatsApp drept câmp principal. Meta retrimite livrările pe care le crede eșuate, iar un workflow care caută ID-ul înainte de a adăuga rândul nu scrie niciodată același mesaj de două ori.

Păstrați un câmp de direcție, cu valorile inbound și outbound. Pe un număr Coexistence, răspunsurile scrise de echipă în aplicația WhatsApp Business ajung la același webhook ca evenimente smb_message_echoes, iar înregistrarea lor ca rânduri outbound oferă base-ului conversația completă, nu doar o jumătate a ei.

Legați fiecare mesaj de un tabel Contacts, cu cheia pe numărul de telefon format doar din cifre, adică forma trimisă de Meta. Un câmp rollup arată apoi ultimul moment inbound pentru fiecare contact, iar acest singur câmp este tot ce are nevoie o automatizare ca să aleagă între text liber și template.

Greșeli frecvente

  • Setarea URL-ului unui webhook Airtable ca destinație a numărului. Acesta acceptă doar POST, verificarea GET de la Meta eșuează și nu se livrează nimic.
  • Lipirea token-ului de acces în corpul scriptului. Salvați-l ca secret al scriptului, ca să rămână în afara codului și a jurnalelor.
  • Trimiterea de text liber dintr-o automatizare pe rânduri către cineva care nu a scris în ultimele 24 de ore. Se livrează doar un template aprobat.
Faceți acest lucru cu EasyCoexistence

Conectați numărul la easycoexistence.com, indicați destinația webhook-ului către workflow-ul n8n care scrie în Airtable și citiți ID-ul numărului de telefon și token-ul din dashboard. De la US$ 9 pe număr pe lună, scăzând la US$ 1 pe măsură ce adăugați numere, cu primele 3 zile gratuite.

Întrebări frecvente

Este Run a script disponibil în planul gratuit Airtable?

Airtable listează acțiunea la toate tipurile de plan, cu limitări diferite, și menționează că nu este disponibilă în perioada de probă a unui plan Team.

Pot sări peste n8n și folosi Make sau Zapier?

Da. Oricare dintre cele trei poate primi webhook-ul, răspunde la verificare și adăuga rândul. Airtable în sine este singura piesă care nu poate fi destinația.

Poate un buton Airtable să trimită un mesaj WhatsApp?

Da. Folosiți trigger-ul „When a button is clicked” cu o acțiune Run a script care apelează Cloud API, iar datele rândului completează template-ul.

Stochează EasyCoexistence mesajele?

Nu. Meta livrează fiecare webhook la URL-ul dumneavoastră n8n, iar singura copie este cea pe care o scrie workflow-ul în Airtable.

Continuați să citiți

Gata să începeți?

Configurați WhatsApp Coexistence în câteva minute, nu luni. Aplicația continuă să funcționeze pe telefon.

Începeți perioada de probă gratuită

Verificat la

WhatsApp și Airtable pe Cloud API