# Airtable

Envoyez les soumissions vers une base Airtable avec un mappage de champs typé.

## Airtable

Envoyez chaque soumission vers une table Airtable sous forme de nouvel enregistrement. Mappez les champs à des colonnes typées, composez un corps en texte enrichi et remplissez les réponses passées.

<h2 id="what-you-get">Ce que vous obtenez</h2>

<ul>
  <li>Un enregistrement par soumission</li>
  <li>Mappage au niveau des champs avec vérification de compatibilité de type</li>
  <li>Mappage des métadonnées, y compris un lien vers le PDF de soumission généré</li>
  <li>Champ de corps en texte enrichi optionnel avec titres, gras, listes et réponses insérées</li>
  <li>Remplissage des soumissions existantes à la connexion (par lots de 10)</li>
  <li>Récupération automatique en cas de renommage de colonnes</li>
  <li>Enregistrement de test pour vérifier la connexion avant l’arrivée de vraies soumissions</li>
</ul>

<h2 id="connect">Connecter Airtable</h2>

<h2 id="column-types">Types de colonnes</h2>

<p>Formstep crée automatiquement des options de sélection lorsque la valeur soumise ne correspond pas à une option existante.</p>

<p>
  Les colonnes de type Formule, Cumul, Nombre, Recherche, Enregistrement lié, Collaborateur, Date de création/modification, Créé/modifié
  par, Numéro automatique, Bouton et Source synchronisée sont en lecture seule et ne peuvent pas être mappées.
</p>

<h2 id="repeating-groups">Groupes répétables</h2>

<p>
  Un <a href="/fr/building-forms/repeating-groups">groupe répétable</a> permet aux répondants d’ajouter autant d’entrées qu’ils en ont
  besoin — comme une liste d’invités, chacun avec un nom et un âge. Dans le sélecteur de champs, vous choisissez comment le mapper :
</p>

<ul>
  <li>
    <strong>Le groupe entier</strong> se mappe sur un seul champ. Chaque entrée s’affiche sous forme de lignes numérotées et étiquetées,
    comme "1. Full name: Jane Appleseed, Age: 34, 2. Full name: Marcus Lee, Age: 29".
  </li>
  <li>
    <strong>Chaque champ membre</strong> se mappe sur son propre champ. Les valeurs de chaque entrée sont jointes par <code> · </code>, si
    bien que le champ Full name affiche "Jane Appleseed · Marcus Lee".
  </li>
</ul>

<p>
  Choisissez l’un, l’autre, ou les deux. Si vous retirez plus tard un champ membre de votre formulaire, il apparaît toujours dans le
  sélecteur afin que les enregistrements passés conservent leur champ — votre mappage ne se casse jamais.
</p>

<h2 id="rich-text-body">Corps en texte enrichi</h2>

<p>
  Si votre table contient une colonne Rich text, Long text ou Single line text, vous pouvez composer son contenu avec l’éditeur de modèles.
  Tapez <strong>@</strong> pour insérer la valeur de n’importe quel champ du formulaire ou une métadonnée comme PDF Link — l’éditeur les
  affiche sous forme de mentions qui se résolvent lors de la synchronisation. Les colonnes Rich text conservent la mise en forme ; les
  autres types de colonnes reçoivent du Markdown brut.
</p>

<p>
  Mise en forme prise en charge : titres (H1-H4), <strong>gras</strong>, <em>italique</em>, ~~barré~~, <code>code en ligne</code>, liens, et
  listes ordonnées/non ordonnées. Les images et les intégrations ne sont pas prises en charge.
</p>

<h2 id="backfill">Remplir les soumissions existantes</h2>

<p>
  Après la connexion, vous pouvez remplir les réponses passées. Les enregistrements sont écrits par lots de 10 avec un court délai entre les
  lots pour rester dans les limites de débit d’Airtable. La progression est affichée dans le panneau d’intégration.
</p>

<h2 id="test-event">Événement de test</h2>

<p>
  L’étape Finaliser et le panneau de détail de l’intégration proposent tous deux un bouton <strong>Envoyer un test</strong> qui crée un
  enregistrement fictif. Les colonnes de texte reçoivent des chaînes <code>[Question Title]</code>, les nombres reçoivent <code>0</code>,
  les e-mails reçoivent <code>test@example.com</code>, les dates reçoivent l’horodatage actuel, et les sélections utilisent la première
  option parmi les choix de la question (pour éviter de créer des options parasites). Supprimez l’enregistrement de test après vérification.
</p>

<h2 id="abandoned-responses">Événements de réponses abandonnées</h2>

