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.

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
Ouvrir les Paramètres
Allez dans les Paramètres de Fast Memo et trouvez l'option Webhooks dans la section Avancé.
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.
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.
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éclencheur | Catégorie | Action |
|---|---|---|
| Ajouter une note texte | Notes | note/addTextNote |
| Ajouter une note todo | Notes | note/addTodoNote |
| Ajouter une note kanban | Notes | note/addKanbanNote |
| Ajouter une note code | Notes | note/addCodeNote |
| Mettre à jour une note | Notes | note/updateNote |
| Suppression temporaire | Notes | note/temporaryDeleteNote |
| Supprimer une note | Notes | note/deleteNote |
| Restaurer une note | Notes | note/restoreNote |
| Créer une catégorie | Catégories | category/createCategory |
| Mettre à jour une catégorie | Catégories | category/updateCategory |
| Supprimer une catégorie | Catégories | category/deleteCategory |
| Exporter les données | Données | generic/export |
| Importer les données | Données | generic/import |
| Effacer les données | Données | generic/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.


