Guide · Airtable

Webhook Airtable : chaque vente dans votre base

Votre base sait qui a payé, quand, et combien. Elle ne sait pas quelle campagne l'a amené. Une automatisation à la bonne condition, et la colonne manquante se remplit toute seule.

Ce que le script envoie, ce que Subtraq répond

201

fetch('https://subtraq.co/api/v1/sales', { method: 'POST', … })
headers: {
  Authorization: 'Bearer stq_sk_…',
  'Content-Type': 'application/json' }

body: { space: "atelier-vitrail",
        amount: 4300,
        currency: "EUR",
        invoiceId: "F-2026-0148",
        email: "[email protected]" }

→ 201  { ok: true, attributed: true }

Le montant est en centimes : 43 € s'écrivent 4300. Et attributed dit la vérité — true quand la vente a retrouvé son lien d'origine, false quand elle n'en a pas trouvé. Jamais une origine inventée pour faire joli dans un rapport.

Les six étapes dans Airtable

À lire avant de chercher dans les actions

Airtable n'a pas de case « envoyer un webhook »

Autrement dit : il y a une dizaine de lignes de JavaScript à coller. Ce n'est pas du développement — c'est un formulaire écrit autrement — mais ce n'est pas non plus un interrupteur, et vous avez le droit de le savoir avant de commencer.

Si vous préférez n'écrire aucune ligne : un webhook Subtraq vers Make ou Zapier, et l'intermédiaire écrit la ligne dans Airtable par son API. Les deux chemins sont honnêtes ; celui-ci a un maillon de moins.

Source : l'action Run a script, assistance Airtable.

Ce que l'API attend exactement

Relevé le 12 septembre 2026

L'action qui fait le travail, et ses bornes

C'est « Run a script ». Elle appelle fetch() sans restriction de domaine, accepte des en-têtes personnalisés, et sait lire un secret. Ses limites documentées : trente secondes par requête, cinquante requêtes par exécution, et une durée totale d'exécution bornée.

Dans Airtable, 6 étapes

Quels champs créer, et quel déclencheur choisir

Les automatisations existent sur toutes les formules Airtable, avec des limites qui varient. Le déclencheur compte plus qu'on ne croit : c'est lui qui décide si vous envoyez une vente ou une intention de vente.

1

Préparez la table : quatre champs de travail

Un champ e-mail pour le client, un champ nombre pour le montant, un champ de sélection unique pour l'état, et un champ texte pour l'identifiant de facture. Ce dernier n'est pas décoratif : c'est lui qui empêchera de compter deux fois.

2

Rangez la clé serveur dans un secret

Airtable permet de stocker une valeur sensible et de l'appeler depuis un script, plutôt que de l'écrire en clair dans le code. La clé Subtraq commence par stq_sk_, porte le droit events:write, et ne s'affiche qu'une fois.

3

Créez l'automatisation avec le bon déclencheur

Choisissez « When a record matches conditions » et posez la condition sur l'état — « encaissé ». C'est plus sûr qu'un déclenchement à la création : une ligne se crée souvent avant d'être payée.

4

Ajoutez l'action « Run a script »

Déclarez les champs de la ligne comme valeurs d'entrée, puis appelez fetch en POST vers https://subtraq.co/api/v1/sales, avec l'en-tête Authorization réglé sur Bearer suivi de la clé. C'est là que se fait tout le travail.

5

Multipliez le montant par cent

Subtraq compte en centimes et refuse les nombres à virgule sur de l'argent. Un champ nombre à 43 doit partir en 4300. C'est une ligne de script, et c'est l'erreur qui divise un chiffre d'affaires par cent sans que personne le voie.

6

Lancez un test et lisez la réponse dans le journal

L'exécution de l'automatisation montre ce que le script a écrit. Subtraq répond 201 pour une vente nouvelle, 200 si l'identifiant de facture est déjà passé, et dit dans les deux cas si la vente a retrouvé son lien d'origine.

Chemins relevés dans l'assistance Airtable le 12 septembre 2026 — les déclencheurs d'automatisation et le déclencheur par conditions. Une interface change : si ce que vous voyez ne correspond plus, la source fait foi.

Le point délicat

Relier une ligne de la base au lien cliqué

