Zum Hauptinhalt springen

Webhooks

Ein Webhook schickt Ereignisse an deine URL, etwa sobald eine Zusammenfassung fertig ist. Diese Endpunkte registrieren und verwalten Webhooks.

Jeder Endpunkt unten zeigt in der Mitte seine Parameter und Antwortfelder und rechts ein Anfragebeispiel mit Beispielantwort.

Basis-URL https://api.sally.ioVersion v1.0 aktuell, noch nicht eingefrorenSo funktioniert die Versionierung

Listet die registrierten Webhooks auf​

GET/v1.0/directories/{directoryId}/webhooks

Admins/Owner sehen alle Webhooks des Unternehmenskontos (persönliche und unternehmensweite); ein normaler Nutzer sieht nur seine eigenen (persönlichen) Webhooks.

Feldübersicht aus der Spezifikation

Jeder Eintrag enthält:

  • webhookId (string): Id des Webhooks.
  • name (string): Anzeigename des Webhooks.
  • event (string enum): wann der Webhook auslöst. summary.ready nach jeder Zusammenfassung, manual nie von selbst (er wird aus dem Meeting oder der Aufnahme heraus gestartet). Webhooks, die vor dem aktuellen Auslösermodell angelegt wurden, können noch recording.summarized oder meeting.summarized melden; diese beiden lassen sich nicht mehr setzen.
  • url (string): Ziel-URL, an die Sally das Ereignis per POST sendet.
  • isActive (boolean): ob der Webhook aktiv auslöst.
  • directoryWide (boolean): ob der Webhook unternehmensweit auslöst (für Aufnahmen ALLER Nutzer, nur für Admins/Owner) oder persönlich (nur für die eigenen Aufnahmen des Erstellers).
  • createdOn (string): Zeitstempel der Erstellung (ISO-8601).

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: createdOn, directoryWide, event, isActive, name, url, webhookId.

    Beispiel: createdOn,directoryWide

Antwort

  • webhookIdstringPflicht

    Id des Webhooks.

  • namestringPflicht

    Anzeigename des Webhooks.

  • eventstringPflicht

    Ereignis, bei dem der Webhook auslöst.

    Erlaubte Werte: summary.readymanualrecording.summarizedmeeting.summarized
  • urlstringPflicht

    Ziel-URL, an die Sally das Ereignis per POST sendet.

  • isActivebooleanPflicht

    Ob der Webhook aktiv auslöst.

  • directoryWidebooleanPflicht

    Ob der Webhook unternehmensweit auslöst (für Aufnahmen ALLER Nutzer, nur für Admins/Owner) oder persönlich (nur für die eigenen Aufnahmen des Erstellers).

  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Registriert einen Webhook (löst nach der Zusammenfassung aus)​

POST/v1.0/directories/{directoryId}/webhooks

Sally sendet einen POST an die angegebene URL, wenn das Ereignis eintritt (Payload: Zusammenfassung plus Custom Insights plus Abschnittseinträge).

Feldübersicht aus der Spezifikation

Felder im Body:

  • url (string, Pflicht): der Endpunkt, an den Sally den POST-Request sendet.
  • event (string, optional, Standard summary.ready): summary.ready löst nach jeder Zusammenfassung aus, manual löst nie von selbst aus und wird aus dem Meeting oder der Aufnahme heraus gestartet. Das Ereignis, das den Webhook auslöst.
  • name (string, optional): eine Bezeichnung, um den Webhook in der Liste wiederzuerkennen.
  • directoryWide (boolean, optional, Standard false): false = persönlicher Webhook, löst nur für die eigenen Aufnahmen des Erstellers aus; true = löst für die Aufnahmen ALLER Nutzer aus (Admins/Ownern vorbehalten).

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: createdOn, directoryWide, event, isActive, name, url, webhookId.

    Beispiel: createdOn,directoryWide

Request-Body application/json

  • urlstringPflicht
    Beispiel: https://example.com/sally-webhook
  • eventstringoptional
    Erlaubte Werte: summary.readymanual
    Beispiel: summary.ready
  • namestringoptional
    Beispiel: Mein CRM-Sync
  • directoryWidebooleanoptional
    Beispiel: false

Antwort

  • webhookIdstringPflicht

    Id des Webhooks.

  • namestringPflicht

    Anzeigename des Webhooks.

  • eventstringPflicht

    Ereignis, bei dem der Webhook auslöst.

    Erlaubte Werte: summary.readymanualrecording.summarizedmeeting.summarized
  • urlstringPflicht

    Ziel-URL, an die Sally das Ereignis per POST sendet.

  • isActivebooleanPflicht

    Ob der Webhook aktiv auslöst.

  • directoryWidebooleanPflicht

    Ob der Webhook unternehmensweit auslöst (für Aufnahmen ALLER Nutzer, nur für Admins/Owner) oder persönlich (nur für die eigenen Aufnahmen des Erstellers).

  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Aktualisiert einen Webhook (url, event, name)​

PATCH/v1.0/directories/{directoryId}/webhooks/{webhookId}

Teilweise Aktualisierung: Nur die Felder, die im Body enthalten sind, ändern sich; die anderen bleiben unverändert. Aktivieren/Deaktivieren erfolgt NICHT hier, sondern über die separaten Endpunkte activate/deactivate. Gleiche Berechtigungen wie beim Löschen: Ein normaler Nutzer kann nur seine eigenen (persönlichen) Webhooks ändern; Admins/Owner können jeden Webhook des Unternehmenskontos ändern.

Feldübersicht aus der Spezifikation

Felder im Body:

  • url (string, optional): neuer HTTPS-Endpunkt, an den Sally POST-Requests sendet.
  • event (string, optional): neues Ereignis, das den Webhook auslöst.
  • name (string, optional): neue Bezeichnung, um den Webhook in der Liste wiederzuerkennen.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • webhookIdstringPflicht

    Id des Webhooks.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: createdOn, directoryWide, event, isActive, name, url, webhookId.

    Beispiel: createdOn,directoryWide

Request-Body application/json

  • urlstringoptional
    Beispiel: https://example.com/sally-webhook
  • eventstringoptional
    Erlaubte Werte: summary.readymanual
    Beispiel: summary.ready
  • namestringoptional
    Beispiel: Mein CRM-Sync

Antwort

  • webhookIdstringPflicht

    Id des Webhooks.

  • namestringPflicht

    Anzeigename des Webhooks.

  • eventstringPflicht

    Ereignis, bei dem der Webhook auslöst.

    Erlaubte Werte: summary.readymanualrecording.summarizedmeeting.summarized
  • urlstringPflicht

    Ziel-URL, an die Sally das Ereignis per POST sendet.

  • isActivebooleanPflicht

    Ob der Webhook aktiv auslöst.

  • directoryWidebooleanPflicht

    Ob der Webhook unternehmensweit auslöst (für Aufnahmen ALLER Nutzer, nur für Admins/Owner) oder persönlich (nur für die eigenen Aufnahmen des Erstellers).

  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Löscht (deaktiviert) einen Webhook​

DELETE/v1.0/directories/{directoryId}/webhooks/{webhookId}

Weiches Löschen (Soft Delete, active=false) gemäß Sally-Konvention. Ein normaler Nutzer kann nur seine eigenen (persönlichen) Webhooks löschen; Admins/Owner können jeden Webhook des Unternehmenskontos löschen.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • webhookIdstringPflicht

    Id des Webhooks.

Statuscodes

  • 204Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Aktiviert einen Webhook​

POST/v1.0/directories/{directoryId}/webhooks/{webhookId}/activate

Setzt einen pausierten Webhook fort, sodass er wieder auslöst. Kein Request-Body. Gleiche Berechtigungen wie beim Löschen: Ein normaler Nutzer kann nur seine eigenen (persönlichen) Webhooks ändern; Admins/Owner können jeden Webhook des Unternehmenskontos ändern. Gibt den aktualisierten Webhook zurück.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • webhookIdstringPflicht

    Id des Webhooks.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: createdOn, directoryWide, event, isActive, name, url, webhookId.

    Beispiel: createdOn,directoryWide

