funtrade
  • funtrade in Kürze
  • funtrade Konzept
  • Adresseingabe
  • Buchhaltung
  • Document Output für personalisierte Dokumente
  • Ereignisse
  • Filter und Segmentierung
  • Jahreswechsel
  • Korrespondenz
  • Merkmale
  • Personen
  • Projektfinanzierung
  • Verdankungen
  • Buchungen einlesen mit/ohne Referenz
  • Logistik
  • Tutorial: «Adresspflege Online» der Schweizerischen Post
  • Tutorial: Newsletter mit Brevo
  • Tutorial: Spontanes Mailing mit Brevo
  • Tutorial: Datamatrix - Adressen nach einem Versand pflegen
  • Tutorial: Datenschutz
  • Tutorial: Dubletten
  • Tutorial: Onlinespenden mit RaiseNow
  • Tutorial: Mailchimp
  • Tutorial: Personalisierte Spendenbescheinigung
  • Tutorial: spezifisches Dokument pro Segment erstellen
  • Tutorial: Verdankungslauf für personalisierte Verdankungen
  • Tutorial: Zusagen / Mitgliedschaften
  • Tutorial: Zusagenfakturierung mit LSV/DD
  • Tutorial: Webforms / Webhooks
  • Tutorial: Adressimport über Excel/CSV
  • Fehler bei Mailchimp Synchronisation
  • Wie buche ich Spesen von Twint, Payrexx, Worldline, etc.?
  • Wie buche ich zusätzliche Einnahmen (z.B. Mieterlös, Materialverleih etc.)?
  • Wie kann ich eine Spende zurückzahlen?
  • Warum wurde ein Spendeneingang unter RaiseNow, Worldline, Payrexx, etc., nicht gebucht?
  • Wie kann ich Massenmanipulationen ausführen? Was sind Filterverknüpfungen?
  • Sind Filter / Filterpositionen / Filtergrenzen immer inklusive?
  • Auf was muss ich achten, wenn ich Filter mit mehreren Filterpositionen erstelle?
  • Wie kann ich Filter oder andere Jobs automatisch ausführen lassen?
  • Welche Sperre soll ich für was benutzen? Wieso die Person nicht einfach löschen?
  • Wie ändere ich ein Ereignis bei einer Person?
  • Wie bilde ich einen Stichtag ab?
  • Kann man die gleiche Adresse, Emailadresse oder Telefonnummer für verschiedene Kontakte verwenden?
  • Kann ich mit funtrade Emails versenden (mit meiner eigenen Domain)?
  • Spender mit nur einem gewissen Ereignis aus einer Selektion ausschliessen
  • Einführung neues Loginsystem
  • Newsletter, spontanes Mailing und Transactional Emails
  • Wie setze ich eine Ereignisverknüpfung zurück?
  • Frage nicht gefunden?
  • Benutzerführung

    • 1. Ein- und Ausstieg
    • 2. Navigieren in funtrade
    • 3. Standardfunktionen
    • 4. Shortcuts
    • 5. Jobs
    • 6. Personalisierte Ansichten
  • Kundenpflege und Akquisition

    • 1. Adressbereinigung (manuell)
    • 2. Anlassspenden
    • 3. Dubletten- und Haushalte bearbeiten
    • 4. Ereignisse
    • 5. Korrespondenz
    • 6. Mailingauswertung
    • 7. Mailings (Segmentierung)
    • 8. Merkmale
    • 9. Reportingtool
    • 10. Verdankungen
    • 11. Zusagenbearbeitung
  • Individual Fundraising

    • 1. Instrumente des individual Fundraising
    • 2. Nachlass
  • Verkauf und Logistik

    • 1. Auftragsverwaltung
    • 2. Avisierungssystem
    • 3. Artikel- und Lagerverwaltung
    • 4. Daueraufträge (alte Struktur, direkt in Aufträgen)
    • 5. Einkauf
    • 6. Inventur
    • 7. Kassenverkauf
    • 8. Kommissionsaufträge
    • 9. Rabattstufen einrichten
    • 10. Sammelfakturen (mehrere Rechnungen zusammenfassen)
    • 11. Daueraufträge
    • 12. Daueraufträge, Parametrisierung
    • 13. Vorauszahlungsaufträge
  • Veranstaltungen

    • 1. Veranstaltungen
  • Buchhaltung

    • 1. Debitorenverwaltung
    • 2. EGA – Elektronische Gutschriftsanzeige
    • 3. LSV/DD-Belastungen
    • 4. Buchungsexport (in Finanzbuchhaltung)
  • Administration

    • 1. Benutzerverwaltung
    • 2. Document Output
    • 3. E-Mail Bounces Management
    • 4. Organisatorische Einheiten
    • 5. Post-Daten verarbeiten
    • 6. Botenroutierung
    • 7. Systemverwaltung
    • 8. Zeitabschnitte in funtrade
    • 9. Barcodeleser
    • 10. Referenznummer suchen
  • Schnittstellen

    • 1. Adressaktualisierung
    • 2. Backend Integration
    • 3. Eloqua (Marketing Automation)
    • 4. FTML (E-Commerce)
    • 5. ActiveCampaign-Schnittstelle
    • 6. MailChimp (E-Mail)
    • 7. RaiseNow (Recurring Payments)
    • 8. Telefonmarketing (Alnovis)
  • Datenschutz

    • 1. Datenschutz
  • Prozedurreferenz
  • Datenreferenz
  • Auswertungen

    • Auswertungen Personen
    • Auswertungen Verkauf
    • Auswertungen Projektfinanzierung
    • Auswertungen Nachlass
    • Auswertungen Veranstaltungen
    • Auswertungen Buchhaltung
    • Auswertungen Logistik
    • Auswertungen Organisation
  • Releasenotes

    • Aktuelle Version
    • v10.76
    • v10.75
    • v10.74
    • v10.73
    • v10.72
    • v10.71
    • v10.70
    • v10.69
    • v10.68
    • v10.67
    • v10.66
    • v10.65
    • v10.64
  • funtrade in Kürze
  • funtrade Konzept
  • Adresseingabe
  • Buchhaltung
  • Document Output für personalisierte Dokumente
  • Ereignisse
  • Filter und Segmentierung
  • Jahreswechsel
  • Korrespondenz
  • Merkmale
  • Personen
  • Projektfinanzierung
  • Verdankungen
  • Buchungen einlesen mit/ohne Referenz
  • Logistik
  • Tutorial: «Adresspflege Online» der Schweizerischen Post
  • Tutorial: Newsletter mit Brevo
  • Tutorial: Spontanes Mailing mit Brevo
  • Tutorial: Datamatrix - Adressen nach einem Versand pflegen
  • Tutorial: Datenschutz
  • Tutorial: Dubletten
  • Tutorial: Onlinespenden mit RaiseNow
  • Tutorial: Mailchimp
  • Tutorial: Personalisierte Spendenbescheinigung
  • Tutorial: spezifisches Dokument pro Segment erstellen
  • Tutorial: Verdankungslauf für personalisierte Verdankungen
  • Tutorial: Zusagen / Mitgliedschaften
  • Tutorial: Zusagenfakturierung mit LSV/DD
  • Tutorial: Webforms / Webhooks
  • Tutorial: Adressimport über Excel/CSV
  • Fehler bei Mailchimp Synchronisation
  • Wie buche ich Spesen von Twint, Payrexx, Worldline, etc.?
  • Wie buche ich zusätzliche Einnahmen (z.B. Mieterlös, Materialverleih etc.)?
  • Wie kann ich eine Spende zurückzahlen?
  • Warum wurde ein Spendeneingang unter RaiseNow, Worldline, Payrexx, etc., nicht gebucht?
  • Wie kann ich Massenmanipulationen ausführen? Was sind Filterverknüpfungen?
  • Sind Filter / Filterpositionen / Filtergrenzen immer inklusive?
  • Auf was muss ich achten, wenn ich Filter mit mehreren Filterpositionen erstelle?
  • Wie kann ich Filter oder andere Jobs automatisch ausführen lassen?
  • Welche Sperre soll ich für was benutzen? Wieso die Person nicht einfach löschen?
  • Wie ändere ich ein Ereignis bei einer Person?
  • Wie bilde ich einen Stichtag ab?
  • Kann man die gleiche Adresse, Emailadresse oder Telefonnummer für verschiedene Kontakte verwenden?
  • Kann ich mit funtrade Emails versenden (mit meiner eigenen Domain)?
  • Spender mit nur einem gewissen Ereignis aus einer Selektion ausschliessen
  • Einführung neues Loginsystem
  • Newsletter, spontanes Mailing und Transactional Emails
  • Wie setze ich eine Ereignisverknüpfung zurück?
  • Frage nicht gefunden?
  • Benutzerführung

    • 1. Ein- und Ausstieg
    • 2. Navigieren in funtrade
    • 3. Standardfunktionen
    • 4. Shortcuts
    • 5. Jobs
    • 6. Personalisierte Ansichten
  • Kundenpflege und Akquisition

    • 1. Adressbereinigung (manuell)
    • 2. Anlassspenden
    • 3. Dubletten- und Haushalte bearbeiten
    • 4. Ereignisse
    • 5. Korrespondenz
    • 6. Mailingauswertung
    • 7. Mailings (Segmentierung)
    • 8. Merkmale
    • 9. Reportingtool
    • 10. Verdankungen
    • 11. Zusagenbearbeitung
  • Individual Fundraising

    • 1. Instrumente des individual Fundraising
    • 2. Nachlass
  • Verkauf und Logistik

    • 1. Auftragsverwaltung
    • 2. Avisierungssystem
    • 3. Artikel- und Lagerverwaltung
    • 4. Daueraufträge (alte Struktur, direkt in Aufträgen)
    • 5. Einkauf
    • 6. Inventur
    • 7. Kassenverkauf
    • 8. Kommissionsaufträge
    • 9. Rabattstufen einrichten
    • 10. Sammelfakturen (mehrere Rechnungen zusammenfassen)
    • 11. Daueraufträge
    • 12. Daueraufträge, Parametrisierung
    • 13. Vorauszahlungsaufträge
  • Veranstaltungen

    • 1. Veranstaltungen
  • Buchhaltung

    • 1. Debitorenverwaltung
    • 2. EGA – Elektronische Gutschriftsanzeige
    • 3. LSV/DD-Belastungen
    • 4. Buchungsexport (in Finanzbuchhaltung)
  • Administration

    • 1. Benutzerverwaltung
    • 2. Document Output
    • 3. E-Mail Bounces Management
    • 4. Organisatorische Einheiten
    • 5. Post-Daten verarbeiten
    • 6. Botenroutierung
    • 7. Systemverwaltung
    • 8. Zeitabschnitte in funtrade
    • 9. Barcodeleser
    • 10. Referenznummer suchen
  • Schnittstellen

    • 1. Adressaktualisierung
    • 2. Backend Integration
    • 3. Eloqua (Marketing Automation)
    • 4. FTML (E-Commerce)
    • 5. ActiveCampaign-Schnittstelle
    • 6. MailChimp (E-Mail)
    • 7. RaiseNow (Recurring Payments)
    • 8. Telefonmarketing (Alnovis)
  • Datenschutz

    • 1. Datenschutz
  • Prozedurreferenz
  • Datenreferenz
  • Auswertungen

    • Auswertungen Personen
    • Auswertungen Verkauf
    • Auswertungen Projektfinanzierung
    • Auswertungen Nachlass
    • Auswertungen Veranstaltungen
    • Auswertungen Buchhaltung
    • Auswertungen Logistik
    • Auswertungen Organisation
  • Releasenotes

    • Aktuelle Version
    • v10.76
    • v10.75
    • v10.74
    • v10.73
    • v10.72
    • v10.71
    • v10.70
    • v10.69
    • v10.68
    • v10.67
    • v10.66
    • v10.65
    • v10.64
  • Tutorial: Webforms / Webhooks