Conséquence, dite franchement : l'identifiant de clic n'arrive pas seul dans un formulaire Airtable. Il faudrait une page à vous qui lise st_id et reconstruise l'adresse du formulaire avec le bon nom de paramètre — c'est faisable, ce n'est plus un réglage.

La voie sans rien écrire, c'est l'adresse email : Subtraq cherche la personne dans la fenêtre d'attribution de l'espace, trente jours par défaut. Même adresse des deux côtés, et la vente retrouve son lien.

Le préremplissage reste utile pour autre chose : y passer un nom de campagne ou un identifiant que vous connaissez déjà, et le remonter ensuite dans metadata.

Source : le préremplissage d'un formulaire, relevé le 12 septembre 2026.

Ce qu'on appelle l'attribution

Ce qui marche, et ce qui ne marche pas

L'email oui, le préremplissage non

Airtable documente le préremplissage d'un formulaire par paramètre d'URL, de la forme prefill_ suivi du nom du champ. Mais un lien Subtraq transmet à sa destination un paramètre nommé st_id : les deux noms ne se rejoignent pas d'eux-mêmes.

Les cas pénibles, traités franchement

Une base partagée est modifiée par plusieurs personnes. C'est exactement là que les doublons naissent.

Comment éviter les doublons ?

Par le champ invoiceId, et par lui seul. Une ligne repassée en « encaissé » renvoie la même valeur : Subtraq reconnaît le doublon, répond 200 et n'ajoute rien. Sans ce champ, chaque modification d'état ajouterait une vente — et le total serait faux dans le sens qui fait le plus mauvais effet.

Le paiement arrive plus tard, après un devis.

C'est le cas le plus courant, et c'est pourquoi le déclencheur conseillé est « quand la ligne remplit les conditions » plutôt que « quand la ligne est créée ». Reste la fenêtre d'attribution : au-delà d'elle, la vente est enregistrée mais non attribuée. Sur des cycles longs, allongez-la avant de brancher.

Quelqu'un modifie cinquante lignes d'un coup.

Attention : cinquante requêtes en rafale. Airtable borne le nombre de requêtes par exécution et la durée totale d'un script. Si vous faites des mises à jour en masse, envoyez plutôt par lots — et sachez que l'identifiant de facture vous protège de tout ce qui serait renvoyé deux fois.

Et un remboursement ?

La route n'accepte pas de montant négatif, et il n'existe pas d'appel qui annule une vente déjà écrite. Un remboursement ne se soustrait donc pas tout seul : gardez-en la trace par un événement à montant nul, et corrigez le rapport à la main.

Questions fréquentes

Faut-il une extension Airtable ?

Non. L'action « Run a script » fait partie des automatisations. Elle appelle une URL externe sans restriction de domaine, contrairement à l'extension de script qui tourne dans le navigateur.

Où mettre la clé serveur ?

Dans un secret, jamais en clair dans le script : une base Airtable se partage, et un collaborateur en lecture ne devrait pas pouvoir écrire du chiffre d'affaires dans le rapport d'un client.

Peut-on faire arriver les conversions Subtraq DANS Airtable ?

Oui, mais par un intermédiaire : le webhook sortant de Subtraq réveille Zapier, Make ou n8n, qui crée la ligne par l'API d'Airtable. Airtable a bien un déclencheur « quand un webhook est reçu », mais il attend son propre format, pas le nôtre.

Quel montant si la facture est en dollars ?

Le champ currency prend trois lettres. Envoyez le montant dans sa plus petite unité et la devise réelle : Subtraq ne convertit rien, il conserve ce que vous déclarez.

Et pour un prospect, sans montant ?

La route des ventes attend un montant. Pour un prospect, le plus simple reste le lien Subtraq collé dans le champ de redirection d'un formulaire : l'envoi devient une conversion, sans clé ni script.

Vous voulez l'inverse : les conversions dans la base

Le webhook sortant de Subtraq prévient Make, et Make écrit la ligne dans Airtable. Un maillon de plus, zéro ligne de script.

Le guide Make

La prochaine ligne encaissée peut dire d'où elle vient

Créez le compte, prenez une clé serveur, ajoutez l'automatisation. Dix lignes, et la colonne manquante se remplit.

Créer un compte gratuit