Notre expertise Airtable

Vos équipes connaissent le métier. Donnez-leur la main sur les outils.

Une revue des achats. Une campagne de recrutement. Un processus qui déborde de son tableur. Nous en faisons un outil Airtable que vos équipes peuvent vraiment s’approprier.

Ces exemples sont issus des quatre années de construction et d’évolution d’outils de Julien Cyr chez Actual Group, notamment pour Actual Académie, ESUP, Holberton, iconoclass, Qwally, Open Campus et PBA. Cette expérience nourrit l’accompagnement Ownward aujourd’hui.

Pourquoi nous croyons en Airtable

Un socle. Plusieurs possibilités. Données communes · Espace équipe · Site connecté

Plus les équipes contribuent, plus la structure des données compte. Airtable la rend concrète : des tables, des champs typés, des enregistrements liés. Une nouvelle vue, interface ou automatisation peut s’appuyer sur ce même socle. Chacun peut construire sans recréer son propre modèle de données.

Nous vous aidons à trouver cet équilibre : donner de la liberté aux équipes, avec des définitions partagées, des droits adaptés et des règles claires pour faire évoluer la base. Airtable peut porter des processus de type ERP et un CRM sur mesure. Nous définissons ce qu’il pilote et ce qui reste dans les logiciels spécialisés, notamment la comptabilité.

Omni + Ownward

Construisez avec Omni. Allez plus loin avec Ownward.

Omni est une excellente raison de choisir Airtable. Décrire un besoin, construire une application, créer des éléments d’interface sur mesure et travailler avec ses données en langage naturel : vos équipes ont plus de moyens pour créer et faire évoluer leurs outils.

Ownward prolonge cette liberté quand le métier demande une expertise produit et technique plus poussée. Nous partons aussi de ce que vos équipes ont déjà construit avec Omni, le relions au reste de l’entreprise et vous aidons à le faire évoluer dans la durée.

  • Une interface qui épouse le métier

    Composants sur mesure, règles métier précises et prise en main guidée, affinés avec les personnes qui les utilisent.

  • Des données communes, des outils connectés

    Airtable, votre CRM, la comptabilité et le site web : un rôle clair pour chaque donnée et des intégrations qui prévoient les exceptions.

  • La confiance pour continuer à construire

    Droits, tests, code versionné et documentation pour les humains et les agents. Vos équipes continuent à créer ; nous accompagnons les évolutions complexes.

Découvrir Omni chez Airtable

Sur le terrain

Partons d’un cas concret.

Choisissez une histoire. Découvrez le besoin, visitez l’outil, puis explorez sa construction.

Intégration et fiabilité

Des flux compréhensibles par ceux qui en dépendent.

Au départ…

CRM et ERP décrivent le même métier différemment. Lorsque la connexion repose sur un script opaque, un échec de synchronisation devient vite un appel à son auteur.

Ce que nous avons construit

Un poste de contrôle Airtable pour le moteur de synchronisation. Les équipes suivent les traitements et leur historique ; les développeurs examinent les correspondances de champs. Tous utilisent la même configuration.

Technologies et documentations officielles

Entrez dans l’outil

Écran 1 sur 6

Vue métier

Vue métier

Les noms lisibles expliquent source, destination et politique d’écriture.

Ce que nous voulons changer

Aider les équipes à comprendre les échanges, diagnostiquer un échec et adapter les horaires configurés sans redéployer le moteur.

Comment c’est construitModèle de données, code, contrôles et autonomie des équipes

Parcours utilisateur

  1. 01

    Définir le job et son mapping dans le référentiel partagé.

  2. 02

    Demander ou planifier l’exécution via une automatisation Airtable et le moteur externe.

  3. 03

    Examiner l’exécution, ses métriques et erreurs avant de décider d’une relance.

Structure de la base

Entité / tableChamps clésRelations
Sync JobsMapping JSON · cadence · état actif · demande manuelleUn job → plusieurs exécutions
Sync RunsStatut · lus / écrits / ignorés · diagnosticChaque exécution est reliée à son job
Sync TypesRéférences de sources et de configurationDes définitions communes classent les jobs
PromotionsClés de correspondance · champs de destinationUne destination commune pour le reporting

Implémentation technique

  • Un pont TypeScript exécute le moteur Python sur Trigger.dev. Adaptateurs, validation du mapping et écriture ont des responsabilités distinctes.
  • Le writer REST résout les identifiants de champs, groupe les écritures par dix et limite leur cadence.
  • Le mode aperçu/journal seul et les compteurs lus, écrits, ignorés et en erreur rendent une exécution examinable.

Décision d’ingénierie

Recalculer la série entière, écrire seulement les écarts

