Überblick
Die Teamzusammenarbeits-API ermöglicht Autohäusern mit mehreren Nutzern, Teams zu verwalten, Mitglieder einzuladen, Rollen zuzuweisen und Zugriffsrechte zu steuern. Ideal für Organisationen mit mehreren Vertriebsmitarbeitern, Managern und Administratoren.
Hauptfunktionen
Teamverwaltung Erstellen und verwalten Sie mehrere Teams innerhalb Ihrer Organisation
Mitgliedereinladungen Laden Sie Teammitglieder per E-Mail mit Rollen zu
Rollenbasierter Zugriff Steuern Sie, worauf Teammitglieder zugreifen und was sie ändern können
Audit-Trail Verfolgen Sie Teamaktivitäten und Mitgliederänderungen
Endpunkte
Alle Teams auflisten
Ruft alle Teams mit optionaler Filterung und Sortierung ab.
Query-Parameter:
Suche nach Teamname oder Slug
Filter nach Team-Owner-ID
Sortierfeld: name, createdAt (Standard: name)
Sortierrichtung: asc (Standard), desc
Antwort:
[
{
"id" : "550e8400-e29b-41d4-a716-446655440000" ,
"name" : "Downtown Dealership" ,
"slug" : "downtown-dealership" ,
"ownerId" : "owner_uuid" ,
"createdAt" : "2024-01-15T10:30:00Z" ,
"owner" : {
"id" : "owner_uuid" ,
"name" : "John Doe" ,
"email" : "[email protected] "
},
"memberCount" : 12 ,
"roleCount" : 4 ,
"invitationCount" : 2
}
]
Meine Teams abrufen
Ruft alle Teams ab, in denen der aktuelle Nutzer Mitglied oder Team-Owner ist.
Antwort:
Array von Teamobjekten, in denen der Nutzer Mitglied ist.
Team nach ID abrufen
Ruft detaillierte Informationen zu einem bestimmten Team ab.
Path-Parameter:
Query-Parameter:
Mitglieder, Rollen und ausstehende Einladungen einbeziehen (Standard: false)
Antwort:
{
"id" : "550e8400-e29b-41d4-a716-446655440000" ,
"name" : "Downtown Dealership" ,
"slug" : "downtown-dealership" ,
"ownerId" : "owner_uuid" ,
"createdAt" : "2024-01-15T10:30:00Z" ,
"owner" : {
"id" : "owner_uuid" ,
"name" : "John Doe" ,
"email" : "[email protected] "
},
"members" : [
{
"id" : "member_uuid" ,
"name" : "Jane Smith" ,
"email" : "[email protected] " ,
"image" : "https://..." ,
"createdAt" : "2024-01-15T10:30:00Z" ,
"role" : {
"id" : "role_uuid" ,
"name" : "Sales Manager" ,
"permissions" : [ "view_inventory" , "edit_inventory" , "view_analytics" ]
},
"isOwner" : false
}
],
"memberCount" : 12 ,
"roleCount" : 4 ,
"invitationCount" : 2
}
Team nach Slug abrufen
Ruft Teaminformationen über den URL-freundlichen Slug ab.
Path-Parameter:
Team-Slug (z. B. “downtown-dealership”)
Team erstellen
Erstellt ein neues Team. Der authentifizierte Nutzer wird Team-Owner.
Anfrage-Body:
{
"name" : "North Branch Dealership" ,
"slug" : "north-branch"
}
Anzeigename des Teams (max. 100 Zeichen)
URL-freundlicher Bezeichner (nur Kleinbuchstaben, Zahlen, Bindestriche; max. 50 Zeichen)
Antwort:
{
"id" : "new_team_uuid" ,
"name" : "North Branch Dealership" ,
"slug" : "north-branch" ,
"ownerId" : "current_user_uuid" ,
"createdAt" : "2024-01-17T11:00:00Z"
}
Team aktualisieren
Aktualisiert Teaminformationen. Nur der Team-Owner kann Teamdetails ändern.
Path-Parameter:
Anfrage-Body:
{
"name" : "North Branch Dealership - Updated" ,
"slug" : "north-branch-updated"
}
Team löschen
Löscht ein Team. Nur der Team-Owner kann ein Team löschen, und es darf keine aktiven Mitglieder haben (außer dem Team-Owner).
Path-Parameter:
Teams mit aktiven Mitgliedern können nicht gelöscht werden. Entfernen Sie zuerst alle Mitglieder oder übertragen Sie den Besitz.
Teammitglied einladen
Lädt einen Nutzer mit einer bestimmten Rolle in das Team ein.
Path-Parameter:
Anfrage-Body:
E-Mail-Adresse des einzuladenden Nutzers
Rollen-UUID für das Mitglied
Antwort:
{
"id" : "invitation_uuid" ,
"teamId" : "team_uuid" ,
"userId" : "invited_user_uuid" ,
"email" : "[email protected] " ,
"roleId" : "role_uuid" ,
"token" : "invitation_token" ,
"expiresAt" : "2024-01-24T11:00:00Z" ,
"user" : {
"id" : "invited_user_uuid" ,
"name" : "New Member" ,
"email" : "[email protected] "
},
"role" : {
"id" : "role_uuid" ,
"name" : "Salesperson"
}
}
Der eingeladene Nutzer erhält eine E-Mail mit Einladungslink. Die Einladung verfällt nach 7 Tagen.
Teameinladung annehmen
Nimmt eine Teameinladung mit dem Token aus der Einladungs-E-Mail an.
Anfrage-Body:
{
"token" : "invitation_token_from_email"
}
Antwort:
{
"id" : "membership_uuid" ,
"teamId" : "team_uuid" ,
"userId" : "user_uuid" ,
"roleId" : "role_uuid" ,
"team" : {
"id" : "team_uuid" ,
"name" : "Downtown Dealership" ,
"slug" : "downtown-dealership"
},
"role" : {
"id" : "role_uuid" ,
"name" : "Salesperson" ,
"permissions" : [ "view_inventory" , "create_leads" ]
}
}
Teammitglieder abrufen
Ruft alle Mitglieder eines Teams mit Rollen und Berechtigungen ab.
Path-Parameter:
Antwort:
[
{
"id" : "member_uuid" ,
"name" : "Jane Smith" ,
"email" : "[email protected] " ,
"image" : "https://..." ,
"createdAt" : "2024-01-15T10:30:00Z" ,
"role" : {
"id" : "role_uuid" ,
"name" : "Sales Manager" ,
"permissions" : [
"view_inventory" ,
"edit_inventory" ,
"delete_inventory" ,
"view_analytics" ,
"manage_leads" ,
"invite_members"
]
},
"isOwner" : false
}
]
Ausstehende Einladungen abrufen
Ruft alle ausstehenden (noch nicht angenommenen) Einladungen eines Teams ab.
Path-Parameter:
Antwort:
[
{
"id" : "invitation_uuid" ,
"teamId" : "team_uuid" ,
"email" : "[email protected] " ,
"roleId" : "role_uuid" ,
"expiresAt" : "2024-01-24T11:00:00Z" ,
"user" : {
"id" : "user_uuid" ,
"name" : "Pending User" ,
"email" : "[email protected] "
},
"role" : {
"id" : "role_uuid" ,
"name" : "Salesperson"
}
}
]
Teammitglied entfernen
Entfernt ein Mitglied aus dem Team. Erfordert entsprechende Berechtigungen.
Path-Parameter:
Nutzer-ID des zu entfernenden Mitglieds
Antwort:
{
"success" : true ,
"message" : "Member removed from team successfully"
}
Der Team-Owner kann nicht entfernt werden. Übertragen Sie zuerst den Besitz, falls nötig.
Einladung stornieren
/teams/invitations//cancel
Storniert eine ausstehende Teameinladung.
Path-Parameter:
Antwort:
{
"success" : true ,
"message" : "Invitation cancelled successfully"
}
Teams eines Nutzers abrufen
Ruft alle Teams ab, die einem bestimmten Nutzer zugeordnet sind.
Path-Parameter:
Teamrollen & Berechtigungen
Standardrollen
Rolle Berechtigungen Beschreibung Owner Alle Berechtigungen Vollständige Kontrolle über Team und Ressourcen Admin Alle außer Teamlöschung Mitglieder, Bestand und Einstellungen verwalten Manager Bestand ansehen/bearbeiten, Analytik, Leads Vertriebsleitung mit Reporting-Zugriff Salesperson Bestand ansehen, Leads erstellen/bearbeiten Vertriebsmitarbeiter an vorderster Front Viewer Nur Leserechte Nur lesender Zugriff auf Bestand und Reports
Berechtigungssystem
Häufige Berechtigungen:
view_inventory - Fahrzeuge und Inserate ansehen
edit_inventory - Fahrzeuginformationen ändern
delete_inventory - Fahrzeuge entfernen
create_leads - Neue Leads erstellen
manage_leads - Alle Leads bearbeiten und löschen
view_analytics - Zugriff auf Dashboard und Reports
manage_kpis - KPI-Dashboard konfigurieren
invite_members - Neue Teammitglieder einladen
remove_members - Teammitglieder entfernen
manage_roles - Rollen erstellen und ändern
manage_team - Teameinstellungen bearbeiten
Anwendungsfälle
Beispiel 1: Autohaus-Team erstellen
# Create team
curl -X POST "https://api.steerai.autos/v1/teams" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Prime Auto Group",
"slug": "prime-auto-group"
}'
Beispiel 2: Vertriebsteam einladen
# Invite salesperson
curl -X POST "https://api.steerai.autos/v1/teams/{teamId}/invite" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected] ",
"roleId": "salesperson_role_uuid"
}'
Beispiel 3: Teamaktivität überwachen
# Get team members
curl -X GET "https://api.steerai.autos/v1/teams/{teamId}/members" \
-H "Authorization: Bearer YOUR_API_KEY"
# Get pending invitations
curl -X GET "https://api.steerai.autos/v1/teams/{teamId}/invitations" \
-H "Authorization: Bearer YOUR_API_KEY"
Fehlercodes
Code Status Beschreibung TEAM_NOT_FOUND404 Team-ID existiert nicht SLUG_ALREADY_EXISTS400 Team-Slug ist bereits vergeben NOT_TEAM_OWNER403 Nur der Team-Owner kann diese Aktion ausführen INSUFFICIENT_PERMISSIONS403 Nutzer hat nicht die erforderlichen Berechtigungen ALREADY_TEAM_MEMBER400 Nutzer ist bereits Mitglied INVITATION_EXPIRED400 Einladungs-Token ist abgelaufen INVITATION_NOT_FOUND404 Einladung existiert nicht CANNOT_REMOVE_OWNER400 Team-Owner kann nicht entfernt werden TEAM_HAS_MEMBERS400 Team mit aktiven Mitgliedern kann nicht gelöscht werden
Bewährte Praktiken
Aussagekräftige Teamnamen und Slugs verwenden
Wählen Sie klare, professionelle Namen. Slugs sollten URL-freundlich und einprägsam sein.
Rollenbasierte Zugriffskontrolle implementieren
Weisen Sie passende Rollen anhand der Aufgaben zu. Nicht allen Admin-Rechte geben.
Teammitgliedschaft regelmäßig prüfen
Prüfen Sie Teammitglieder quartalsweise. Entfernen Sie inaktive Nutzer und aktualisieren Sie Rollen.
Erinnerungen zur Einladungsfrist setzen
Erinnern Sie an ausstehende Einladungen, bevor sie ablaufen (7 Tage).
Benutzerdefinierte Rollen dokumentieren
Dokumentieren Sie Berechtigungen benutzerdefinierter Rollen klar für Ihr Team.
Team-Slugs für Routing nutzen
Nutzen Sie Team-Slugs in URLs für saubere, teilbare Links.
Integrationsmuster
Mandantenfähige Architektur
// Check user's team membership
async function getUserTeams ( userId ) {
const response = await fetch (
`https://api.steerai.autos/v1/teams/user/ ${ userId } ` ,
{
headers: { 'Authorization' : `Bearer ${ API_KEY } ` }
}
);
return response . json ();
}
// Filter data by team context
async function getTeamInventory ( teamId ) {
const response = await fetch (
`https://api.steerai.autos/v1/vehicles?teamId= ${ teamId } ` ,
{
headers: { 'Authorization' : `Bearer ${ API_KEY } ` }
}
);
return response . json ();
}
Berechtigungsprüfung
function hasPermission ( member , permission ) {
return member . role . permissions . includes ( permission ) || member . isOwner ;
}
// Usage
if ( hasPermission ( currentMember , 'edit_inventory' )) {
// Show edit controls
}
Verwandte Ressourcen