Tutorial: Webforms / Webhooks

Einleitung

In diesem Tutorial zeige ich Dir, wie Du Webhooks verwendest, um Drittsysteme – in unserem Beispielfall die Meldeplattform der NPO Lebensbaum – mit funtrade zu verbinden. Mithilfe eines Webhooks sollen Meldungen (über gefundene neue Baumarten) vollautomatisch in funtrade eingelesen werden. Dabei wird für jeden neuen Melder eine Person angelegt, falls diese noch nicht existiert, und es wird ein Ereignis in der Kontakthistorie hinterlegt.

Szenario

  • NPO Lebensbaum: Betreibt eine Meldeplattform, über die Tiersichtungen gemeldet werden.
  • Ziel: Automatische Übertragung der Meldedaten in funtrade.
  • Verarbeitungsschritte:
    • Anlage einer neuen Person (sofern noch nicht vorhanden).
    • Hinterlegung eines Ereignisses in der Kontakthistorie.

Voraussetzungen

  • Datenstruktur kennen: Um das Setup vorzunehmen, ist es essenziell, die Datenstruktur des externen Systems zu kennen. Hierzu kannst Du ein Tool wie webhook.site verwenden.
  • Beispiel-Datenstruktur: Im Folgenden findest Du ein Beispiel der JSON-Payload, die von der Meldeplattform versendet wird:
{
    "id": 123343455349,
    "timestamp": 1740564744600,
    "event": "observation",
    "address": {
        "id": 3434534,
        "name": "Christian",
        "firstname": "Davatz",
        "street": "Freiestrasse 18",
        "city": "Zürich",
        "state": "ZH",
        "zip": "8000",
        "country": "CH"
    },
    "attributes": {
        "observation": "hedgehog"
    }
}

