REST API Vorlage

CRM App Backend-Vorlage
REST API — Schema, API & KI-Leitfaden

Ein produktionsbereites REST API CRM Backend-Schema und Starter-Kit auf Back4app: Kontakt, Unternehmen, Deal, Aktivität, Pipeline-Stufen, ER-Diagramm, Datenwörterbuch, JSON-Schema, API-Spielplatz und ein One-Click KI-Agent Prompt zur Bereitstellung in Minuten.

Wichtige Erkenntnisse

Auf dieser Seite erhalten Sie ein produktionsbereites CRM-Schema, einen One-Click KI-Prompt und Schritt-für-Schritt REST API Code — damit Sie eine CRM-App ohne Backend-Erstellung bereitstellen können.

  1. In Minuten bereitstellenFügen Sie die AI-Agentenaufforderung ein und erhalten Sie eine laufende App mit Kontakten, Unternehmen, Angeboten und Pipeline.
  2. Standardmäßig sicherACLs und rollenbasierter Zugriff, damit Benutzer nur ihre zugewiesenen Angebote und Daten sehen.
  3. REST API-native SDKTypisierte Objekte, async/await, Offline-Pinning und Live Queries für Pipeline-Updates.
  4. REST + GraphQLBeide APIs werden automatisch generiert; Angebote nach Phase filtern, Aktivitäten nach relatedTo auflisten.
  5. Fünf Klassen_User (integriert), Unternehmen, Kontakt, Angebot (Pipeline), Aktivität (Aufgaben/Ereignisse).

Was ist die REST API CRM Backend-Vorlage?

Ein REST-first CRM-Backend auf Back4app: Standard GET/POST/PUT/DELETE auf /classes/Contact, /classes/Deal und verwandte Endpunkte. Verwenden Sie X-Parse-Session-Token für die Authentifizierung und where/order für Pipeline-Abfragen. Integrieren Sie aus jedem Stack – mobil, web oder serverseitig – mit klaren Statuscodes und JSON-Payloads. Kein GraphQL oder SDK erforderlich.

Am besten für:

VertriebsteamsCRM-EntwicklerSchnelles PrototypingAußendienstmitarbeiterMVP-StartsTeams, die sich für ein BaaS für CRM entscheiden

Übersicht

Ein REST API für CRM: GET /classes/Deal, POST /classes/Contact, PUT /classes/Deal/:id usw. Back4app generiert diese Endpunkte aus dem Schema; Sie senden X-Parse-Session-Token zur Authentifizierung und verwenden where und order für Pipeline- und Listenabfragen.

Das Schema (fünf Klassen: _User, Company, Contact, Deal, Activity) ist dasselbe wie für SDK-Clients. Jeder HTTP-Client kann integrieren — mobil, web oder server — mit standardmäßigem JSON und Statuscodes.

Kern-CRM-Funktionen

REST API CRM-Backend: Endpunkte für Kontakt, Unternehmen, Deal und Aktivität mit Auth-Headern und Statuscodes. Pipeline-Management und ACLs sofort einsatzbereit.

Kontaktverwaltung

Speichern und Verwalten von Kontakten mit Name, E-Mail, Telefon, Unternehmen und Notizen. Ideal für REST API-Apps.

Unternehmensverwaltung

Verfolgen Sie Unternehmen mit Namen, Website, Branche und Adresse. Verknüpft mit Kontakten und Geschäften.

Deal-Pipeline

Verkaufspipeline mit Phasen, Betrag, voraussichtlichem Abschlussdatum und Zuweisung. Entwickelt für REST API Backends.

Aktivitätsverfolgung

Protokollieren Sie Anrufe, E-Mails, Besprechungen und Notizen, die mit Kontakten und Geschäften verknüpft sind. Funktioniert mit REST API SDK.

Benutzer & Berechtigungen

Integriertes Benutzermodell und Verweise für Eigentum und Zuweisung. ACLs sofort einsatzbereit für REST API.

ER-Diagramm

Entität-Beziehungsdiagramm für das REST API CRM-App-Datenmodell.

