Clients
Erstellen, lesen, aktualisieren und archivieren Sie die Kunden (Unternehmen) in Ihrer Agentur.
Liefert eine Seite der Kunden Ihrer Agentur, zuletzt erstellte zuerst. Alle Filter sind optional und werden kombiniert (ein Kunde muss allen entsprechen); um weitere Ergebnisse zu blättern, geben Sie den zurückgegebenen nextCursor erneut mit.
Clients auflisten / suchen
/api/v1/clients{
"data": {
"clients": [
{
"id": "cli_123",
"businessName": "Acme Dental",
"industry": "Dental",
"status": "complete",
"goal": "get_reviews",
"healthScore": 82,
"locationCount": 1,
"googleRating": 4.8,
"googleReviewCount": 26,
"archived": false,
"archivedAt": null,
"scheduledArchiveAt": null,
"packageType": null,
"planName": null,
"createdAt": "2026-01-15T10:00:00.000Z",
"primaryRepresentative": {
"id": "usr_123",
"firstName": "Jamie",
"lastName": "Lee",
"email": "jamie@youragency.com"
}
}
],
"nextCursor": null,
"total": 1
}
}Erstellt einen neuen Kunden in Ihrer Agentur sowie einen ersten Standort, sobald sich die Adressangaben einem echten Ort zuordnen lassen.
Client erstellen
/api/v1/clients{
"data": {
"client": {
"id": "cli_123",
"businessName": "Acme Dental",
"website": null,
"industry": null,
"primaryContactEmail": "owner@acmedental.com",
"primaryRepresentativeId": "usr_123",
"visibility": "public",
"goal": null,
"notes": null,
"gbpLink": null,
"trackingKeyword": null,
"healthScore": null,
"planName": null,
"archived": false,
"archivedAt": null,
"scheduledArchiveAt": null,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-15T10:00:00.000Z"
},
"locationId": "loc_456",
"locationSkipped": null
}
}Liefert vollständige Details zu einem Kunden: Unternehmensprofil, zugewiesener Ansprechpartner, Ersteller, Gesundheitswert und Plan.
Client abrufen
/api/v1/clients/{id}{
"data": {
"id": "cli_123",
"businessName": "Acme Dental",
"website": "https://acmedental.com",
"industry": "Dental",
"primaryContactEmail": "owner@acmedental.com",
"primaryRepresentativeId": "usr_123",
"visibility": "public",
"goal": "get_reviews",
"notes": null,
"gbpLink": null,
"trackingKeyword": "dentist near me",
"healthScore": 82,
"planName": null,
"archived": false,
"archivedAt": null,
"scheduledArchiveAt": null,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-01-15T10:00:00.000Z",
"primaryRepresentative": {
"id": "usr_123",
"firstName": "Jamie",
"lastName": "Lee",
"email": "jamie@youragency.com"
},
"createdBy": {
"id": "usr_123",
"firstName": "Jamie",
"lastName": "Lee",
"email": "jamie@youragency.com"
},
"clientPlan": null
}
}Bearbeitet die editierbaren Felder eines bestehenden Kunden. Übergeben Sie nur die Felder, die Sie ändern möchten. Die primaryContactEmail des Kunden (der Portal-Login) kann hier nur gesetzt werden, solange sie noch leer ist — sie kann nach dem Setzen nie mehr geändert werden.
Client aktualisieren
/api/v1/clients/{id}{
"data": {
"id": "cli_123",
"businessName": "Acme Dental",
"website": "https://acmedental.com",
"industry": "Dental",
"primaryContactEmail": "owner@acmedental.com",
"primaryRepresentativeId": "usr_123",
"visibility": "public",
"goal": "get_reviews",
"notes": null,
"gbpLink": null,
"trackingKeyword": "dentist near me",
"healthScore": 82,
"planName": null,
"archived": false,
"archivedAt": null,
"scheduledArchiveAt": null,
"createdAt": "2026-01-15T10:00:00.000Z",
"updatedAt": "2026-02-01T09:30:00.000Z"
}
}Fordert die Archivierung eines Kunden an — diese API löscht einen Kunden niemals endgültig. Hat der Kunde Standorte, wird dies GEPLANT: Kunde und alle seine Standorte archivieren am Ende des aktuellen Abrechnungszeitraums, bis dahin bleibt alles vollständig aktiv und wird abgerechnet — die Archivierung kann über den cancel-archive-Endpunkt zurückgenommen werden. Ein Kunde ganz ohne Standorte wird stattdessen sofort archiviert (es gibt nichts aufzuschieben). Das outcome-Feld der Antwort zeigt, welcher der beiden Fälle tatsächlich eingetreten ist.
Client archivieren
/api/v1/clients/{id}{
"data": {
"outcome": "scheduled",
"clientId": "cli_123",
"businessName": "Acme Dental",
"scheduledArchiveAt": "2026-02-01T00:00:00.000Z",
"archiveAt": "2026-03-01T00:00:00.000Z",
"locationCount": 1
}
}Bricht eine ausstehende Kundenarchivierung ab, sodass ein zur Archivierung am Ende des Abrechnungszeitraums geplanter Kunde normal weiterläuft. Gibt auch die zusammen damit geplanten Standorte wieder frei. Funktioniert nur, solange die Archivierung noch ausstehend ist — ein bereits vollständig archivierter Kunde muss stattdessen über den reactivate-Endpunkt wiederhergestellt werden.
Geplante Archivierung abbrechen
/api/v1/clients/{id}/cancel-archive{
"data": {
"cancelled": true,
"locationsReleased": 1
}
}Sendet (oder sendet erneut) die Kundenportal-Einladungs-E-Mail an den primären Ansprechpartner eines Kunden — einen passwortlosen Magic-Link. Erneutes Senden macht zuvor gesendete Links ungültig. Schlägt fehl, wenn für den Kunden keine primaryContactEmail gesetzt ist.
Portal-Einladung senden
/api/v1/clients/{id}/invite{
"data": {
"portalLink": "https://portal.synup.com/invite/aB3dE9fGhJ"
}
}Stellt einen bereits archivierten Kunden wieder her, samt jedem Standort, der zusammen mit ihm archiviert wurde. Ist ein Kunde derzeit nicht archiviert, gilt der Aufruf als erfolgreicher No-op, nicht als Fehler. Dies ist der einzige Weg zurück für einen Kunden mit outcome archived — einer, der noch geplant ist, sollte stattdessen über cancel-archive laufen.
Archivierten Client reaktivieren
/api/v1/clients/{id}/reactivate{
"data": {
"archived": false,
"locationsArchived": 1,
"locationsFailed": 0,
"cancelledScheduledPosts": 0
}
}Liefert eine zusammengefasste Momentaufnahme für einen Kunden: aggregierte Standort-, Bewertungs- und SEO-Statistiken.
Kundenzusammenfassung abrufen
/api/v1/clients/summary{
"data": {
"locations": {
"total": 1,
"byStatus": {
"approved": 1
},
"byVerification": {
"unknown": 1
}
},
"reviews": {
"avgRating": 4.8,
"total": 26
},
"seo": {
"avgRank": 3.2,
"top3Pct": 0.62
}
}
}