Schritte zur Einrichtung des Webhooks

Aufbau der Webhook-URL

Die URL für den Webhook setzt sich immer folgendermassen zusammen:

<KundenURL>/rest/webhook/v1.0/data/<WebformKey>/<WebFormId>/<ExternalId>
  • KundenURL
    URL der funtrade installation (Browser-URL ohne das /funtrade)
  • WebformKey
    oftmals der Name des Services/Drittsystems
  • WebFormId
    Typ des "Models", oftmals Name einer gewissen Aktion/Events, im Plural
  • ExternalId
    Id des Events im Quellsystem/Drittsystem

Bspw:

https://asp.arenae.ch/funtrade-playft/rest/webhook/v1.0/data/meldeplattform/observations/123343455348

Diese URL dient als Endpunkt, über den die Daten in funtrade übertragen werden.

1. Konfiguration der Adressfelder

Konfiguriere die Adressfelder, die als Grundlage für alle weiteren Verarbeitungsschritte dienen. Diese Felder ermöglichen es, die Daten aus der externen Quelle korrekt in funtrade zu importieren.

Spezielle Felder:

FTML Transaktion: Timestamp
hier kann als Feldwert: now eingetragen werden. Alternativ kann ein Feld aus der Payload verwendet werden: zur Zeit werden nur ISO-Datumsformate unterstützt.
FTML Transaktion: Source
muss das gleiche sein, wie WebformKey aus der URL
FTML Transaktion: Target
ist im Normalfall der Name der Installation, in unserem Fall playft
Webform: External-ID
um die External-ID aus der URL mit einem Wert aus der Payload zu überschreiben, kann dieses Feld verwendet werden