Antwort

  • webhookIdstringPflicht

    Id des Webhooks.

  • namestringPflicht

    Anzeigename des Webhooks.

  • eventstringPflicht

    Ereignis, bei dem der Webhook auslöst.

    Erlaubte Werte: summary.readymanualrecording.summarizedmeeting.summarized
  • urlstringPflicht

    Ziel-URL, an die Sally das Ereignis per POST sendet.

  • isActivebooleanPflicht

    Ob der Webhook aktiv auslöst.

  • directoryWidebooleanPflicht

    Ob der Webhook unternehmensweit auslöst (für Aufnahmen ALLER Nutzer, nur für Admins/Owner) oder persönlich (nur für die eigenen Aufnahmen des Erstellers).

  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.

Deaktiviert einen Webhook​

POST/v1.0/directories/{directoryId}/webhooks/{webhookId}/deactivate

Pausiert einen Webhook, ohne ihn zu löschen: Er bleibt in der Liste, löst aber nicht aus, bis er wieder aktiviert wird. Kein Request-Body. Gleiche Berechtigungen wie beim Löschen: Ein normaler Nutzer kann nur seine eigenen (persönlichen) Webhooks ändern; Admins/Owner können jeden Webhook des Unternehmenskontos ändern. Gibt den aktualisierten Webhook zurück.

Pfadparameter

  • directoryIdstringPflicht

    Id des Unternehmenskontos (des Sally-Firmenkontos), zu dem die Ressource gehört. Die Unternehmenskonten, die ein Token ansprechen kann, listet GET /v1.0/me/directories/memberships auf.

  • webhookIdstringPflicht

    Id des Webhooks.

Query-Parameter

  • fieldsstringoptional

    Kommagetrennte Liste der Felder, die zurückgegeben werden sollen. Lässt du den Parameter weg, bekommst du alle Felder, auch solche, die in Zukunft hinzukommen. Das ist deine Entscheidung: Nenne deine Felder explizit, wenn du davor geschützt sein willst.

    Nur Felder der ersten Ebene können angegeben werden. Eine verschachtelte Liste wie attendees, tags oder sectionItems wird ganz oder gar nicht zurückgegeben; attendees.name wird nicht unterstützt.

    Bei einer paginierten Antwort gilt die Auswahl für die Einträge in items; page, pageSize, total und hasMore werden immer zurückgegeben. Ein unbekannter Name wird mit 400 abgelehnt statt ignoriert.

    Hier auswählbar: createdOn, directoryWide, event, isActive, name, url, webhookId.

    Beispiel: createdOn,directoryWide

Antwort

  • webhookIdstringPflicht

    Id des Webhooks.

  • namestringPflicht

    Anzeigename des Webhooks.

  • eventstringPflicht

    Ereignis, bei dem der Webhook auslöst.

    Erlaubte Werte: summary.readymanualrecording.summarizedmeeting.summarized
  • urlstringPflicht

    Ziel-URL, an die Sally das Ereignis per POST sendet.

  • isActivebooleanPflicht

    Ob der Webhook aktiv auslöst.

  • directoryWidebooleanPflicht

    Ob der Webhook unternehmensweit auslöst (für Aufnahmen ALLER Nutzer, nur für Admins/Owner) oder persönlich (nur für die eigenen Aufnahmen des Erstellers).

  • createdOnstringPflicht

    Zeitstempel der Erstellung (ISO-8601).

Statuscodes

  • 200Erfolg
  • 400

    Ungültige Anfrage (Validierungsfehler).

  • 401

    Fehlender oder ungültiger Bearer-Token.

  • 403

    Verboten (unzureichende Berechtigungen).

  • 404

    Ressource nicht gefunden oder nicht zugänglich.

  • 429

    Rate-Limit überschritten (pro Token/IP). Transkriptions-Uploads können außerdem den code FUP_LIMIT_EXCEEDED oder TOO_MANY_CONCURRENT_TRANSCRIPTIONS zurückgeben.

  • 500

    Interner Serverfehler.