<p>
  Si un répondant commence votre formulaire sans le terminer, Formstep peut tout de même synchroniser les données partielles. Sur l’étape{' '}
  <strong>Soumissions abandonnées</strong>, réglez <strong>Envoyer l’événement d’abandon après</strong> sur 12 heures, 1 jour, 3 jours ou 1
  semaine. Un balayage horaire écrit alors un enregistrement en utilisant le même mappage de champs qu’une soumission complète. Mappez le
  champ de métadonnées "Statut de la soumission" vers une colonne à sélection unique ou texte pour distinguer les enregistrements "Partiel"
  des enregistrements "Complété" et "Mis à jour".
</p>

<p>
  Seuls les brouillons d’un lien de partage sont balayés, et <strong>Champs obligatoires</strong> le restreint davantage : l’enregistrement
  n’est écrit que si au moins un des champs choisis a été rempli.
</p>

> ℹ️ **Fonctionnalité Pro**
> <p>
>     La livraison des réponses abandonnées nécessite un plan Pro ou Business. L’intégration Airtable de base est disponible sur tous les
>     plans. Voir <a href="/fr/subscription-billing/plans-pricing">les plans et tarifs</a>.
>   </p>

<h2 id="schema-drift">Modifications de schéma et récupération automatique</h2>

<p>
  Si vous renommez une colonne dans Airtable, Formstep détecte le changement lors de la prochaine soumission et met à jour son mappage
  automatiquement. Les colonnes sont identifiées par leur ID interne stable, donc les renommages sont transparents.
</p>

<p>
  Si vous supprimez une colonne, Formstep la retire du mappage et continue de synchroniser les champs restants. Si le type d’une colonne
  change vers quelque chose d’incompatible, la valeur échoue à se synchroniser — rouvrez l’intégration et remappez ce champ.
</p>

<h2 id="troubleshooting">Dépannage</h2>

<ul>
  <li>
    <strong>Autorisation expirée</strong> — Les jetons d’accès Airtable durent environ une heure et sont renouvelés automatiquement, à la
    fois par une tâche quotidienne et avant chaque livraison. Si le renouvellement lui-même échoue — l’autorisation a été révoquée, ou le
    jeton de rafraîchissement a expiré — la connexion est marquée comme expirée et toutes les intégrations qui en dépendent s’arrêtent.
    Appuyez sur Reconnecter.
  </li>
  <li>
    <strong>Colonne non visible</strong> — Vérifiez que l’autorisation OAuth inclut la base et que le type de colonne est accessible en
    écriture (voir le tableau ci-dessus).
  </li>
  <li>
    <strong>Limite de débit</strong> — Airtable applique une limite de 5 requêtes/seconde par base. Les remplissages sont automatiquement
    ralentis ; les synchronisations en direct réessaient avec un délai exponentiel.
  </li>
</ul>

<h2 id="faq">FAQ</h2>

  <p>
    Quatre autorisations Airtable : lecture/écriture des données d’enregistrement, lecture des schémas de base, et lecture de votre e-mail
    (pour identifier le compte). Utilise OAuth avec PKCE — aucune clé API à gérer.
  </p>

  <p>
    Oui. Les connexions Airtable sont liées à l’espace de travail. N’importe quel membre peut utiliser n’importe quel compte connecté lors
    de la configuration d’une intégration.
  </p>

  <p>
    Oui. Autorisez des comptes supplémentaires lors de nouvelles configurations d’intégration. Chaque formulaire choisit le compte à
    utiliser.
  </p>

  <p>
    La prochaine soumission échoue avec une erreur "introuvable" et l’intégration s’arrête. La base et la table sont fixées à la création de
    l’intégration, donc supprimez cette intégration et créez-en une nouvelle vers la nouvelle table.
  </p>

  <p>
    Non. Ces colonnes sont en lecture seule dans l’API d’Airtable. Consultez la liste complète des types de colonnes exclus dans la section{' '}
    <a href="#column-types">types de colonnes</a> ci-dessus.
  </p>

  <p>
    Allez dans Paramètres du formulaire → Intégrations → Airtable et supprimez l’intégration. Pour révoquer également l’accès de Formstep,
    accédez aux paramètres de votre compte Airtable et supprimez l’application OAuth Formstep.
  </p>

<h2 id="next-steps">Prochaines étapes</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Linear](/fr/integrations/linear) — Transformez les soumissions en tickets Linear
  - [GitHub Issues](/fr/integrations/github) — Transformez les soumissions en tickets GitHub
  - [Groupes répétables](/fr/building-forms/repeating-groups) — Laissez les répondants ajouter plusieurs entrées
</div>