erDiagram _User { String objectId PK String username String email String password Date createdAt Date updatedAt } Company { String objectId PK String name String website String industry String address String notes Pointer createdBy FK Date createdAt Date updatedAt } Contact { String objectId PK String name String email String phone Pointer company FK String notes Pointer createdBy FK Date createdAt Date updatedAt } Deal { String objectId PK String title Number amount String stage Pointer contact FK Pointer company FK Date expectedCloseDate String notes Pointer assignedTo FK Date createdAt Date updatedAt } Activity { String objectId PK String type String subject String description Date dueDate Date completedAt Pointer relatedTo FK Pointer createdBy FK Date createdAt Date updatedAt } Company ||--o{ Contact : "has" Company ||--o{ Deal : "has" Contact ||--o{ Deal : "has" _User ||--o{ Deal : "assignedTo" _User ||--o{ Activity : "createdBy" Contact ||--o{ Activity : "relatedTo" Deal ||--o{ Activity : "relatedTo" _User ||--o{ Company : "createdBy" _User ||--o{ Contact : "createdBy"
Diagramm wird geladen…
Diagrammquelle anzeigen
Mermaid
erDiagram
    _User {
        String objectId PK
        String username
        String email
        String password
        Date createdAt
        Date updatedAt
    }

    Company {
        String objectId PK
        String name
        String website
        String industry
        String address
        String notes
        Pointer createdBy FK
        Date createdAt
        Date updatedAt
    }

    Contact {
        String objectId PK
        String name
        String email
        String phone
        Pointer company FK
        String notes
        Pointer createdBy FK
        Date createdAt
        Date updatedAt
    }

    Deal {
        String objectId PK
        String title
        Number amount
        String stage
        Pointer contact FK
        Pointer company FK
        Date expectedCloseDate
        String notes
        Pointer assignedTo FK
        Date createdAt
        Date updatedAt
    }

    Activity {
        String objectId PK
        String type
        String subject
        String description
        Date dueDate
        Date completedAt
        Pointer relatedTo FK
        Pointer createdBy FK
        Date createdAt
        Date updatedAt
    }

    Company ||--o{ Contact : "has"
    Company ||--o{ Deal : "has"
    Contact ||--o{ Deal : "has"
    _User ||--o{ Deal : "assignedTo"
    _User ||--o{ Activity : "createdBy"
    Contact ||--o{ Activity : "relatedTo"
    Deal ||--o{ Activity : "relatedTo"
    _User ||--o{ Company : "createdBy"
    _User ||--o{ Contact : "createdBy"

Integrationsfluss

Auth-to-CRUD-Sequenz: wie Ihre REST API App mit Back4app kommuniziert — anmelden, dann Kontakte und Deals abfragen, Pipeline aktualisieren.

sequenceDiagram participant User participant Client as REST Client participant Back4app as Back4app Cloud User->>Client: Login Client->>Back4app: POST /login (username, password) Back4app-->>Client: sessionToken Client-->>User: Logged in User->>Client: Load deals and contacts Client->>Back4app: GET /classes/Deal?where={"stage":"qualified"} Back4app-->>Client: results Client-->>User: Show pipeline User->>Client: Create deal or contact Client->>Back4app: POST /classes/Deal (X-Parse-Session-Token) Back4app-->>Client: objectId, createdAt Client-->>User: Updated list
Diagramm wird geladen…
Diagrammquelle anzeigen
Mermaid
sequenceDiagram
  participant User
  participant Client as REST Client
  participant Back4app as Back4app Cloud

  User->>Client: Login
  Client->>Back4app: POST /login (username, password)
  Back4app-->>Client: sessionToken
  Client-->>User: Logged in

  User->>Client: Load deals and contacts
  Client->>Back4app: GET /classes/Deal?where={"stage":"qualified"}
  Back4app-->>Client: results
  Client-->>User: Show pipeline

  User->>Client: Create deal or contact
  Client->>Back4app: POST /classes/Deal (X-Parse-Session-Token)
  Back4app-->>Client: objectId, createdAt
  Client-->>User: Updated list

Datenwörterbuch

Vollständige Feldreferenz für jede Klasse im Schema.

Contact

FeldTypBeschreibungErforderlich
objectIdStringAuto-generated unique identifierauto
nameStringFull name of the contact
emailStringEmail address
phoneStringPhone number
companyPointer<Company>Company this contact belongs to
notesStringFree-form notes
createdByPointer<_User>User who created this contact
createdAtDateAuto-generated creation timestampauto
updatedAtDateAuto-generated last-update timestampauto

Company

FeldTypBeschreibungErforderlich
objectIdStringAuto-generated unique identifierauto
nameStringCompany name
websiteStringCompany website URL
industryStringIndustry or sector
addressStringPhysical or mailing address
notesStringFree-form notes
createdByPointer<_User>User who created this company
createdAtDateAuto-generated creation timestampauto
updatedAtDateAuto-generated last-update timestampauto

Deal

FeldTypBeschreibungErforderlich
objectIdStringAuto-generated unique identifierauto
titleStringDeal title or name
amountNumberDeal value or amount
stageStringPipeline stage (e.g. lead, qualified, proposal, won, lost)
contactPointer<Contact>Primary contact for this deal
companyPointer<Company>Company associated with this deal
expectedCloseDateDateExpected close date
notesStringFree-form notes
assignedToPointer<_User>User assigned to this deal
createdAtDateAuto-generated creation timestampauto
updatedAtDateAuto-generated last-update timestampauto

Activity

FeldTypBeschreibungErforderlich
objectIdStringAuto-generated unique identifierauto
typeStringActivity type (call, email, meeting, note)
subjectStringSubject or title
descriptionStringDescription or body
dueDateDateDue date
completedAtDateWhen the activity was completed
relatedToPointerPointer to Contact or Deal
createdByPointer<_User>User who created this activity
createdAtDateAuto-generated creation timestampauto
updatedAtDateAuto-generated last-update timestampauto

_User

FeldTypBeschreibungErforderlich
objectIdStringAuto-generated unique identifierauto
usernameStringLogin username
emailStringEmail address
passwordStringHashed password (write-only)
createdAtDateAuto-generated creation timestampauto
updatedAtDateAuto-generated last-update timestampauto

Schema (JSON)

Roh-JSON-Schemaspezifikation — kopieren und in Ihrer Back4app-App verwenden oder über die API importieren.

JSON
{
  "classes": [
    {
      "className": "Contact",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "name": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": false
        },
        "phone": {
          "type": "String",
          "required": false
        },
        "company": {
          "type": "Pointer",
          "targetClass": "Company",
          "required": false
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdBy": {
          "type": "Pointer",
          "targetClass": "_User",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Company",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "name": {
          "type": "String",
          "required": true
        },
        "website": {
          "type": "String",
          "required": false
        },
        "industry": {
          "type": "String",
          "required": false
        },
        "address": {
          "type": "String",
          "required": false
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "createdBy": {
          "type": "Pointer",
          "targetClass": "_User",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Deal",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "amount": {
          "type": "Number",
          "required": false
        },
        "stage": {
          "type": "String",
          "required": false
        },
        "contact": {
          "type": "Pointer",
          "targetClass": "Contact",
          "required": false
        },
        "company": {
          "type": "Pointer",
          "targetClass": "Company",
          "required": false
        },
        "expectedCloseDate": {
          "type": "Date",
          "required": false
        },
        "notes": {
          "type": "String",
          "required": false
        },
        "assignedTo": {
          "type": "Pointer",
          "targetClass": "_User",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Activity",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "type": {
          "type": "String",
          "required": false
        },
        "subject": {
          "type": "String",
          "required": false
        },
        "description": {
          "type": "String",
          "required": false
        },
        "dueDate": {
          "type": "Date",
          "required": false
        },
        "completedAt": {
          "type": "Date",
          "required": false
        },
        "relatedTo": {
          "type": "Pointer",
          "required": false
        },
        "createdBy": {
          "type": "Pointer",
          "targetClass": "_User",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "_User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Mit AI-Agent erstellen

Verwenden Sie den Back4app AI-Agent, um eine echte CRM-App aus dieser Vorlage zu erstellen: Er wird das Frontend, das Backend (dieses Schema, Authentifizierung und APIs) erstellen und bereitstellen – keine manuelle Einrichtung. Der folgende Prompt beschreibt diesen CRM-Stack, damit der Agent eine produktionsbereite App auf einmal generieren kann.

Back4app AI-Agent
Bereit zum Erstellen
Erstellen Sie eine CRM-App auf Back4app mit diesem genauen Schema und Verhalten.

Schema:
1. _User (verwenden Sie Back4app integrierte): Benutzername (String, erforderlich), E-Mail (String, erforderlich), Passwort (String, erforderlich); objectId, createdAt, updatedAt (System).
2. Unternehmen: Name (String, erforderlich), Website (String), Branche (String), Adresse (String), Notizen (String), erstelltVon (Pointer zu _User); objectId, createdAt, updatedAt (System).
3. Kontakt: Name (String, erforderlich), E-Mail (String), Telefon (String), Unternehmen (Pointer zu Unternehmen), Notizen (String), erstelltVon (Pointer zu _User); objectId, createdAt, updatedAt (System).
4. Deal: Titel (String, erforderlich), Betrag (Zahl), Phase (String; z.B. Lead, qualifiziert, Angebot, Verhandlung, gewonnen, verloren), Kontakt (Pointer zu Kontakt), Unternehmen (Pointer zu Unternehmen), erwartetes Abschlussdatum (Datum), Notizen (String), zugewiesenAn (Pointer zu _User); objectId, createdAt, updatedAt (System).
5. Aktivität: Typ (String; z.B. Anruf, E-Mail, Meeting, Notiz), Betreff (String), Beschreibung (String), Fälligkeitsdatum (Datum), abgeschlossenAm (Datum), bezogenAuf (Pointer zu Kontakt oder Deal), erstelltVon (Pointer zu _User); objectId, createdAt, updatedAt (System).

Sicherheit:
- Setzen Sie ACLs, damit nur authentifizierte Benutzer auf Daten zugreifen können; verwenden Sie rollenbasierte oder besitzerbasierte Regeln, wo es angebracht ist (z.B. zugewiesenAn, erstelltVon).
- Verwenden Sie Klassenebenenberechtigungen, damit nur authentifizierte Benutzer diese Klassen erstellen/lesen/aktualisieren/löschen können.

Authentifizierung:
- Anmeldung (Benutzername, E-Mail, Passwort) und Login; Unterstützung für Abmeldung/Sitzung.

Verhalten:
- Vollständiges CRUD für Unternehmen, Kontakt, Deal und Aktivität.
- Listen Sie Deals mit Filter nach Phase und sortieren Sie nach erwartetesAbschlussdatum oder updatedAt (Pipeline-Ansicht).
- Listen Sie Aktivitäten nach bezogenAuf (Kontakt oder Deal).
- Optional: Echtzeit Live Queries für Deal und Aktivität für Dashboard/Pipeline-Updates.
- Optional: Offline-Pinning für mobile (Kontakte, Deals, Aktivitäten).

Liefern:
- Erstellen Sie die Back4app-App mit dem obigen Schema, ACLs und allen benötigten Cloud-Code.
- Generieren Sie das Frontend und verbinden Sie es mit diesem Backend; bereitstellen, damit die App end-to-end lauffähig ist.

Keine Kreditkarte erforderlich

API-Spielplatz

Versuchen Sie die REST- und GraphQL-Endpunkte für das CRM-Schema. Antworten aus den obigen Beispieldaten — kein Back4app-Konto erforderlich.

GET
https://parseapi.back4app.com/classes/Contact
Header
{
  "X-Parse-Application-Id": "YOUR_APP_ID",
  "X-Parse-REST-API-Key": "YOUR_REST_API_KEY"
}

Dieses Backend mit REST API verwenden

Verbinden Sie sich mit Ihrem Back4app-Backend über Standard-HTTP-Anfragen.

1

Holen Sie sich Ihre API-Anmeldeinformationen

Nachdem Sie Ihre App auf Back4app erstellt haben, finden Sie Ihre Anwendungs-ID und REST API-Schlüssel in App-Einstellungen → Sicherheit & Schlüssel. Alle Anfragen erfordern diese Header.

Bash
# Required headers for every request
X-Parse-Application-Id: YOUR_APP_ID
X-Parse-REST-API-Key: YOUR_REST_API_KEY
2

Einen Kontakt erstellen

Bash
curl -X POST \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Jane Doe","email":"[email protected]","phone":"+1234567890"}' \
  https://parseapi.back4app.com/classes/Contact
3

Kontakte oder Angebote auflisten

Bash
curl -X GET \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
  https://parseapi.back4app.com/classes/Contact
4

Ein Angebot aktualisieren

Bash
curl -X PUT \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"done":true}' \
  https://parseapi.back4app.com/classes/Deal/OBJECT_ID
5

Ein Angebot löschen

Bash
curl -X DELETE \
  -H "X-Parse-Application-Id: YOUR_APP_ID" \
  -H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
  https://parseapi.back4app.com/classes/Deal/OBJECT_ID

Häufig gestellte Fragen

Häufige Fragen zum Backend-Template der CRM-App.

Was ist Back4app?
Warum Back4app für ein CRM REST API verwenden?
Wie liste ich Deals nach Phase mit REST auf?
Wie erstelle ich eine Aktivität, die mit einem Deal verknüpft ist?

Bereit, Ihre CRM-App zu erstellen?

Starten Sie Ihr REST API-Projekt in wenigen Minuten. Keine Kreditkarte erforderlich.