Neu vs. Bestehende Personen

funtrade sucht anhand der gefundenen Personen und Adressdaten die entsprechende Person in funtrade. Dabei kommt die Logik der "Dublettenprüfung" zum Einsatz.

Fall:

  • genauer Personentreffer: funtrade überspringt das erstellen der Person und geht in den Datenimport über
  • ungenauer Personentreffer: funtrade bereitet den Import der Daten vor, erstellt aber eine "Aufgabe" für den funtrade Benutzer, damit dieser die Zuordnung zur bestehenden Person kontrollieren kann, bevor der Datenimport für diesen Datensatz stattfindet
  • ohne Personentreffer: funtrade erstellt eine neue Person mit den gegebenen Daten und hinterlegt die definierten Daten

2. Ereignis vorbereiten (falls nicht bereits vorhanden)

Für unser Beispiel erstellen wir ein neues Ereignis Meldungen mit einer Ereignisposition, um den Igel separat zu zählen. Grundsätzlich kann aber mit einer generischen Position gearbeitet werden.

3. Definitionen und Verarbeitungsschritte

Nun wollen wir für den Fall, dass die Meldeplattform uns Daten schickt, definieren, dass funtrade ein Ereignis in der Kontakthistorie des entsprechenden Melders erstellt. Dieses Ereignis dient der Dokumentation der Meldung. Dazu müssen wir eine Definition sowie dazugehörende Verarbeitungsschritte erstellen.