Adapté du moteur de séries hebdomadaires. Le recalcul complet corrige aussi le passé ; le diff évite de réécrire les valeurs identiques. Une série absente reste intacte, une série explicitement vide remet les comptes à zéro, et le mode simulation est activé par défaut. Ce n’est ni une transaction distribuée ni un verrou concurrent.

Pythonweekly_diff.py32 lignes
def plan_updates(series_by_record, existing, field_maps):    updates = []    for record_id, series in series_by_record.items():        desired = {}        for metric, week_fields in field_maps.items():            values = series.get(metric)            if values is None:                continue  # unavailable source: preserve this metric            for week, field_id in week_fields.items():                desired[field_id] = int(values.get(week, 0))        current = existing.get(record_id, {})        changed = {            field: value for field, value in desired.items()            if int(current.get(field) or 0) != value        }        if changed:            updates.append({"id": record_id, "fields": changed})    return updatesdef sync_series(series, existing, field_maps, batch_update, *, dry_run=True):    updates = plan_updates(series, existing, field_maps)    summary = {        "records": len(updates),        "cells": sum(len(row["fields"]) for row in updates),        "written": 0,    }    if not dry_run and updates:        # Injected adapter owns API batching and error reporting.        summary["written"] = batch_update(updates)    return summary

Extrait adapté de l’implémentation

Recalculer la série entière, écrire seulement les écarts

Contrôles et limites

  • Les secrets appartiennent à l’environnement d’exécution ; le mapping lisible n’a pas à contenir leur valeur.
  • Relances, quotas et correspondances se vérifient source par source. Ce cas ne revendique pas une exécution exactement une fois.

Qui peut contribuer

  • Opérations : examiner les jobs, demander une exécution et lire son historique.
  • Builders : entretenir les mappings et cadences autorisés dans Airtable.
  • Développeurs : ajouter des adaptateurs et vérifier mappings et écritures contre le contrat partagé.

Ce qui documente ce cas

Le back-office a été examiné en modes Human et Dev. Le dépôt contient le schéma de mapping, le moteur et les deux extensions publiées. Aucune synchronisation n’a été déclenchée pendant la revue.

Avec Ownward

Construit ensemble. À vous de le faire grandir.

Vos équipes doivent pouvoir gérer les évolutions du quotidien. Et savoir sur qui compter lorsqu’un sujet demande une expertise technique plus poussée.

  1. 01

    Partir du travail réel

    Nous échangeons avec les personnes qui font le travail, définissons une première version utile et construisons ensemble le modèle de données et l’interface.

  2. 02

    Apprendre sur ses propres outils

    Vos équipes apprennent à adapter les vues, interfaces et automatisations sur des cas réels. Nous documentons le modèle et les choix pour que la prochaine évolution ne dépende pas de nous.

  3. 03

    Aller plus loin, bien accompagné

    Citizen developers, développeurs et collègues qui codent avec Claude contribuent au même modèle documenté. Nous accompagnons les intégrations complexes, les revues de code et les escalades techniques dans la durée.

Le soin apporté à la livraison

Un outil livré avec tout ce qu’il faut pour le prendre en main.

Notre standard de livraison Ownward : l’aide reste disponible dans le produit, le savoir reste avec le code et les agents disposent du contexte pour contribuer.

  • Un assistant de prise en main toujours accessible

    Un parcours guidé pour comprendre les rôles, configurer les éléments essentiels et réussir la première action. Il reste accessible depuis l’aide, y compris pour accueillir de nouveaux collègues.

  • La documentation dans le dépôt livré

    Démarrage, modèle de données, configuration, intégrations, tests, publication et retour arrière : les explications évoluent avec la version du produit. Les secrets restent hors du dépôt.

  • Des consignes pour les agents codeurs

    AGENTS.md et, si utile, CLAUDE.md précisent l’architecture, les conventions, les commandes de vérification et les règles de modification. Un agent prolonge le modèle partagé ; l’équipe garde la revue et la décision de diffusion.

Voir un guide de prise en main dans une interface réelle
La place du Builder Hub, des composants sur mesure et de l’IA

Nous construisons et publions des extensions d’interface lorsque les équipes ont besoin d’une expérience plus adaptée à leur métier. Nous accompagnons l’organisation des responsabilités, des versions et des mises à jour dans Builder Hub. Pour les organisations Enterprise Scale, les applications et composants gérés offrent un mécanisme distinct pour diffuser des briques communes entre bases.

Nous utilisons l’IA lorsqu’elle sert une tâche précise, avec les accès adaptés et une validation humaine. Les fonctionnalités Enterprise dépendent de votre offre Airtable ; nous vous aidons à choisir et configurer celles qui sont utiles à vos équipes.

Quelle partie de votre travail pourrait être plus simple ?

Un processus, un point de friction, une idée : partons de là.

Parlons de votre projet