Tous les guides
Webhooks

Guide des Webhooks

Automatisez votre flux de travail en connectant Fast Memo à des services externes. Recevez des notifications en temps réel lorsque les notes, catégories ou données changent.

  • Publié le
  • 5 min de lecture

Que sont les Webhooks ?

Les webhooks dans Fast Memo sont des notifications HTTP POST sortantes envoyées aux URLs que vous configurez. Lorsqu'un événement spécifique se produit dans l'application, Fast Memo envoie un payload JSON à votre point de terminaison avec les détails de ce qui s'est passé.

  • Requêtes HTTP POST

    Chaque webhook envoie un payload JSON via HTTP POST à l'URL que vous fournissez. Aucun en-tête d'authentification n'est requis.

  • 14 Déclencheurs disponibles

    Choisissez parmi 14 événements différents : création, mise à jour et suppression de notes, modifications de catégories, import/export de données et plus.

  • IoT et Automatisation

    Connectez Fast Memo à des services comme IFTTT, Zapier, n8n, Home Assistant ou votre propre serveur pour créer des automatisations personnalisées.

Comment Configurer

  1. Ouvrir les Paramètres

    Allez dans les Paramètres de Fast Memo et trouvez l'option Webhooks dans la section Avancé.

  2. Choisir un déclencheur

    Vous verrez une liste de tous les 14 déclencheurs disponibles. Chacun peut être configuré indépendamment avec sa propre URL.

  3. Entrer une URL et l'activer

    Tapez l'URL de votre point de terminaison dans le champ de texte. Puis activez le déclencheur en cochant la case. Le label POST confirme la méthode HTTP.

  4. C'est fait — il se déclenche automatiquement

    Chaque fois que l'événement correspondant se produit dans l'application, Fast Memo enverra une requête POST à votre URL avec un body JSON décrivant l'événement.

Déclencheurs Disponibles

Chaque déclencheur a sa propre URL et un bouton activer/désactiver. Vous pouvez en configurer autant que vous le souhaitez.

DéclencheurCatégorieAction
Ajouter une note texteNotesnote/addTextNote
Ajouter une note todoNotesnote/addTodoNote
Ajouter une note kanbanNotesnote/addKanbanNote
Ajouter une note codeNotesnote/addCodeNote
Mettre à jour une noteNotesnote/updateNote
Suppression temporaireNotesnote/temporaryDeleteNote
Supprimer une noteNotesnote/deleteNote
Restaurer une noteNotesnote/restoreNote
Créer une catégorieCatégoriescategory/createCategory
Mettre à jour une catégorieCatégoriescategory/updateCategory
Supprimer une catégorieCatégoriescategory/deleteCategory
Exporter les donnéesDonnéesgeneric/export
Importer les donnéesDonnéesgeneric/import
Effacer les donnéesDonnéesgeneric/wipeData

Référence des Payloads

Chaque webhook envoie un body JSON via HTTP POST. Voici le format exact du payload pour chaque déclencheur. Tous les payloads incluent un champ "success" à true et une chaîne "action".

Création de Notes

POST — Ajouter une note texte
{
  "success": true,
  "action": "note/addTextNote",
  "id": "abc123",
  "type": "text",
  "title": "My Note",
  "text": "<p>Hello world</p>",
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "book", "name": "Personal" }
}
POST — Ajouter une note todo
{
  "success": true,
  "action": "note/addTodoNote",
  "id": "abc123",
  "type": "todo",
  "title": "Shopping List",
  "list": [
    { "id": "item1", "text": "Buy milk", "checked": false },
    { "id": "item2", "text": "Buy eggs", "checked": true }
  ],
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "cart", "name": "Shopping" }
}
POST — Ajouter une note kanban
{
  "success": true,
  "action": "note/addKanbanNote",
  "id": "abc123",
  "type": "kanban",
  "title": "Sprint Board",
  "columns": [
    {
      "id": "col1",
      "title": "To Do",
      "cards": [
        { "id": "card1", "text": "Design UI" }
      ]
    },
    {
      "id": "col2",
      "title": "Done",
      "cards": []
    }
  ],
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "briefcase", "name": "Work" }
}
POST — Ajouter une note code
{
  "success": true,
  "action": "note/addCodeNote",
  "id": "abc123",
  "type": "code",
  "title": "API Handler",
  "tabs": [
    {
      "id": "tab1",
      "title": "index.ts",
      "code": "console.log('hello')",
      "language": "typescript"
    }
  ],
  "activeTabId": "tab1",
  "createdAt": 1713700000,
  "updatedAt": 1713700000,
  "important": false,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "code", "name": "Dev" }
}

Cycle de Vie des Notes

POST — Mettre à jour une note (unique)
{
  "success": true,
  "action": "note/updateNote",
  "id": "abc123",
  "type": "text",
  "title": "Updated Note",
  "text": "<p>New content</p>",
  "createdAt": 1713700000,
  "updatedAt": 1713800000,
  "important": true,
  "readOnly": false,
  "hidden": false,
  "locked": false,
  "category": { "iconId": "book", "name": "Personal" }
}
POST — Mettre à jour une note (en masse)
{
  "success": true,
  "action": "note/updateNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"],
  "property": "important"
}
POST — Suppression temporaire (unique)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "id": "abc123"
}
POST — Suppression temporaire (en masse)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — Supprimer une note (unique)
{
  "success": true,
  "action": "note/deleteNote",
  "id": "abc123"
}
POST — Supprimer une note (en masse)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — Supprimer une note (toutes)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "all"
}
POST — Restaurer une note (unique)
{
  "success": true,
  "action": "note/restore",
  "id": "abc123"
}
POST — Restaurer une note (en masse)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — Restaurer une note (toutes)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "all"
}

Opérations sur les Catégories

POST — Créer une catégorie
{
  "success": true,
  "action": "category/createCategory",
  "iconId": "book",
  "name": "Personal"
}
POST — Mettre à jour une catégorie
{
  "success": true,
  "action": "category/updateCategory",
  "prevCategory": { "iconId": "book", "name": "Personal" },
  "nextCategory": { "iconId": "star", "name": "Favorites" }
}
POST — Supprimer une catégorie
{
  "success": true,
  "action": "category/deleteCategory",
  "iconId": "book"
}

Opérations sur les Données

POST — Exporter les données
{
  "success": true,
  "action": "generic/export"
}
POST — Importer les données
{
  "success": true,
  "action": "generic/import"
}
POST — Effacer les données
{
  "success": true,
  "action": "generic/wipeData",
  "cloud": false
}

Limitations et Remarques

  • La méthode HTTP est toujours POST — elle ne peut pas être changée en GET, PUT ou autre.
  • Il y a un timeout de 5 secondes par requête. Si votre endpoint ne répond pas dans les 5 secondes, la requête est abandonnée.
  • Pas de nouvelle tentative — si une requête échoue, elle est silencieusement abandonnée.
  • Une URL par déclencheur — vous ne pouvez pas configurer plusieurs endpoints pour le même événement.
  • Pas d'en-têtes personnalisés ni de tokens d'authentification — seuls les en-têtes JSON content-type standard sont envoyés.
  • La fonctionnalité est en BÊTA. Les payloads et le comportement peuvent changer dans les futures versions.