App-Nutzer synchronisieren

Ein häufig angefragter Anwendungsfall der API ist die Integration einer eigenen Nutzerverwaltung, sei es eine selbst entwickelte Lösung, eine cloudbasierte Vereinsverwaltungssoftware oder ein bestehendes CRM-System. Mit den bereitgestellten Mutationen und Queries können Sie Benutzerprofile erstellen, suchen, aktualisieren und löschen.

App-Benutzerprofil anlegen

Um ein App-Benutzerprofil anzulegen, nutzen wir die Mutation createUserProfile. In diesem Beispiel wird ein neues Profil für "Marta Musterfrau" angelegt, die der Abteilung "Billard" zugeordnet wird:

mutation CreateUserProfile {
    createUserProfile(
        userProfile: {
            departments: [
                {
                    enumId: "00_Appack_TEMPLATE-department"
                    value: "Billard"
                    enumKey: "dezernat"
                }
            ]
            name: "Musterfrau"
            firstname: "Marta"
            email: "marta@musterfrau.de"
        }
    ) {
        id
        name
        firstname
        email
        departments {
            enumId
            enumKey
            value
        }
    }
}

Die folgende Response zeigt das erstellte Benutzerprofil:

{
    "data": {
        "createUserProfile": {
            "id": "66e41ca2eb07c6643266248c",
            "name": "Musterfrau",
            "firstname": "Marta",
            "email": "marta@musterfrau.de",
            "departments": [
                {
                    "enumId": "00_Appack_TEMPLATE-department",
                    "enumKey": "dezernat",
                    "value": "billard"
                }
            ]
        }
    }
}

App-Benutzerprofil suchen

Um nach bestehenden App-Benutzern zu suchen, verwenden wir die Query findUserProfile. Hier suchen wir nach dem Namen "Marta" und erhalten eine paginierte Liste von App-Benutzerprofilen:

query FindUserProfile {
    findUserProfile(
        search: "Marta"
        page: {size: 25, page: 0, sort: { direction: ASC, property: "name" } }
    ) {
        totalcount
        content {
            id
            name
            firstname
        }
    }
}

Die folgende Response zeigt das gefundene Benutzerprofil:

{
    "data": {
        "findUserProfile": {
            "totalcount": 1,
            "content": [
                {
                    "id": "66e41ca2eb07c6643266248c",
                    "name": "Musterfrau",
                    "firstname": "Marta"
                }
            ]
        }
    }
}

Als Suchwert (search) kann jedes Attribut aus dem UserProfile verwendet werden, wie z.B. der Name, die E-Mail-Adresse oder andere Identifikationsinformationen. So lassen sich Benutzerprofile gezielt anhand bestimmter Kriterien finden.

App-Benutzerprofil aktualisieren

Um die Informationen eines Benutzerprofils - im Beispiel die Rolle - zu aktualisieren, verwenden wir die Mutation updateUserProfile. Hier wird die Rolle von Marta auf "Mitglied" gesetzt:

mutation UpdateUserProfile {
    updateUserProfile(id: "66e41ca2eb07c6643266248c",
        userProfile: { roles: [
            {enumId:"00_Appack_TEMPLATE-roles", enumKey:"M", value:"Mitglied"}
        ] }
    ) {
        id
        email
        name
        firstname
        roles {
            enumId
            enumKey
            value
        }
    }
}

Die Response zeigt das aktualisierte Profil:

{
    "data": {
        "updateUserProfile": {
            "id": "66e41ca2eb07c6643266248c",
            "email": "marta@musterfrau.de",
            "name": "Musterfrau",
            "firstname": "Marta",
            "roles": [
                {
                    "enumId": "00_Appack_TEMPLATE-roles",
                    "enumKey": "M",
                    "value": "Mitglied"
                }
            ]
        }
    }
}

Weitere nützliche Queries:

Weitere nützliche Mutationen: