Alle Anleitungen
Webhooks

Webhooks-Anleitung

Automatisieren Sie Ihren Workflow, indem Sie Fast Memo mit externen Diensten verbinden. Erhalten Sie Echtzeit-Benachrichtigungen bei Änderungen an Notizen, Kategorien oder Daten.

  • Veröffentlicht am
  • 5 Min. Lesezeit

Was sind Webhooks?

Webhooks in Fast Memo sind ausgehende HTTP-POST-Benachrichtigungen, die an von Ihnen konfigurierte URLs gesendet werden. Wenn ein bestimmtes Ereignis in der App eintritt, sendet Fast Memo einen JSON-Payload an Ihren Endpunkt mit Details darüber, was passiert ist.

  • HTTP-POST-Anfragen

    Jeder Webhook sendet einen JSON-Payload per HTTP POST an die von Ihnen angegebene URL. Keine Authentifizierungs-Header erforderlich.

  • 14 verfügbare Trigger

    Wählen Sie aus 14 verschiedenen Ereignissen: Notizerstellung, Updates, Löschung, Kategorieänderungen, Datenimport/-export und mehr.

  • IoT & Automatisierung

    Verbinden Sie Fast Memo mit Diensten wie IFTTT, Zapier, n8n, Home Assistant oder Ihrem eigenen Server für benutzerdefinierte Automatisierungen.

So richten Sie es ein

  1. Einstellungen öffnen

    Gehen Sie zu den Einstellungen in Fast Memo und finden Sie die Webhooks-Option im Bereich Erweitert.

  2. Trigger wählen

    Sie sehen eine Liste aller 14 verfügbaren Trigger. Jeder kann unabhängig mit seiner eigenen URL konfiguriert werden.

  3. URL eingeben und aktivieren

    Geben Sie die URL Ihres Endpunkts in das Textfeld ein. Aktivieren Sie dann den Trigger, indem Sie das Kontrollkästchen antippen. Das POST-Label bestätigt die HTTP-Methode.

  4. Fertig — es wird automatisch ausgelöst

    Jedes Mal, wenn das entsprechende Ereignis in der App eintritt, sendet Fast Memo eine POST-Anfrage an Ihre URL mit einem JSON-Body, der das Ereignis beschreibt.

Verfügbare Trigger

Jeder Trigger hat seine eigene URL und einen Ein-/Ausschalter. Sie können so viele konfigurieren, wie Sie möchten.

TriggerKategorieAktion
Textnotiz hinzufügenNotizennote/addTextNote
Todo-Notiz hinzufügenNotizennote/addTodoNote
Kanban-Notiz hinzufügenNotizennote/addKanbanNote
Code-Notiz hinzufügenNotizennote/addCodeNote
Notiz aktualisierenNotizennote/updateNote
Vorübergehend löschenNotizennote/temporaryDeleteNote
Notiz löschenNotizennote/deleteNote
Notiz wiederherstellenNotizennote/restoreNote
Kategorie erstellenKategoriencategory/createCategory
Kategorie aktualisierenKategoriencategory/updateCategory
Kategorie löschenKategoriencategory/deleteCategory
Daten exportierenDatengeneric/export
Daten importierenDatengeneric/import
Daten löschenDatengeneric/wipeData

Payload-Referenz

Jeder Webhook sendet einen JSON-Body per HTTP POST. Nachfolgend das exakte Payload-Format für jeden Trigger. Alle Payloads enthalten ein "success"-Feld auf true und einen "action"-String.

Notizerstellung

POST — Textnotiz hinzufügen
{
  "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 — Todo-Notiz hinzufügen
{
  "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 — Kanban-Notiz hinzufügen
{
  "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 — Code-Notiz hinzufügen
{
  "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" }
}

Notiz-Lebenszyklus

POST — Notiz aktualisieren (einzeln)
{
  "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 — Notiz aktualisieren (mehrere)
{
  "success": true,
  "action": "note/updateNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"],
  "property": "important"
}
POST — Vorübergehend löschen (einzeln)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "id": "abc123"
}
POST — Vorübergehend löschen (mehrere)
{
  "success": true,
  "action": "note/temporaryDeleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — Notiz löschen (einzeln)
{
  "success": true,
  "action": "note/deleteNote",
  "id": "abc123"
}
POST — Notiz löschen (mehrere)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — Notiz löschen (alle)
{
  "success": true,
  "action": "note/deleteNote",
  "extra": "all"
}
POST — Notiz wiederherstellen (einzeln)
{
  "success": true,
  "action": "note/restore",
  "id": "abc123"
}
POST — Notiz wiederherstellen (mehrere)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "multiple",
  "ids": ["abc123", "def456"]
}
POST — Notiz wiederherstellen (alle)
{
  "success": true,
  "action": "note/restoreNote",
  "extra": "all"
}

Kategorie-Operationen

POST — Kategorie erstellen
{
  "success": true,
  "action": "category/createCategory",
  "iconId": "book",
  "name": "Personal"
}
POST — Kategorie aktualisieren
{
  "success": true,
  "action": "category/updateCategory",
  "prevCategory": { "iconId": "book", "name": "Personal" },
  "nextCategory": { "iconId": "star", "name": "Favorites" }
}
POST — Kategorie löschen
{
  "success": true,
  "action": "category/deleteCategory",
  "iconId": "book"
}

Daten-Operationen

POST — Daten exportieren
{
  "success": true,
  "action": "generic/export"
}
POST — Daten importieren
{
  "success": true,
  "action": "generic/import"
}
POST — Daten löschen
{
  "success": true,
  "action": "generic/wipeData",
  "cloud": false
}

Einschränkungen & Hinweise

  • Die HTTP-Methode ist immer POST — sie kann nicht in GET, PUT oder andere Methoden geändert werden.
  • Es gibt ein 5-Sekunden-Timeout pro Anfrage. Wenn Ihr Endpunkt nicht innerhalb von 5 Sekunden antwortet, wird die Anfrage verworfen.
  • Keine Wiederholungsversuche — wenn eine Anfrage fehlschlägt, wird sie stillschweigend verworfen.
  • Eine URL pro Trigger — Sie können nicht mehrere Endpunkte für dasselbe Ereignis konfigurieren.
  • Keine benutzerdefinierten Header oder Authentifizierungstoken — es werden nur Standard-JSON-Content-Type-Header gesendet.
  • Die Funktion befindet sich in der BETA-Phase. Payloads und Verhalten können sich in zukünftigen Versionen ändern.