Es können Bedingungen verwendet werden, um zu definieren, in welchem Fall welche Definition und entsprechend welche Verarbeitungsschritte gewählt wird. Die Verarbeitung geht die Definitionen anhand deren "Sortierung" durch. Wenn eine Definition zutrifft, werden die im unterste Teil des Bildschirms definierten Verarbeitungsschritte ausgeführt.

Sobald eine Definition die Bedingungen erfüllt, werden die Verarbeitungsschritte durchlaufen und der Event als "bearbeitet" markiert.

Um zu definieren, ob eine Definition verarbeitet werden soll, kann rechts eine Bedingung definiert werden. Dabei kann mit object/property auf das Feld property des JSON-Objektes object zugegriffen werden.

In unserem Fall erstellen wir eine globale ablehnen Position. In diesem Fall werden die Einträge final abgeschlossen, auch wenn keine Verarbeitungsschritte ausgeführt wurden.

Wenn wir eine abbrechen Verarbeitungsschritt definiert hätten stattdessen, hätte funtrade nach der nächsten Konfigurationsänderung bzw. dem ersten darauf folgenden Event versucht, auch diesen Datensatz erneut zu verarbeiten.

4. Test des Webhooks

Daten senden

Sende den Webhook mit folgender Payload (Beispiel mit curl).

Platzhalter ersetzen:

  • KundenURL
    URL der funtrade installation (Browser-URL ohne das /funtrade)
  • BasicSecret
    Benutzername und Passwort in Base64
curl --location '<KundenURL>/rest/webhook/v1.0/data/meldeplattform/observations/123343455349' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <BasicSecret>' \
--data '{
    "id": 123343455349,
    "timestamp": 1740564744600,
    "event": "observation",
    "address": {
        "id": 3434534,
        "name": "Christian",
        "firstname": "Davatz",
        "street": "Freiestrasse 18",
        "city": "Zürich",
        "state": "ZH",
        "zip": "8000",
        "country": "CH"
    },
    "attributes": {
        "observation": "hedgehog"
    }
}'

Überprüfung des Verarbeitungsstatus

Überprüfe in funtrade, ob die Daten angekommen sind. Der Status „bearbeitet“ zeigt an, dass eine FTML-Transaktion erstellt wurde. Schau Dir die FTML-Daten der Transaktion an, um den Verlauf und eventuelle Fehler zu überprüfen.

Fehlerbehandlung

Sollte die Verarbeitung nicht vollautomatisch abgeschlossen werden, prüfe die Fehlermeldung. Ein häufiger Fehler ist "Strasse / Ort Kombination": Diese Meldung weist darauf hin, dass die übermittelte Adressinformation nicht korrekt ist.

In diesem Fall kannst Du:

  • Die korrekte Kombination aus Strasse und Ort recherchieren.
  • Oder die Person manuell zuordnen, sofern sie bereits in der Datenbank vorhanden ist.

Zuletzt editiert: 07.05.25, 06:47
Editiert von: Christian Davatz